Termin aus Datum, Uhrzeit und Dauer erstellen | do as server
Liebe Ninoxprofis,
ich möchte aus einem Datum, einer Uhrzeit und einer Dauer ein Terminfeld befüllen. Dazu habe ich einen Button erstellt, der mit angehängtem Skript, die Arbeit perfekt erledigt. Konnte ich der Dokumentation entnehmen - danke.
Nun sollte ich diese Zeilen in ein umfangreicheres Skript einbetten, welches ich mit "do as Server" über den Server ausführe und plötzlich bekomme ich ein anderes Ergebnis. Gleiches passiert auch dann, wenn ich im Feld "Dauer" das Skript ins Feld "Trigger nach Änderung" schreibe.
Es passieren zwei Dinge: Die Minuten werden immer als volle Stunde angezeigt und die Stunde der Startzeit wird auf +1 gesetzt. Aus 12:00 Uhr wird 13:00 Uhr und aus 12.13 Uhr wird auch 13:00 Uhr usw.. Ähnliches passiert auch beim Enddatum.
Ich komm leider nicht drauf, an was das liegt. Kann mir jemand helfen?
Liebe Grüße Sigi
PS Irgendwann kenn ich mich dann aus und dann hoffe ich, dass ich auch helfen kann :-).
do as server
let yy := year(Datum);
let dd := day(Datum);
let mm := month(Datum);
let Ahh := number(item(split(text(Uhrzeit), ":"), 0));
let Amin := number(item(split(text(Uhrzeit), ":"), 1));
let Dhh := number(item(split(text(Dauer), ":"), 0));
let Dmin := number(item(split(text(Dauer), ":"), 1));
OP_Zeitslot := appointment(datetime(yy, mm, dd, Ahh, Amin), time(Dhh, 0))
end
9 Antworten
-
HAllo Siegfried, nachdem ich mich etwas eingelesen habe, scheint das etwas mit den Servern zu tun zu haben und seit JAhren ein bug zu sein.
Bei der Stundenangabe könnte man Abhilfe schaffen, indem man eine Stunde abzieht, also in Zeile 5
let Ahh := number(item(split(text(Uhrzeit), ":"), 0))-1;
schreibt. Was die Minutenangabe angeht, finde ich gerade leider keine Lösung.
Gruß Kruna
-
Hallo Siegfried. Trigger werden grundsätzlich auf dem Server ausgeführt, daher das selbe Ergebnis wie im Button unter "do as server...end". Du könntest das umgehen, wenn Du die Bildung des Termins aus dem Bereich "do as server...end" herausläßt. Ausserdem kannst Du das Datumfeld, Zeitfeld und Zeitdauerfeld direkt eingeben, z.B. so
let term := text(appointment(datetime(Datum, Uhrzeit), Zeitdauer)); do as server sonstiger Code OP_Zeitslot := term sonstiger Code end
Mirko
-
OMG - da habe ich vorhin einen Anfängerfehler gemacht. Danke für die Geduld.
Jetzt funktioniert alles einwandfrei! Sowohl die Direkteingabe auf ein Terminfeld wie auch die Bearbeitung außerhalb der "do as server" Befehls.
Ein großes Dankeschön!
Liebe Grüße Sigi
Content aside
- vor 8 MonatenZuletzt aktiv
- 9Antworten
- 107Ansichten
-
5
Folge bereits