Autor Thema: Anhang über Inbox öffnen oder speichern  (Gelesen 2227 mal)

Offline cyan79

  • Frischling
  • *
  • Beiträge: 13
  • Ich liebe dieses Forum!
Anhang über Inbox öffnen oder speichern
« am: 19.05.06 - 11:52:17 »
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.

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Anhang über Inbox öffnen oder speichern
« Antwort #1 am: 19.05.06 - 11:58:00 »
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.
« Letzte Änderung: 19.05.06 - 12:00:17 von m3 »
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

klaussal

  • Gast
Re: Anhang über Inbox öffnen oder speichern
« Antwort #2 am: 19.05.06 - 12:05:21 »
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

evtl auch mit:
flag = notesDocument.HasEmbedded ?

Offline cyan79

  • Frischling
  • *
  • Beiträge: 13
  • Ich liebe dieses Forum!
Re: Anhang über Inbox öffnen oder speichern
« Antwort #3 am: 19.05.06 - 12:12:36 »
@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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz