Autor Thema: [Gelöst] Refresh von <Computed Value> ohne Ausführung von Input Validation  (Gelesen 2707 mal)

Offline MonsterX

  • Frischling
  • *
  • Beiträge: 13
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
[...]

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
« Letzte Änderung: 25.09.07 - 10:08:28 von MonsterX »

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Refresh von <Computed Value>
« Antwort #1 am: 25.09.07 - 08:45:02 »
Falscher Befehl ....
uidoc.refresh, nicht reload. Schau dir die Beschreibung der Online Hilfe für diese beiden mal etwas genauer an.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Gruß
Dirk

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Re: Refresh von <Computed Value>
« Antwort #3 am: 25.09.07 - 09:07:03 »
Du kannst auch die Eingabevalidierungen erweitern mit : @IsDocBeingSaved

Bsp:
@if( @ThisValue = "" & @IsDocBeingSaved ; @Failure( @ThisName + " erwartet Eingabe!" ) ; @Success )
Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

Offline MonsterX

  • Frischling
  • *
  • Beiträge: 13
Re: Refresh von <Computed Value>
« Antwort #4 am: 25.09.07 - 09:16:42 »
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...

Offline MonsterX

  • Frischling
  • *
  • Beiträge: 13
Re: Refresh von <Computed Value>
« Antwort #5 am: 25.09.07 - 10:07:27 »
Ok, man merkt wohl, dass ich noch Anfänger bin :-)

Der Tipp von dirk_2909 hat tatsächlich funktioniert. @IsDocBeingSaved liefert True während dem gesamten Vorgang des Abspeicherns. Aber nicht davor und auch nicht mehr danach. Ich schätze mal sobald irgendwas (manuell oder programmatisch) versucht das Dokument zu speichern, wird die Variable auf True gesetzt, dann diverse Methoden (u.a. auch die Input Validation) ausgeführt, das Dokument gespeichert und anschließend wieder auf False gesetzt. Nette Kleinigkeit... :-)

Danke an alle für die schnelle Hilfe! Ist ein tolles Forum hier (wobei dominoforum.de auch nicht zu verachten ist *zwinker@diali* :-)

edit: Achja, der Tipp von Thomas Schulte ist auch in Verwendung: uidoc.Refresh kommt zum Einsatz...
« Letzte Änderung: 25.09.07 - 11:30:10 von MonsterX »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz