Domino 9 und frühere Versionen > ND6: Entwicklung
Anhang über Inbox öffnen oder speichern
(1/1)
cyan79:
Hallo zusammen, ich habe ein Problem. Ich habe ein Script verfasst, welches ich in der Mail-DB in den Ordern Eingang als Aktion eingebunden habe. Nun bekomme ich bei folgender Zeile eine Fehlermeldung, wenn das Dokument einen Anhang enthält:
==> If rtitem.EmbeddedObjects = "" Then ==> Type Mismatch
Hier das komplette Script
Sub Click(Source As Button)
Dim w As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim view As NotesUIView
Dim rtitem As NotesRichTextItem
Set view = w.CurrentView
Set dc = view.Documents
If dc.Count = 0 Then
Messagebox("Bitte wählen Sie ein Dokument aus, in dem Sie es im Auswahlbereich markieren!")
Elseif dc.Count > 0 Then
Set doc = dc.GetFirstDocument
Set rtitem = doc.GetFirstItem( "Body" )
Set rto = rtitem.EmbeddedObjects
If ( rtitem.Type = RICHTEXT ) Then
If rtitem.EmbeddedObjects = "" Then
Messagebox("Das ausgewählte Dokument enthält keinen Anhang!")
Else
Forall o In rtitem.EmbeddedObjects
Messagebox( o.Name )
End Forall
End If
End If
End If
End Sub
Für eure Hilfe wäre ich sehr dankbar.
m3:
Die Designer-Hilfe ist Dein Freund!
Das EmbeddedObjects property liefert, wie Du in der Hilfe nachlesen kannst ein Array of NotesEmbeddedObject objects zurück. Und ein Array kann mal wohl kaum mit einem String ("") vergleichen, oder? Und wenn in dem Array Objekte und keine Strings gespeichert werden, dann noch viel weniger, oder?
Wenn Du wissen wisslt, ob ein Array leer ist, würde ich eher UBound verwenden.
klaussal:
Das habe ich hier gefunden (ohne Gewähr):
--- Code: ---Set doc = collection.GetFirstDocument
While Not (doc Is Nothing)
Set rtitem = doc.GetFirstItem( "Body" )
If ( rtitem.Type = RICHTEXT ) Then
If Isarray( rtitem.embeddedObjects) Then
Forall o In rtitem.EmbeddedObjects
Call o.Remove
Call doc.Save( False, True )
End Forall
Else
Msgbox "is nicht"
End If
End If
Set doc = collection.GetNextDocument(doc)
Wend
Msgbox "Anhang / Anhänge gelöscht"
End If
End Sub
--- Ende Code ---
evtl auch mit:
flag = notesDocument.HasEmbedded ?
cyan79:
@Klauss
Danke für den Typ mit HasEmbedded. Hat super funktioniert. Hier jetzt der fertige Code. Danke nochmal.
Sub Click(Source As Button)
Dim w As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim view As NotesUIView
Dim rtitem As NotesRichTextItem
'o.Type = EMBED_ATTACHMENT
Set view = w.CurrentView
Set dc = view.Documents
If dc.Count = 0 Then
Messagebox("Bitte wählen Sie ein Dokument aus, in dem Sie es im Auswahlbereich markieren!")
Elseif dc.Count > 0 Then
Set doc = dc.GetFirstDocument
If doc.HasEmbedded Then
Set rtitem = doc.GetFirstItem( "Body" )
If ( rtitem.Type = RICHTEXT ) Then
Forall o In rtitem.EmbeddedObjects
Messagebox( o.Name )
End Forall
End If
Else
Messagebox("Das ausgewählte Dokument enthält keinen Anhang!")
End If
End If
End Sub
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln