Domino 9 und frühere Versionen > ND6: Entwicklung
[Gelöst] Refresh von <Computed Value> ohne Ausführung von Input Validation
MonsterX:
Hallo,
Ich arbeite mit einem Formular, in dem sich ein <Computed Value>-Feld befindet, das in Abhängigkeit von einem Feld x einen Wert berechnet. Der Wert von Feld x wird aber vom Benutzer eingegeben und erst anschließend kann das <Computed Value>-Feld berechnet werden. Deshalb habe ich beim OnBlur-Event von Feld x folgenden Code hinterlegt:
--- Code: ---[...]
uidoc.Reload
uiws.ViewRefresh
[...]
--- Ende Code ---
Ich denke, dass das theoretisch funktionieren sollte, jedoch existieren in dem Formular noch weitere Felder, welche eine Input Validation implementieren. Die Fehlermeldung der Input Validation wird bei einem Aufruf des OnBlur-Events von Feld x aufgerufen und der Inhalt des <Computed Value>-Felds wird nicht aktualisiert.
Es muss aber eine Möglichkeit geben nur die <Computed Value>-Felder zu aktualisieren, ohne dass die Input Validation-Überprüfung ausgeführt wird, da ich noch ein Dialog-List-Feld im Formular habe mit angehaktem "Refresh fields on keyword change" und bei manueller Wert-Änderung werden nur die <Computed Value>-Felder aktualisiert und nicht die Input Validation aufgerufen.
Ich hoffe mein Problem ist verständlich. Da ich noch Anfänger in Lotus Notes bin, bitte eine etwas ausführlichere Erklärung der Lösung :-)
Danke und beste Grüße,
Denis
Thomas Schulte:
Falscher Befehl ....
uidoc.refresh, nicht reload. Schau dir die Beschreibung der Online Hilfe für diese beiden mal etwas genauer an.
diali:
hättest Du auch dazuschreiben können
dirk_2909:
Du kannst auch die Eingabevalidierungen erweitern mit : @IsDocBeingSaved
Bsp:
@if( @ThisValue = "" & @IsDocBeingSaved ; @Failure( @ThisName + " erwartet Eingabe!" ) ; @Success )
MonsterX:
Ok... dann führen wir die Diskussion nur in diesem Forum weiter... :-)
@Thomas Schulte: Nein, das funktioniert leider nicht. Wenn ich uidoc.Refresh ausführe wird die Input Validation der anderen Felder ausgeführt und eine entsprechende Fehlermeldung erscheint.
@diali: Wie gesagt, wenn ich bei dem Dialog-List-Feld _manuell_ den Wert ändere, bei dem "Refresh fields on keyword change" angehakt ist, dann funktioniert es. Es soll aber nicht manuell, sondern programmatisch funktionieren. Da gibt es doch sicher eine Funktion dafür, ohne den Umweg über QuerySave?!
@dirk_2909: Probier ich gleich aus, aber in welcher Reihenfolge werden die einzelnen Funktionen abgearbeitet? Wird nicht zuerst die Input Validation ausgeführt und dann das Dokument gespeichert, so dass @IsDocBeingSaved erst True liefert, nachdem die Input Validation ausgeführt worden ist? Ich möchte aber schon vor/während dem ersten Speichern die Validierungen ausführen lassen, da ja sonst falsche Werte gespeichert werden können...
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln