Lotus Notes / Domino Sonstiges > OLE/COM-Programmierung

aus VBA drucken

(1/2) > >>

oberh:
Guten Tag zusammen!

Ich versende aus VBA eine EMAIL mit folgendem Code, der auch funktioniert:


--- Code: ---Public Function NotesMailNewDraft(strSendTo As Variant, strCopyTo As Variant, strSubject As Variant, strText As Variant, _
       strcc As Variant, strbcc As Variant, Mailanhang As String, boStatus As Boolean)

'   # Late-Binding
    Dim objNotesSession As Object, objNotesDB As Object, objNotesMailDoc As Object

    Dim SendItem, NCopyItem, BlindCopyToItem, i As Integer, rtitem
   
'   # Late-Binding
    Set objNotesSession = GetObject("", "Notes.Notessession")
    Set objNotesDB = objNotesSession.GetDatabase("", "")
   
    Call objNotesDB.OPENMAIL
   
    Set objNotesMailDoc = objNotesDB.CREATEDOCUMENT
    objNotesMailDoc.Form = "Memo"
    Call objNotesMailDoc.Save(True, False)
   
    Set SendItem = objNotesMailDoc.APPENDITEMVALUE("SendTo", "")
    Set NCopyItem = objNotesMailDoc.APPENDITEMVALUE("CopyTo", "")
    Set BlindCopyToItem = objNotesMailDoc.APPENDITEMVALUE("BlindCopyTo", "")
   
    objNotesMailDoc.SendTo = strSendTo
    objNotesMailDoc.CopyTo = strCopyTo
    objNotesMailDoc.Subject = strSubject
   
    Set rtitem = objNotesMailDoc.CreateRichTextItem("Body")
    objNotesMailDoc.Body = strText

    Call objNotesMailDoc.Save(True, False)
    objNotesMailDoc.RemoveItem ("DeliveredDate")
    Call objNotesMailDoc.Save(True, False)

    '''''''''''''' Dateianhang'''''''''''''''''
    Dim xy
    Dim EmbeddedObject As Object
    Dim mailanhang2, s As Variant
   
    If Right$(Mailanhang, 1) = ";" Then
        Mailanhang = Left$(Mailanhang, Len(Mailanhang) - 1)
    End If
   
    Const cdelim$ = ";"
    Const embed_ATT = 1454

    s = Split(Mailanhang, ";")

    For xy = LBound(s) To UBound(s)
        mailanhang2 = s(xy)
        Set rtitem = objNotesMailDoc.CreateRichTextItem(mailanhang2)
        Set EmbeddedObject = rtitem.EmbedObject(embed_ATT, "", mailanhang2, mailanhang2)
    Next xy
    ''''''''''''''''''''''''''''''''''''''''''

    Call objNotesMailDoc.Save(True, False)
   
    Select Case boStatus
        Case True
            objNotesMailDoc.PostedDate = Now()
            Call objNotesMailDoc.SEND(True, False)
           
            '# Hier eventuell noch ein PDF der Mail erstellen
'####################################################################
'####################################################################
'            MailPDFerstellen objNotesDB, objNotesSession, objNotesMailDoc

'####################################################################
            objNotesMailDoc.Remove (True)
            MsgBox "Die EMail wurde gesendet!", vbInformation, "Hinweis"
        Case False
            MsgBox "Die EMail wurde erfolgreich im Ordner Entwürfe erstellt!", vbInformation, "Hinweis"
    End Select
    Call objNotesSession.Close: Set objNotesSession = Nothing
    Set rtitem = Nothing
    Set EmbeddedObject = Nothing
    Set objNotesMailDoc = Nothing
    Set SendItem = Nothing
    Set NCopyItem = Nothing
    Set BlindCopyToItem = Nothing

    Set objNotesDB = Nothing

End Function
--- Ende Code ---

Nun habe ich ein Problem mit dem Objektmodell.
Die .Print Methode existiert nur zum NotesUIDocument.

Mit der Zeile

--- Code: ---'MailPDFerstellen objNotesDB, objNotesSession, objNotesMailDoc

-->
'Public Sub MailPDFerstellen(ByVal objNotesDB As Object, ByVal objNotesSession As Object, ByVal objNotesMailDoc As Object)

--- Ende Code ---
wollte ich eine Prozedur aufrufen, die u.a. diese Zeile aufrufen soll:

--- Code: ---objNotesMailDoc.Print (1)
--- Ende Code ---

Da das Objekt die Methode nicht unterstützt, kracht es hier.

Wie muss der obige Code abgeändert werden, damit dort ein NotesUIDocument erstellt wird?

Ich bedanke mich im Voraus
Olaf

ata:
... NotesUIDocument geht nicht per COM-Programmierung

Toni

oberh:
Vielen Dank Toni.

Das ist zwar nicht das, was ich hören wollte ...  ;D

Dann werde ich mir wohl etwas anderes überlegen müssen.

Viele Grüße
Olaf

Mir ist da gerade noch eine Idee gekommen:
Könnte man denn von VBA aus einen Agenten mit entsprechendem Code erstellen, ihn ausführen und wieder löschen?
Geht das überhaupt, wenn man keinen Designer Client auf seinem Rechner hat?

ata:
... ne leider auch nicht - du brauchst einen Trigger für Frontend in LotusNotes - und der lässt sich per COM nicht nachbilden...

Toni

ata:
... du könntest per VBA aber den Inhalt in ein Word-Doc schieben, dort kannst du dann ausdrucken...

Toni

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln