Domino 9 und frühere Versionen > Entwicklung

Zusammenführung von Dokumenten

(1/2) > >>

KiTaMann:
Guten Morgen zusammen,

ich habe aus externen Dateien 2 Dokumente erzeugt, die ich nun in ein Dokument zusammenführen möchte.

Was beide Dokumente gemeinsam haben ist die gleiche eindeutige Personalnummer. Diese soll für mich bei der Zusammenführung der Daten der Garant dafür sein, dass "Äpfel zu Äpfel" und "Birnen zu Birnen" kommen

Versucht habe ich folgendes:

In einem Aktionsknopf steckt dieses Script:


Sub Click(Source As Button)

   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim Step1Doc As NotesDocument
   Dim Step2Doc As NotesDocument
   Dim ResultDoc As NotesDocument
   Dim col1 As NotesDocumentCollection
   Dim col2 As NotesDocumentCollection
   Dim item As NotesItem
   Dim sel1, sel2 As String
   Dim dtCutOff As New NotesDateTime ("31.12.1899")
   Dim Personalnummer As String
Dim WAZ As String
… weitere Deklarationen
   
   Set db = session.CurrentDatabase
   
   sel1 = | Form = "Dokument1" |
   
   Set col1 = session.CurrentDatabase.Search(sel1,dtCutOff,0)
   
   For i = 1 To col1.count
      
      Set Step1Doc = col1.GetNthDocument(i)
      Set Item =Step1Doc.GetFirstItem("PersNr")
      Personalnummer = Trim(item.text)
      
      
      sel2 = | Form = "Dokument2" &  PersNr = Personalnummer |
      
      Set col2 = session.CurrentDatabase.Search(sel2,dtCutOff,0)      
      
      If col2.count > 0 Then
         
         For j = 1 To col2.count
            Set Step2Doc = col2.GetNthDocument(j)
            
            Set item = Step2Doc.GetFirstItem("Wochenarbeitszeit")
            WAZ = Trim(item.Text)
            
            … usw.
            
            
            Set ResultDoc = New NotesDocument(db)
            
            ResultDoc.Form = "ImportDokument"
            ResultDoc.ImportPersonalNummer = Personalnummer

            ... usw.
            
            Call ResultDoc.ComputeWithForm(False,False)
            Call ResultDoc.save(True,True)
            
         Next
      End If      
   Next   
   
End Sub


Wenn ich mir meine Variablen im Debugger ansehe, gibt die 2. Collection als gefundenen Wert "0" aus, was aber nicht sein kann. Die Variable Personalnummer ist auch ordnungsgemäß mit der Personalnummer aus Dokument1 "versehen".

Woran kanns liegen? (Feld- und Maskennamen habe ich natürlich überprüft)

Bin für jedwede Hilfe dankbar.

Grüße

Klaus

ghost:
Es muss heissen:

(...)
      sel2 = | Form = "Dokument2" &  PersNr = | & Personalnummer
(...)

Viele Grüße
ghost

KiTaMann:
@Ghost:

Danke für die prompte Antwort...

Passt .... -  jetzt wird die Nummer auch im Debugger angezeigt.

Grüße
Klaus

KiTaMann:
Schönen Sonntag wünsche ich....

... habe heute stundenlang (m)einen Fehler gesucht.

Nachdem mir die Nummer im debugger angezeigt wurde, dachte ich mir: "Naja, das machste dann am Sonntag mal eben fertig..." - Denkste!

Die Personalnummer wird mir nun zwar für meine Auswahl im debugger angezeigt, meine col2.count liefert mir aber als Ergebnis eine glatte "0", und das, obwohl die entsprechenden Dokumente mit Sicherheit in der DB vorhanden sind.

Beweis:
Die col2.count liefert mir hunderte von Dokumenten, wenn ich die Bedingung "Personalnummer" herausnehme...

Woran könnte es liegen? Hat jemand 'ne Idee?

Danke!

Klaus

koehlerbv:
Du müsstest Dir mal auseinanderbröseln, welcher Suchstring bei

sel2 = | Form = "Dokument2" &  PersNr = Personalnummer |

herauskommt:

"Form = "Dokument2" & PersNr = Personalnummer"

Deine Variable ist dabei Teil des fixen Strings!

Korrekt wäre:
sel2 = | Form = "Dokument2" &  PersNr = | & |"| & Personalnummer & |"|

Tip: Probiere derartige selection formulae immer in Messageboxen aus, wenn Du Dir noch nicht sicher bist, ob das Resultat stimmen wird. Mir hilft sowas sehr.

Das hier habe ich zum Ausprobieren verwendet:

--- Code: ---Sub Click (Source As Button)

Dim Personalnummer As String
PersonalNummer = "123"

Dim sel2 As String

sel2 = | Form = "Dokument2" &  PersNr = Personalnummer |

Msgbox sel2

sel2 = | Form = "Dokument2" &  PersNr = | & |"| & Personalnummer & |"|

Msgbox sel2

End Sub
--- Ende Code ---

HTH,
Bernhard

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln