Hallo an alle Acronauten und Lifecycle-Experten,
wie schaffe ich es, dass ich ein Datumsfeld, welches ich mit dem Tagesdatum fülle, so "festzurre", dass
es beim erneuten Öffnen nicht wieder das aktuelle Datum anzeigt sondern das "erstere"?
Ich hab schon einiges probiert mit feld.access = "ReadOnly" etc. aber nichts will so richtig funktionieren.
Also nochmal zum Verständnis:
Datumsfeld wird im "initialize"-Event mit dem Tagesdatum gefüllt. Funktioniert. Haken dran.
Ich bearbeite das Formular....speichere es. und beim erneuten Öffnen mit dem Reader z.B. 2 Wochen später (weil ich z.B. im Formular einen früher erfasssten Inhalt anschauen möchte läuft er wieder durch das initialize Event. Wie kann ich das unterbinden?
Mir würde ein "Workaround" einfallen...Globale Variable setzen z.B. auf 0 dann durchläuft er das init-Event. Den Code Datumsfeld setzen in einer if-else-Abfrage auf 0 oder 1 entsprechend im Event schachteln und danach die Variable auf 1 setzen.
Bleibt nur die Frage, ob beim Speichern Globale Variablen Werte mitgespeichert werden, so dass er beim nächsten Öffnen eben beim INIT-Event um das if herum läuft und nicht hinein.
Geht das? Ist das ordentlich programmiert? Gibts Alternativen? Zu kompliziert gedacht? Bin für alle Anregungen dankbar.
Grüße von der Isar.
Datumsfeld nur einmal initialisieren
-
- Beiträge: 106
- Registriert: 30.10.2013, 12:42
- Wohnort: München
Datumsfeld nur einmal initialisieren
DateTimeField1::docReady - (JavaScript, client)
if (this.isNull) this.rawValue = util.printd("yyyy-mm-dd", new Date())
sollte das Problem lösen.
if (this.isNull) this.rawValue = util.printd("yyyy-mm-dd", new Date())
sollte das Problem lösen.
Datumsfeld nur einmal initialisieren
Hallo Leute
Ich habe ein ähnliches Problem und zwar:
Im "Initial" Ereignis steht bei mir folgendes
if (xfa.host.version < 8) {
this.resolveNode("$").fontColor = "135, 135, 135";
}
else {
var CaptionColorBackup = this.resolveNode("$").caption.font.fill.color.value;
this.resolveNode("$").font.fill.color.value = "135, 135, 135";
this.resolveNode("$").caption.font.fill.color.value = CaptionColorBackup;
}
Im Exit Event habe ich ein Script, welches dafür sorgt, dass die Schrift, wenn im Feld "Thema" etwas eingetragen wird, schwarz wird.
Bis anhin klappt alles, das Problem taucht auf, wenn ich das Dokument speichere und erneut öffne. Das "Thema", welches dann irgendein Titel ist, ist wieder grau (135, 135, 135) und sollte aber schwarz sein.
Ich nehme an, der "Initial event" wird dann nochmals ausgeführt, wobei die Schrift wieder auf grau wechselt, obwohl das "Thema"-Feld nicht leer ist.
Wie kann ich eine Bedingung schreiben, dass das Feld schwarz bleibt, wenn etwas drin steht?
Im Bild sind die grauen Felder gemeint, bei denen der default Text bei Eingabe verschwindet und die Schrift auf schwarz wechselt.
Ich habe ein ähnliches Problem und zwar:
Im "Initial" Ereignis steht bei mir folgendes
if (xfa.host.version < 8) {
this.resolveNode("$").fontColor = "135, 135, 135";
}
else {
var CaptionColorBackup = this.resolveNode("$").caption.font.fill.color.value;
this.resolveNode("$").font.fill.color.value = "135, 135, 135";
this.resolveNode("$").caption.font.fill.color.value = CaptionColorBackup;
}
Im Exit Event habe ich ein Script, welches dafür sorgt, dass die Schrift, wenn im Feld "Thema" etwas eingetragen wird, schwarz wird.
Bis anhin klappt alles, das Problem taucht auf, wenn ich das Dokument speichere und erneut öffne. Das "Thema", welches dann irgendein Titel ist, ist wieder grau (135, 135, 135) und sollte aber schwarz sein.
Ich nehme an, der "Initial event" wird dann nochmals ausgeführt, wobei die Schrift wieder auf grau wechselt, obwohl das "Thema"-Feld nicht leer ist.
Wie kann ich eine Bedingung schreiben, dass das Feld schwarz bleibt, wenn etwas drin steht?
Im Bild sind die grauen Felder gemeint, bei denen der default Text bei Eingabe verschwindet und die Schrift auf schwarz wechselt.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Datumsfeld nur einmal initialisieren
Hallo DavidL,
Formular1.Inhalt.Textfeld1::initialize - (JavaScript, client)
if (xfa.host.version < 8)
{
this.resolveNode("$").fontColor = "135, 135, 135" ;
}
else
{
var CaptionColorBackup = this.resolveNode("$").caption.font.fill.color.value ;
this.resolveNode("$").font.fill.color.value = "135, 135, 135" ;
this.resolveNode("$").caption.font.fill.color.value = CaptionColorBackup ;
}
Formular1.Inhalt.Textfeld1::enter - (JavaScript, client)
this.fontColor = "0,0,0" ;
Formular1.Inhalt.Textfeld1::exit - (JavaScript, client)
if (!(this.isNull || this.rawValue.length == 0)) {
this.fontColor = "0,0,0" ;
}
else
{
this.fontColor = "135, 135, 135" ;
}
Formular1.Inhalt.Textfeld1::docReady - (JavaScript, client)
this.execEvent("exit") ;
Versuch es mal so.
Gruß
Tyr
Formular1.Inhalt.Textfeld1::initialize - (JavaScript, client)
if (xfa.host.version < 8)
{
this.resolveNode("$").fontColor = "135, 135, 135" ;
}
else
{
var CaptionColorBackup = this.resolveNode("$").caption.font.fill.color.value ;
this.resolveNode("$").font.fill.color.value = "135, 135, 135" ;
this.resolveNode("$").caption.font.fill.color.value = CaptionColorBackup ;
}
Formular1.Inhalt.Textfeld1::enter - (JavaScript, client)
this.fontColor = "0,0,0" ;
Formular1.Inhalt.Textfeld1::exit - (JavaScript, client)
if (!(this.isNull || this.rawValue.length == 0)) {
this.fontColor = "0,0,0" ;
}
else
{
this.fontColor = "135, 135, 135" ;
}
Formular1.Inhalt.Textfeld1::docReady - (JavaScript, client)
this.execEvent("exit") ;
Versuch es mal so.
Gruß
Tyr
Datumsfeld nur einmal initialisieren
Hallo Tyr
Vielen Dank für deine Antwort... leider klappt es so nicht wie gewünscht...
Ich habe die betroffenen Felder in meinem Formular angehängt, vielleicht kannst du mir dann besser helfen.
Danke schonmal
Gruess
David
Vielen Dank für deine Antwort... leider klappt es so nicht wie gewünscht...
Ich habe die betroffenen Felder in meinem Formular angehängt, vielleicht kannst du mir dann besser helfen.
Danke schonmal

Gruess
David
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Datumsfeld nur einmal initialisieren
Bist Du bitte so nett und beschreibst, was genau Du im Objekt "TiteldesDokuments" erreichen möchtest?
Ich sehe im initialize, enter und im exit Event so ziemlich das selbe Skript?
caption.font.fill.color.value = CaptionColorBackup;
Es gibt doch gar keine Feldbeschriftung.
Ich sehe im initialize, enter und im exit Event so ziemlich das selbe Skript?
caption.font.fill.color.value = CaptionColorBackup;
Es gibt doch gar keine Feldbeschriftung.
Datumsfeld nur einmal initialisieren
Hm, ich weiss ist etwas kompliziert, ich versuche es mal Schritt für Schritt zu beschreiben:
1. TiteldesDokuments hat Standardwert: < Thema >
2. < Thema > ist standardmässig grau, also "135, 135, 135"
3. Wenn ich ins Textfeld "TiteldesDokuments" klicke verschwindet der Text "< Thema >" und ich kann einen beliebigen Titel eingeben (sagen wir mal "Flugzeug")
4. Der Titel "Flugzeug" erscheint nun schwarz, also "0, 0, 0"
5. Wenn ich "Flugzeug" wieder lösche und das Textfeld "TiteldesDokuments" leer hinterlasse, dann erscheint wieder der Standardwert "< Thema >" und zwar wieder in grau, also "135, 135, 135"
Soweit so gut... das klappt alles wie gewollt!
Nun ist es so:
6. Ich gebe im Textfeld "TiteldesDokuments" das Thema "Flugzeug" ein
7. "Flugzeug" wird schwarz dargestellt
8. Ich speichere das Dokument
9. Einen Tag später öffne ich das Dokument wieder und "Flugzeug" wird nun grau dargestellt, also "135, 135, 135", sollte aber schwarz sein.
Wie krieg ich es hin, dass beim wiederöffnen der Text im Textfeld "TiteldesDokuments" nicht grau sondern schwarz bleibt?
Ich hoffe es ist so etwas klarer, was mein Problem ist
1. TiteldesDokuments hat Standardwert: < Thema >
2. < Thema > ist standardmässig grau, also "135, 135, 135"
3. Wenn ich ins Textfeld "TiteldesDokuments" klicke verschwindet der Text "< Thema >" und ich kann einen beliebigen Titel eingeben (sagen wir mal "Flugzeug")
4. Der Titel "Flugzeug" erscheint nun schwarz, also "0, 0, 0"
5. Wenn ich "Flugzeug" wieder lösche und das Textfeld "TiteldesDokuments" leer hinterlasse, dann erscheint wieder der Standardwert "< Thema >" und zwar wieder in grau, also "135, 135, 135"
Soweit so gut... das klappt alles wie gewollt!
Nun ist es so:
6. Ich gebe im Textfeld "TiteldesDokuments" das Thema "Flugzeug" ein
7. "Flugzeug" wird schwarz dargestellt
8. Ich speichere das Dokument
9. Einen Tag später öffne ich das Dokument wieder und "Flugzeug" wird nun grau dargestellt, also "135, 135, 135", sollte aber schwarz sein.
Wie krieg ich es hin, dass beim wiederöffnen der Text im Textfeld "TiteldesDokuments" nicht grau sondern schwarz bleibt?
Ich hoffe es ist so etwas klarer, was mein Problem ist

Datumsfeld nur einmal initialisieren
Ja, das war doch gut erklärt.
Die Reader Rechte sind vergeben, damit siehst Du das beim Öffnen die Schrift im "Thema" schwarz ist. Beim Löschen der Eingabe wird die Schrift wieder grau. Bei < ED Decision Number > verhält es sich ähnlich, die Schrift bleibt aber schwarz und beim Drucken werden Eingaben berücksichtigt, insofern welche drinstehen.
Die Reader Rechte sind vergeben, damit siehst Du das beim Öffnen die Schrift im "Thema" schwarz ist. Beim Löschen der Eingabe wird die Schrift wieder grau. Bei < ED Decision Number > verhält es sich ähnlich, die Schrift bleibt aber schwarz und beim Drucken werden Eingaben berücksichtigt, insofern welche drinstehen.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Datumsfeld nur einmal initialisieren
Hallo Tyr
Vielen Dank für Deine Hilfe, so klappt es wie gewollt, genial!:D
Vielen Dank für Deine Hilfe, so klappt es wie gewollt, genial!:D