Seite 1 von 1

Datum soll größer als Heute sein

Verfasst: 27.06.2017, 11:56
von Winnie
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.

Datum soll größer als Heute sein

Verfasst: 27.06.2017, 13:01
von armine
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

Datum soll größer als Heute sein

Verfasst: 27.06.2017, 18:04
von armine
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

Datum soll größer als Heute sein

Verfasst: 28.06.2017, 07:43
von Winnie
wow, super :D
Das funktioniert perfekt, vielen Dank.

Datum soll größer als Heute sein

Verfasst: 28.06.2017, 10:13
von armine
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