Autor Thema: Vorherigen Wert des Feldes beim Query Save auslesen  (Gelesen 1160 mal)

Offline Roam

  • Frischling
  • *
  • Beiträge: 5
Hallo,

ich habe folgendes Problem. Ich möchte beim Ändern eines Datensatzes den vorherigen Wert des Feldes auslesen. Hierfür habe ich versucht den vorherigen Wert des Feldes anhand der DocID auszulesen. Allerdings steht obwohl es im Querysave ist im doc immer schon der neue Wert. Hat da vielleicht jemand eine Idee.

Hier der Quelltext:

Sub Querysave(Source As Notesuidocument, Continue As Variant)
   Dim s As New notessession
   Dim db As notesdatabase
   Dim doc As notesdocument
   Dim vw_hauptkat As notesview
   Dim ws As New notesuiworkspace
   Dim uidoc As notesuidocument   
   
   Set db = s.CurrentDatabase
   Set vw_hauptkat = db.GetView("pdfvwHauptkategorie")
   Set doc = vw_hauptkat.GetFirstDocument
   Set uidoc = ws.CurrentDocument
   
   Do While Not (doc Is Nothing)
      If uidoc.FieldGetText("Hauptkategorie") = doc.hauptkategorie(0) Then
         Msgbox "Diese Hauptkategorie ist bereits vorhanden"
         continue = False
         Exit Sub
      End If
      Set doc = vw_hauptkat.GetNextDocument(doc)
   Loop

Vielen Dank im vorraus

Robin

klaussal

  • Gast
Re: Vorherigen Wert des Feldes beim Query Save auslesen
« Antwort #1 am: 06.10.06 - 09:56:11 »
Warum sicherst Du den Wert nicht im QueryPostopen ?
« Letzte Änderung: 06.10.06 - 10:06:37 von klauss »

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re: Vorherigen Wert des Feldes beim Query Save auslesen
« Antwort #2 am: 06.10.06 - 10:03:29 »
Hallo,

da gibt es sicher mehrere Möglichkeiten.

Die eine Lösung ist, wie sie klauss beschrieben hat, eine Varible zu definieren, im Postopen den aktuellen Wert zuzuweisen und im QuerySave diesen mit dem aktuellen zu vergleichen. Es sollte übrigens im PostOpen sein, weil Du im QueryOpen unter Umständen noch keinen Zugriff auf das Dokument hast.

Die zweite Lösung ist, dass Du das Dokument mit dem gespeicherten Dokument vergleichst. Das ist aber nicht ganz so einfach, denn wenn Du das Dokument mit GetDocumentByUnID holst, dann gibt er Dir das aktuelle Dokument zurück. Ich habe das früher mal gebraucht und damals eine Ansicht gebaut, bei der der Sortierwert @Text(@DocumentUniqueID) war. Dann im QuerySave die View holen und das Dokument mit GetDocumentByKey(doc.UniversalID) holen. Interessanterweise bekommt Notes in diesem Fall nicht mit, dass es das gleiche Dokument ist. Damit hast Du dann die alte und die neue Version gleichzeitig im Speicher und kannst dann zum Beispiel die geänderten Feldwerte bestimmen.

Gruß,

Joachim
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz