Autor Thema: Werte mehrerer Items mit gleichem Namen auslesen  (Gelesen 1692 mal)

Offline lrzwkle

  • Frischling
  • *
  • Beiträge: 34
  • Geschlecht: Männlich
  • wer früher stirbt ist länger tot
Werte mehrerer Items mit gleichem Namen auslesen
« 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
Systeme:
Notes 4.6 bis R5.05 und Domino 4.6.7 bis R5.07a
Ca. 5000 User auf ca. 300 Servern (bin aber gottseidank kein Administrator ;-) )

Glombi

  • Gast
Re:Werte mehrerer Items mit gleichem Namen auslesen
« Antwort #1 am: 19.05.04 - 15:35:26 »
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

Offline lrzwkle

  • Frischling
  • *
  • Beiträge: 34
  • Geschlecht: Männlich
  • wer früher stirbt ist länger tot
Re:Werte mehrerer Items mit gleichem Namen auslesen
« Antwort #2 am: 19.05.04 - 16:14:36 »
Servus Andreas,

besten Dank für den Tip, ich werde es gleich einmal ausprobieren.

fG Siegi
Systeme:
Notes 4.6 bis R5.05 und Domino 4.6.7 bis R5.07a
Ca. 5000 User auf ca. 300 Servern (bin aber gottseidank kein Administrator ;-) )

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz