Datum soll größer als Heute sein

Fragen und Antworten rund um das Thema JavaScript im LiveCycleDesigner
Antworten
Benutzeravatar
Winnie
Beiträge: 2
Registriert: 02.10.2015, 09:45

Datum soll größer als Heute sein

Beitrag von Winnie » 27.06.2017, 11:56

Hallo Zusammen,

für ein Bestellformular suche ich nach einer Funktion, mit der ich für ein Datumsfeld vorgeben kann, dass kein Datum in der Vergangenheit inkl. Heute ausgewählt werden kann.
Am besten sollte dann eine Fehlermeldung erscheinen, dass das Datum in der Zukunft liegen muss (Heute plus 2 Werktage).

Wir haben in unserem Formular bisher alle Funktionen mit Hilfe von JavaScript erstellt und irgendwo gelesen, dass man FormCalc und JavaScript nicht mischen sollte.
Daher die Frage, ob es dazu eine JS-Funktion gibt. ;)

Vielen Dank schon einmal für eure Hilfe.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

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

Datum soll größer als Heute sein

Beitrag von armine » 27.06.2017, 13:01

Hallo Winnie,

versuche mal

... DateTimeField1::exit - (JavaScript, client)

var tmp = util.printd("yyyy-mm", new Date()) + (new Date().getDate() + 102).toString().replace(/^1/,"-") ;
if (this.rawValue < tmp) {
app.alert("Das Datum wurde auf den frühest möglichen Termin abgeändert.") ;
this.rawValue = tmp ;
}

vg armine

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

Datum soll größer als Heute sein

Beitrag von armine » 27.06.2017, 18:04

Bitte enschuldige den Schnellschuss. So funktioniert das nur innerhalb eines Monats. Monatsübergreifend braucht es etwas mehr Code.

DateTimeField1::exit - (JavaScript, client)

var d = util.printd("yyyy-mm-dd", new Date()).split("-").map(Number) ;
var tmp = util.printd("yyyy-mm-dd", new Date(d[0], d[1] - 1, d[2] + 2)) ;
if (this.rawValue < tmp) {
app.alert("Das Datum wurde auf den frühest möglichen Termin abgeändert.") ;
this.rawValue = tmp ;
}

vg armine

Benutzeravatar
Winnie
Beiträge: 2
Registriert: 02.10.2015, 09:45

Datum soll größer als Heute sein

Beitrag von Winnie » 28.06.2017, 07:43

wow, super :D
Das funktioniert perfekt, vielen Dank.

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

Datum soll größer als Heute sein

Beitrag von armine » 28.06.2017, 10:13

FormCalc und JavaScript mischen? Geht doch gar nicht. Du kannst aber beide Sprachen in einem Formular ohne Bedenken verwenden. FormCalc bietet zu deinem Problem den kürzeren Code:

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

if (Date2Num($, "YYYY-MM-DD") < Date() + 2) then
xfa.host.messageBox("Das Datum wurde auf den frühest möglichen Termin abgeändert.")
$ = Num2Date(Date() + 2, "YYYY-MM-DD")
endif

Antworten