Autor Thema: aus VBA drucken  (Gelesen 9355 mal)

Offline oberh

  • Frischling
  • *
  • Beiträge: 4
aus VBA drucken
« am: 13.02.08 - 09:43:41 »
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

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)
wollte ich eine Prozedur aufrufen, die u.a. diese Zeile aufrufen soll:
Code
objNotesMailDoc.Print (1)

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

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: aus VBA drucken
« Antwort #1 am: 13.02.08 - 11:24:33 »
... NotesUIDocument geht nicht per COM-Programmierung

Toni
Grüßle Toni :)

Offline oberh

  • Frischling
  • *
  • Beiträge: 4
Re: aus VBA drucken
« Antwort #2 am: 13.02.08 - 11:31:58 »
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?
« Letzte Änderung: 13.02.08 - 11:41:19 von oberh »

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: aus VBA drucken
« Antwort #3 am: 13.02.08 - 14:59:36 »
... ne leider auch nicht - du brauchst einen Trigger für Frontend in LotusNotes - und der lässt sich per COM nicht nachbilden...

Toni
Grüßle Toni :)

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: aus VBA drucken
« Antwort #4 am: 13.02.08 - 15:02:04 »
... du könntest per VBA aber den Inhalt in ein Word-Doc schieben, dort kannst du dann ausdrucken...

Toni
Grüßle Toni :)

Offline oberh

  • Frischling
  • *
  • Beiträge: 4
Re: aus VBA drucken
« Antwort #5 am: 13.02.08 - 15:03:16 »
Hi!

Hat ich mir schon gedacht. :(

Nochmals danke.

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

Ups: Nachtrag: Ja, genau das hatte ich vor. Danke

Viele Grüße
Olaf

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: aus VBA drucken
« Antwort #6 am: 13.02.08 - 15:09:39 »
... eine andere Alternative zum Printen fällt mir auch nicht ein...

Toni
Grüßle Toni :)

Offline Ralf_M_Petter

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.879
  • Geschlecht: Männlich
  • Jeder ist seines eigenen Glückes Schmied
    • Ralf's Blog
Re: aus VBA drucken
« Antwort #7 am: 13.02.08 - 15:40:59 »
Warum verwendest du nicht statt Com einfach OLE, dann sollte es auch mit den Frontendklassen funktionieren?

Grüße

Ralf

P.S. Einschränkung ist halt, dass es Probleme geben kann wenn der Notesclient blockiert ist durch einen modalen Dialog z.B.

Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.

Offline oberh

  • Frischling
  • *
  • Beiträge: 4
Re: aus VBA drucken
« Antwort #8 am: 13.02.08 - 16:11:48 »
Hi Ralf!

Auch Dir danke.
Ich werde es einfach in einer Worddatei ablegen.

Die Dateien in der Mail werden aus Daten einer Access-DB bestückt.
Da diese Dateien und Daten aber im laufenden Betrieb ständig verändert werden können, wollten wir mit einer PDF-Datei im Moment des Versandes an einen Kostenträger diese Daten und Dateien festhalten.
Da meine Anwendung die Möglichkeit beherbergt, die Mail auch erst im Entwurf abzulegen, wird die o.g. Option auch weiterhin genutzt werden.

Tschüss
Olaf

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz