Hallo Gregor,
ich denke du kannst das mit einem verschachtelten IIf()
Ausdruck lösen, in dem du den Wochentag des Eingabe Datums prüfst Weekday()
und entsprechend die Tage bis zum nächstmöglichen Datum addierst.
Der Ausdruck um herauszufinden wie viele Tage du addieren musst (AnzahlTage) ist:
IIf(Weekday(DW_DUE_DATE) = 1, 5, IIf(Weekday(DW_DUE_DATE) = 2, 4, IIf(Weekday(DW_DUE_DATE) = 3, 3, IIf(Weekday(DW_DUE_DATE) = 4, 6, IIf(Weekday(DW_DUE_DATE) = 5, 5, IIf(Weekday(DW_DUE_DATE) = 6, 4, IIf(Weekday(DW_DUE_DATE) = 7, 3, 0)))))))
Erklärung:
IIf(Weekday(DW_DATUM) = 1, 5, //1 Sonntag - 5 Tage addieren > nächster Freitag
IIf(Weekday(DW_DATUM) = 2, 4, //2 Montag - 4 addieren > nächster Freitag
IIf(Weekday(DW_DATUM) = 3, 3, //3 Dienstag - 3 Tage addieren > nächster Freitag
IIf(Weekday(DW_DATUM) = 4, 6, //4 Mittwoch - 6 Tage addieren > nächster Dienstag
IIf(Weekday(DW_DATUM) = 5, 5, //5 Donnerstag - 5 Tage addieren > nächster Dienstag
IIf(Weekday(DW_DATUM) = 6, 4, //6 Freitag - 4 Tage addieren > nächster Dienstag
IIf(Weekday(DW_DATUM) = 7, 3, 0))))))) //7 Samstag - 3 Tage addieren > nächster Dienstag
Anschließend berechnest du das neue Datum mit .AddDays()
:
DW_DATUM.AddDays(AnzahlTage)
Somit kannst du eine Variable erstellen die von einem Datum aus, den nächsten Tag errechnet der ein Dienstag oder Freitag ist UND mindestens 3 Tage entfernt ist.
Der zusammengefügter Ausdruck (herausfinden und addieren) sollte so aussehen:
DW_DATUM.AddDays(IIf(Weekday(DW_DATUM) = 1, 5, IIf(Weekday(DW_DATUM) = 2, 4, IIf(Weekday(DW_DATUM) = 3, 3, IIf(Weekday(DW_DATUM) = 4, 6, IIf(Weekday(DW_DATUM) = 5, 5, IIf(Weekday(DW_DATUM) = 6, 4, IIf(Weekday(DW_DATUM) = 7, 3, 0))))))))
Viele Grüße / With best regards,
--
Gerardo Lisanti
Team Leader Product Management | DocuWare GmbH