Datum einschränken - nur der erste eines jedem Monats mit 2 Wochen Vorlauf

Alles was sich mit dem Thema dynamische XML Formulare auf Basis des LiveCycleDesigners beschäftigt
Antworten
MacPurschi
Beiträge: 43
Registriert: 11.10.2012, 09:44

Datum einschränken - nur der erste eines jedem Monats mit 2 Wochen Vorlauf

Beitrag von MacPurschi » 17.10.2019, 10:29

Hallo zusammen,

ich stehe vor der Herausforderung, die Eingabe eines Datum-Feldes dahingehend zu prüfen, dass nur der 1. eines jeden Monats zugelassen wird und das mit einer Vorlaufzeit von 14 Tagen.

Die 14 Tage Vorlaufzeit bekomme ich noch hin:

Code: Alles auswählen

form1.#subform[0].DateTimeField1::exit - (FormCalc, client)

var ref = Date() + 14
if (Date2Num($, "YYYY-MM-DD") == 0) then
xfa.host.messageBox(Concat($, " schaut nicht wie ein Datum (TT.MM.JJJJ) aus und wird deswegen gelöscht."), "Es wird ein Datum erwartet.", 0)
$ = null
elseif (Date2Num($, "YYYY-MM-DD") < ref) then
xfa.host.messageBox(Concat("Das eingegebene Datum darf nicht vor dem ", Num2Date(ref, "DD.MM.YYYY"), " liegen\u000aund wird korrigiert."), "Debugging", 1)
$ = Num2Date(ref, "YYYY-MM-DD")
endif
Aber wie muss ich den Code ergänzen, dass nur der jeweils 1. eines Monats zugelassen wird (1. Januar, 1. Februar ...)
Kann mich hier jemand unterstützen?

MacPurschi
Beiträge: 43
Registriert: 11.10.2012, 09:44

Re: Datum einschränken - nur der erste eines jedem Monats mit 2 Wochen Vorlauf

Beitrag von MacPurschi » 18.10.2019, 15:27

Ich konnte es inzwischen selber lösen:

Code: Alles auswählen

if (not $.isNull) then
   if (Date2Num($.formattedValue, "DD.MM.YYYY") lt Sum(Date(), 14) | Left($.formattedValue, 2) <> "01") then
       $host.messageBox(Concat("Datum darf immer nur der Monatserste sein mit mindestens 14 Tagen Vorlaufzeit. "))
       $.rawValue = ""
   endif
endif
;)

armine
Beiträge: 2691
Registriert: 16.05.2009, 10:24

Re: Datum einschränken - nur der erste eines jedem Monats mit 2 Wochen Vorlauf

Beitrag von armine » 21.10.2019, 08:55

Hallo MacPurschi,

danke für den Code mit der Lösung. Du könntest aber noch eine Autokorrektur einbauen, die eine Eingabe bei Bedarf auf den Monatsersten davor bzw. danach umsetzt.
Sollten die Termine in nächsten paar Monaten liegen, lassen sich die möglichen Eingaben auch in einer DDL vorformulieren.

vg armine
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten