Hallo zusammen,
habe da ein kleines Problem:
Ich versuche in Dokumenten gespeicherte Objekte als Datei zu speichern um die Objekte
gegen Anhänge auszutauschen.
Eigentlich stellt das für mich kein Problem dar, doch leider stehen über den Objekten
Beschriftungen. -> Anhang steht nicht mehr unter Beschriftung -> keiner hat eine Ahnung was
welcher Anhang ist!!!
Meine Idee war mit Hilfe eines NotesRichTextNavigators an die Position des Objekts zu
springen das Objekt zu löschen und den Anhang einzuhängen. Dann weiter zum nächsten
Objekt usw.
Leider scheitere ich beim Einsatz des Navigators, da dieser anscheinend nicht richtig
erstellt wurde (bekomme kein Objekt beim Aufruf von GetFirstElement bzw. SetPosition(Objekt)
bringt eine Fehlermeldung das entweder das Objekt oder der Navigator nicht richtig
initialisiert wurde).
Folgenden Code habe ich bisher:
Sub Initialize
Dim s As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim handle As Variant
Dim rtitem As NotesRichTextItem
Dim rtnav As NotesRichTextNavigator
Dim obj As NotesEmbeddedObject
Dim i, j As Integer
Set db = s.CurrentDatabase
Set dc = db.UnprocessedDocuments
For i = 1 To dc.Count
Set doc = dc.GetNthDocument(i)
If doc.HasEmbedded Then
Set rtitem = doc.GetFirstItem("Body")
Set rtnav = rtitem.CreateNavigator
Set obj = rtnav.GetFirstElement(9)
While( Not (obj Is Nothing))
rtnav.SetPosition(obj)
If obj.Type = 1453 Then
Set handle = obj.Activate(True)
If Instr(1, obj.Class, "Word.Document") Then
handle.SaveAs("C:\temp\doc" + Format(j+1,"00") + ".doc")
obj.Remove
Call rtitem.EmbedObject(1454, "", "C:\temp\doc" + Format(j+1,"00") + ".doc")
Elseif Instr(1, obj.Class, "Excel.Sheet") Then
handle.SaveAs("C:\temp\doc" + Format(j+1,"00") + ".xls")
obj.Remove
Call rtitem.EmbedObject(1454, "", "C:\temp\doc" + Format(j+1,"00") + ".xls")
Elseif Instr(1, obj.Class, "AmiProDocument") Then
handle.SaveAs("C:\temp\doc" + Format(j+1,"00") + ".sam")
obj.Remove
Call rtitem.EmbedObject(1454, "", "C:\temp\doc" + Format(j+1,"00") + ".sam")
End If
End If
Set obj = rtnav.GetNextElement
Wend
Call doc.Save(True,False)
End If
Next
End Sub