Das Notes Forum
Domino 9 und frühere Versionen => ND9: Entwicklung => Thema gestartet von: skywook am 06.04.20 - 15:38:26
-
Hallo,
in einem Feld steht der Monat der letzten Ausführung als Zahl z.B 5. Dann wird der aktuelle Monat (als Zahl) mit diesem Wert verglichen:
aktuellerMonat > MonatLetzteAusführung
Das funktioniert aber nicht wenn zum Beispiel der akuelle Monat der Januar und die letzte Ausführung der Dezember wäre.
Gibt es eine Scriptbefehl womit ich sagen kann, dass die Zahl eine Monatsangabe ist und die Berechnung dann passt?
-
Nein. Woher soll das Script wissen, ob es der Januar 1899 oder Januar 2021 ist ?
Also Datumsvergleich und gut ist.
-
Ich denke mal, das musst du selbst mit IF-Befehlen abprüfen.
Wenn du detaillierte Monatsvergleiche machen willst, solltest du dann auch immer das Jahr berücksichtigen.
-
Um Dein Konstrukt so weit möglich zu erhalten, schreibst Du in Dein Monatsfeld als Text Jahr und Monat, per Script wäre das
Format (DeinDatum, "yyyymm")
Ergibt für März 2020 "202003"
Vergleichst Du das mit dem gleichen Wert von heute (Format (Today, "yyyymm")), dann stehen sich "202003" und "202004" gegenüber.
Das kannst Du natürlich auch mit Zahlen machen, z.B. Jahr * 100 + Monat, ergibt für heute 202004.
Oder aber Du merkst Dir gleich das komplette Datum (wie eknori meint), dann brauchst Du an den Daten nichts mehr zu ändern, wenn sich an der Logik etwas ändert, beispielsweise von monatlich auf wöchentlich. Der Vergleich des Datums kann z.B. über den o.g. Formatbefehl erfolgen
-
Du es auch mit einen einfache If Formel ausrechnen.
Resultat := @If ( ( MonatLetzteAusführung >= 10 & AkteullerMonat <= 5 ) ; @If ( 12 + aktuellerMonat > MonatLetzteAusführung ; 1 ; 0 ) ; @If ( aktuellerMonat > MonatLetzteAusführung ) ; 1 ; 0 );
Damit zählst du 12 Monate zu den Aktuelle Monat, und damit ein Jahr drauf.
Dabei wäre es EGAL ob es 1 2 oder 10 jahre her ist.
Ich gehe davon aus das du diese Aktion (was auch immer es ist) nicht im gleichen Monat ausführen möchtest...
Das wird natürlich dann schief gehen wenn der Letzte Monat 10 war, und der Aktuelle Monat 6.