Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: lrzwkle am 19.05.04 - 15:04:43
-
Grüß´ Euch!
hat jemand eine Idee, wie ich in einem Notes-Dokument (in diesem Fall ein Internet-Mail in der Mailbox) die Werte von mehreren Items mit dem gleichen Namen auslesen kann?
Konkret geht es um das Feld "Received". Dieses Feld/Item enthält bei Internet-Mails die Server, über die es geroutet wurde und ist, je nachdem wieviele Server beteiligt waren, mehrfach vorhanden. Ganz egal, wie ich auf die Items zugreife, ich erhalte immer nur den Wert jenes Items mit der niedrigsten "Doppelte Eintrags-ID"-Nummer. Ich habe es auch schon mit einer Schleife über "doc.items" (alle Items des Dokumentes) probiert - das Item kommt zwar mehrmals vor, der Wert, der zurückgegeben wird, ist aber immer der selbe.
fG Siegi
-
Soweit mir bekannt geht das nur mit einem Trick: Erstelle ein neues temporäres Dokument und kopiere alle Items. Wenn das Item "Received" heisst, nenne es um in Received_<i>. Und das solange es ein Item namens "Received" gibt.
Hier der Code:
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim tempdoc As NotesDocument
Dim item As NotesItem
Dim i As Integer
Set db = session.CurrentDatabase
Set dc = db.UnprocessedDocuments
Set doc = dc.GetFirstDocument
Set tempdoc = db.CreateDocument
Call doc.CopyAllItems(tempdoc,False)
i = 1
Forall feld In doc.Items
If feld.Name = "Received" Then
Call tempdoc.ReplaceItemValue("Received_" & Cstr(i), tempdoc.Received(0))
Set item = tempdoc.GetFirstItem("Received")
Call item.Remove
i = i + 1
End If
End Forall
For i = 1 To i - 1
Print tempdoc.GetItemValue("Received_" & Cstr(i))(0)
Next
Andreas
-
Servus Andreas,
besten Dank für den Tip, ich werde es gleich einmal ausprobieren.
fG Siegi