Domino 9 und frühere Versionen > Entwicklung

verschiedene Dokumente vergleichen

<< < (2/5) > >>

Driri:
Liest du die Dokumente aus zwei verschiedenen Views aus ?

Mir ist noch nicht ganz klar, was genau du vorhast. Kannst du das evtl. noch etwas genauer beschreiben ?

Wieviele Dokumente sollen verglichen werden ? Wie werden sie gewählt (manuell, erste in der View, etc.) ? etc. pp.

chock:
Ich wollte die Dokumente aus zwei verschiedenen Views auslesen.

Aber man kann ja auch aus den beiden Ansichten eine Ansicht machen, sortiert nach den Feldern die man vergleichen will, oder?

Ich möchte jedes Dokument mit jedem vergleichen.

z.B. ist in einem Dokument  (aus View 1) das Feld x1 gleich dem Feld x2 in irgendeinem Dokument (aus View 2), dann soll in dem Dokument (aus View 1) ein Feld auf "ja" gesetzt werden.

Driri:
Dann müßtest du in einer Schleife durch alle Docs aus View 1 cyceln und innerhalb dieser Schleife eine zweite Schleife laufen lassen, in der du jeweils die Dokumente aus View 2 mit dem aktuellen aus View 1 vergleichst.

Also von der Logik her so :

While Not (doc1 is Nothing)
   tmp1 = doc.GetItemValue("Feld")
   While Not (doc2 is Nothing)
      tmp2 = doc2.GetItemValue("Feld2")
      If (tmp1(0) = tmp2(0)) Then
         doc1.Feld = "ja"
      End If
      Set doc2 = view2.GetNextDocument(doc2)
   Wend
   Set doc1 = view1.GetNextDocument(doc1)
Wend

chock:
hab mir die Formel jetzt so zusammengestellt:
Aber er findet nicht in den Feldern name1 und name2.
Woran könnte das noch liegen?

Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim view1 As NotesView
   Dim view2 As NotesView
   Dim doc1 As NotesDocument
   Dim doc2 As NotesDocument
   Set db = session.CurrentDatabase
   Set view1 = db.GetView("Mitarbeiter Status")
   Set view2 = db.GetView("(teilnehliste)")
   Set doc1 = view1.GetFirstDocument
   Set doc2 = view2.GetFirstDocument
   While Not (doc1 Is Nothing)
   tmp1 = doc1.GetItemValue("name1")
   While Not (doc2 Is Nothing)
   tmp2 = doc2.GetItemValue("name2")
   If (tmp1(0) = tmp2(0)) Then
   doc1.besucht1 = "ja"
   End If
   Set doc2 = view2.GetNextDocument(doc2)
   Wend
   Set doc1 = view1.GetNextDocument(doc1)
   Wend

Driri:
Definier tmp1 und tmp2 mal als Variant (Dim tmp1,tmp2 As Variant).

Ansonsten : Was siehst du denn im Debugger ? Werden die einzelnen Objekte korrekt zugewiesen, gibt es alle definierten Variablen ? Was steht dort in tmp1 bzw. tmp2 drin ?

Ach ja, da fehlt noch nen Save, wenn du den Wert auf "ja" gesetzt hast

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln