Doppelte Einträge im Betriebskalender
Ich erzeuge einen Betriebskalender über ein Script aus einem Schalterfeld.
do as server
let da := Von;
let whiler := true;
while whiler do
let createBk := (create Betriebskalender);
createBk.(Datum := da);
da := da + 1;
whiler := Bis >= da
endend
"Von" und "Bis" sind Datumsfelder in einem Dashboard, die Beginn und Ende des Kalenders festlegen.
Nach Klick, wird der Betriebskalender gefüllt. Aber: Der 25.10.2020, der 31.10.2021 der 30.10.2022 , der 29.10.23 und der 27.10.24 werden doppelt in die Tabelle eingetragen. Also bisher immer irgende ein Sonntag im Oktober, der doppelt erscheind. Ich seh bei mir aber keinen Fehler! Hat jemand eine Idee? Danke!
3 Antworten
-
Hallo, die doppelten Datumseinträge sind die Wechsel von Sommer- auf Winterzeit. Versuch es mal mit date() beim Erhöhen des Datumswertes um einen Tag:
do as server
let da := Von;
let whiler := true;
while whiler do
let createBk := (create Betriebskalender);
createBk.(Datum := da);
da := date(year(da), month(da), day(da) + 1);
whiler := Bis >= da
end
end
-
Ja, das mit Sommerzeit ist immer Murks. Und die Lösung mit date () hat bis jetzt immer funktioniert. Ich würde allerding die Schleife anders organisieren.
---
for i in range(days(Von,Bis) do
create Betriebskalender.(Datum:=date(year(Von),month(Von),day(Von)+i))
end
---So verhindert man mehrere Vergleiche in der Schleife.
Leo
-
Danke @Copytexter! Problem verstanden. @Leo: Schöne Lösung. Die nehme ich! :-)
Content aside
- vor 4 JahrenZuletzt aktiv
- 3Antworten
- 548Ansichten