Datum nach dem ersten öffnen nicht mehr verändern

Die Möglichkeiten und Tücken von Formularen
Antworten
MacPurschi
Beiträge: 43
Registriert: 11.10.2012, 09:44

Datum nach dem ersten öffnen nicht mehr verändern

Beitrag von MacPurschi » 08.04.2014, 10:29

Hallo zusammen,

ich habe ein merkwürdiges Problem mit einem Datumsfeld, welches nur beim ersten Öffnen, dass aktuelle Datum aufnehmen soll und danach nicht mehr verändert werden soll.

Das habe ich mit dem folgenden Script gelöst, welches ich ins docReady-Ereignis gehängt habe:

Code: Alles auswählen

if(this.rawValue==null){
this.rawValue = util.printd("date(de_DE){DD.MM.YYYY}", new Date(), true)
}
Mein Problem ist nun, dass das Datum nur dann erhalten bleibt, wenn ich das Formular wirklich speichere. Mein Formular soll aber nur versendet werden. Und wenn ich dann das versendete Formular öffne, wird immer das Datum aktualisiert, was ja eigentlich nicht gewünscht ist.

Hat jemand eine Idee, woran das liegen kann bzw. wonach ich schauen kann?

Das kuriose ist auch, dass es in einer früheren Version des Formular schon problemlos funktioniert hat. Nachdem ich es dann aktualisiert habe aber nicht mehr. An dem Datums-Feld habe ich aber nichts verändert.

Dank vorab an alle, die versuchen zu helfen.

VG MacPurschi

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

Datum nach dem ersten öffnen nicht mehr verändern

Beitrag von armine » 09.04.2014, 18:22

Hallo MacPurschi,

versuch mal

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

if ($ == null) then $ = Num2Date(Date(), "YYYY-MM-DD") endif

Das Ausgabeformat kannst du über Pattern (auf dt. Muster?) anpassen.

vg armine

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

Datum nach dem ersten öffnen nicht mehr verändern

Beitrag von MacPurschi » 10.04.2014, 10:21

P*E*R*F*E*K*T !!!

Vielen lieben Dank!!!

:D

Wespe
Beiträge: 29
Registriert: 15.08.2014, 13:40

Datum nach dem ersten öffnen nicht mehr verändern

Beitrag von Wespe » 27.08.2014, 17:25

Hallo armine,

ich suche für FormCalc Beispiele, wie ich mit Datumsfeldern rechnen kann. Ich habe folgende Aufgabe. Kunde kündigt bis einschl. 30.06. des laufenden Jahres, dann wird Kündigung zu 31.12. des laufenden Jahres akzeptiert. Kündigt er aber NACH dem 30.06. , so wird Kündigung zum Folgejahr akzeptiert. Im Formular soll nur das entsprechende Jahr der Kündigung angezeigt werden.

$= if Num2Date(Date(), "MM-DD") <= "06-30" then Num2Date(Date(), "YYYY") else Num2Date((Date(), "YYYY")+1)

Ich sheitere schon beim ersten Vergleich, finde in der FormCalc Benutzerreferenz keinen vernünftigen Hinweis, wie Num2Date anzuwenden ist.

m.f.G.
Werner


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

Datum nach dem ersten öffnen nicht mehr verändern

Beitrag von armine » 28.08.2014, 08:18

Hallo Werner,

statt zu vergleichen kannst du in FormCalc aus dem Tag der Kündigung mit Date2Num() den Tag als Zahl (Tage seit dem 1.1.1900) herausholen. Dazu addierst die die Tage des 2. Halbjahrs (184). Aus dieser Summe machst du mit Num2Date() die gesuchte Jahreszahl. Das sieht als Code so aus:

form1.#subform[0].Kündigungstermin::exit - (FormCalc, client)

Wirksamkeit = Num2Date(Date2Num($, "YYYY-MM-DD") + 184, "YYYY")

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

Wespe
Beiträge: 29
Registriert: 15.08.2014, 13:40

Datum nach dem ersten öffnen nicht mehr verändern

Beitrag von Wespe » 28.08.2014, 08:30

Hallo armine,

danke für die elegante Lösung. Ich wollte deshalb auf den Zeichenkettenwert "30.06" abprüfen, weil ich die Problematik mit dem Schaltjahr umgehen wollte, aber die Tage des 2. Halbjahres sind fest.

m.f.G.

Werner

Antworten