Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: wuwu am 28.04.05 - 08:44:50
-
Hallo,
wäre für einen Tip sehr dankbar für folgende Sache:
Ich möchte gerne eine Funktion ausführen wenn sich der Wert eines Feldes geändert hat.
z.B.: Feld Test hat vorher den Wert 10€, wenn sich nun der Wert geändert hat auf 20€ dann sollte im Querysave etwas ausgeführt werden.
Wie ist das realisierbar, gibt es da eine Funktion?
Mfg & Danke Horst
-
Nicht, dass ich wüsste.
Idee: im postopen den alten Wert im versteckten Feld merken und im querysave dann vergleichen.
-
Danke Klaus, an das habe ich auch schon gedacht und wurde auch schon realisiert!
Habe im Postopen folgendes eingefügt:
if source.editmode = true then......
auf das habe ich vorher nicht geachtet!
Danke für die Hilfe!
Mfg Horst
-
Hi,
so was hab ich schon einige Male gemacht. Du brauchst nicht unbedingt ein Feld dazu.
Im Postopen-Event der Maske frägst du den Feldwert ab und schreibst ihn in eine maskenglobale Variable. Im QuerySave - Event vergleichst du den Wert der Variable mit dem aktuellen Feldinhalt und wenn sie unterschiedlich sind, führst du dann die entsprechenden Anweisungen aus.
Axel
-
Als "Beweismittel" ist ein Feld nicht das Schlechteste.... ;D
-
Hallo,
ich mache das gewöhnlich so, wie von Axel beschrieben. Die Sache mit if 2source.editmode = true then......" und dann ein Feld beschreiben hat nämlich noch einen Haken: Wenn das Dokument im Lesemodus geöffnet und dann in Editmodus versetzt wird, greift die Sache nicht mehr. Um das abzufangen, muss noch eine Abfrage in das PostModeChange-Event.
Das angesprochende Beweisfeld lässt sich IMHO auch mit den globalen Maskenvariablen besser lösen. Dann schreibt man halt im QuerySave in ein entsprechendes History-Feld "<XY> hat am <Datum> das Feld <Feld> von Wert <AlterWert> nach <NeuerWert> geändert." Oder so ähnlich.
Viele Grüße
ghost
-
@ghost,
so meinte ich das auch.
-
Habe ich auch jetzt eingebaut bzw. umgestellt.
@ghost, das Probleme hatte ich auch, wenn man das Dokument nur angesehen danach bearbeitet hat, das Feld nicht gesetzt wurde!
Jetzt ist die Sache aber vom Tisch!
Jungs - Danke nochmal!
Mfg Horst
-
Dafür kann man ideal die History-Klasse von Michael Wöhrer einsetzen.
Bei Interesse, hier der Link (http://www.notes-links.de/cpo/eigenentwicklungen/detail.php?nr=519&kategorie=eigenentwicklungen)