Autor Thema: Änderung eines Feldes vor dem Speichern Prüfen  (Gelesen 1823 mal)

Offline oz

  • Frischling
  • *
  • Beiträge: 17
Änderung eines Feldes vor dem Speichern Prüfen
« am: 26.09.05 - 12:56:30 »
Hallo Forum,

Ich möchte vor dem speichern prüfen, ob sich der Wert eines Feldes durch den Benutzer geändert wurde. Ich habe daher folgenden Code in die Querysave meines Formulars gelegt.

   Dim uiName As String
   uiName = Source.FieldGetText("fldGlobalProfileName")
   
   Dim beName As String
   beName = Source.Document.fldGlobalProfileName(0)
   
   Messagebox uiName & " " & beName

Die Messagebox gibt zwei gleiche Werte zurück. Wieso ist das? Kann mir jemand sagen wie ich diese Problem löse.

Vielen Dank für Eure Hilfe

oz


Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Änderung eines Feldes vor dem Speichern Prüfen
« Antwort #1 am: 26.09.05 - 12:58:45 »
Indem du im Queryopen des Dokumentes ein
set histDoc = source.document einbaust.
und dann
gegen HistDoc.fldGlobalProfileName(0) prüfst
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 Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Änderung eines Feldes vor dem Speichern Prüfen
« Antwort #2 am: 26.09.05 - 13:09:26 »
Hi,

wenn es nur um die Prüfung geht, ob ein User einen Feldwert geändert hat, brauchst du nicht unbedingt ein Profildokument.

Füge in den Declarations - Abschnitt der Maske eine Variable ein. Diese setzt du dann im Postopen-Event mit dem Wert des entsprechenden Feldes. Im QuerySave-Event kannst du dann den aktuellen Inhalt des Feldes mit der Variablen vergleichen und entsprechend reagieren.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Änderung eines Feldes vor dem Speichern Prüfen
« Antwort #3 am: 26.09.05 - 13:17:48 »
Stimmt Axel aber mit dem Dokument geht das auch und es hat den Vorteil das du nicht jede einzelne Variable deklarieren musst.
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 oz

  • Frischling
  • *
  • Beiträge: 17
Re: Änderung eines Feldes vor dem Speichern Prüfen
« Antwort #4 am: 26.09.05 - 13:42:10 »
Hallo Forum,

erst mal Danke für Eure Beiträge.
Ich habe jetzt folgendes getan:
In den Declarations meines Formulars:

Dim origDoc As NotesDocument

Dann im Postopen:
   Set origDoc = Source.Document
   Messagebox  origDoc.fldGlobalProfileName(0)

Die Ausgabe hier ist (welch Wunder) tatsächlich der Wert des Feldes im Backend Dokument. Soweit so Gut.

Dann im Querysave:

   Dim uiName As String
   uiName = Source.FieldGetText("fldGlobalProfileName")
   
   Dim beName As String
   beName = origDoc.fldGlobalProfileName(0)
   
   Messagebox uiName & " " & beName

Hier greife ich also nun nochmals auf die Variable origDoc zu. Nun enthalten die Variablen uiName und beName die gleichen Werte.
Offensichtlich werden hier nur Referenzen übergeben, die dann zur Laufzeit geändert werden.

Der Trick ist im PostOpen gleich einen String zu deklarieren, der den Wert des Feldes enthält und darauf zuzugreifen. Strings werden byvalue übegeben und bleiben somit stabil. Dann geht das ganze.

Vielen Dank Trotzdem

Oz


 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz