Das Notes Forum
Domino 9 und frühere Versionen => ND8: Administration & Userprobleme => Thema gestartet von: Matzemalzbier am 24.10.15 - 11:29:27
-
Liebes Forum
Mittels VBA wird eine Excel Arbeitsmappe als PDF Konvertiert und als Anhang an Lotus Notes als neues Memo übergeben.
Nun besteht das Problem in der Art wie das Dokument in Notes Angehängt/Eingebettet wird.
Mein Wunsch ist, das das Dokument eingebettet wird – Also so, als würde man ein Dokument mittels Drag&Drop „anhängen“
Die Methode „embedobject“ funktioniert leider nur in der Form das das Dokument als Anhang eingefügt wird.
Hier ein Auszug aus VBA:
Case "Email-PDF"
'Erzeugt ein PDF Dokument welches nur den Druckbereich enthält
DateinameOhneEndung = Strings.Left(Mappe, Strings.Len(Mappe) - 5)
Workbooks(Mappe).ExportAsFixedFormat Type:=xlTypePDF, Filename:="H:\" & DateinameOhneEndung & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=False
'Das PDF-Dokument wird an Lotus Notes übergeben. Inkl. Zieladresse, Betreff, Body und Anhang
Dim UserName As String
Dim MailDbName As String
Dim Recipient As Variant
Dim Attachment1 As String
Dim Maildb As Object
Dim MailDoc As Object
Dim AttachME As Object
Dim Session As Object
Dim EmbedObj1 As Object
With Application
'Öffnet ggf Notes und definiert die Variablen
Set Session = CreateObject("Notes.NotesSession")
UserName = Session.UserName
MailDbName = Workbooks("Einsatzplanfunktionen.xlam").Sheets("Einstellungen").Range("F12").Text
Set Maildb = Session.GetDatabase("", MailDbName)
If Maildb.IsOpen = True Then
Else
Maildb.OPENMAIL
End If
'Erstellt ein neues Email-Dokument
Set MailDoc = Maildb.CREATEDOCUMENT
'Übergibt Zieladresse und Betreff
Recipient = Verteilerliste.Cells(ActiveCell.Row, 10).Text
MailDoc.SendTo = Recipient
Subject = DateinameOhneEndung
MailDoc.Subject = Subject
'Fügt Dateianhang hinzu
Attachment1 = "H:\" & DateinameOhneEndung & ".pdf"
Set AttachME = MailDoc.CREATERICHTEXTITEM("attachment1")
Set EmbedObj1 = AttachME.embedobject(1454, "attachment1", Attachment1, "")
'Zur weiteren Bearbeitung der Email wird diese nicht versendet und hiemit sichtbar gemacht
Set workspace = CreateObject("Notes.NotesUIWorkspace")
Call workspace.EDITDOCUMENT(True, MailDoc).GOTOFIELD("Body")
'Wechselt zu Lotus Notes
AppActivate "Lotus Notes"
'Löscht die Erstellte Anhang-Datei und entleert die Variablen
Kill Attachment1
Set Maildb = Nothing
Set MailDoc = Nothing
Set AttachME = Nothing
Set Session = Nothing
Set EmbedObj1 = Nothing
Case Else
Mit der Medthode embedobject(1453... hatte ich auch schon versuche unternommen - leider Erfolglos
-
Was genau beabsichtigst Du? Möchtest Du ein Attachment oder ein Object in das RichTextItem einfügen?
Mit der Medthode embedobject(1453... hatte ich auch schon versuche unternommen - leider Erfolglos
Wenn Du ein Object einbetten möchtest, dann wäre 1453 (EMBED_OBJECT) genau die richtige Methode
Mit welchen Parametern genau hast Du das dann aufgerufen.
Wenn Du allerdings ein Attachment einfügen möchtest, dann ist 1454 (EMBED_ATTACHMENT) der richtige Type-Parameter. Bei 1454 muss aber der Class-Parameter (bei Dir >"attachment1"< ) leer sein.
hth
Thomas
-
Hallo Thomas.
Ich möchte gerne ein eingebettetes Dokument. Also verwende ich...
Set EmbedObj1 = AttachME.embedobject(1453, ....
Nun habe ich aus der Notes Hilfe, die diese Methode beschreibt, herausgelesen,
das die Methode vier Parameter zugewiesen bekommen kann.
type%, class$, source$, [ name$ ] die letzte ist Optional.
Dann sollte der Code doch so aussehen...
Set EmbedObj1 = AttachME.embedobject(1453, "", Attachment1, "")
Laut der Eklärung:
Zitat Anfang
source$
String.
If you are using EMBED_OBJECT and want to create an embedded object from a file, use this parameter to specify the name of the file, and specify an empty string ("") for class$.
Zitat Ende
Leider wird im Memo keine Datei eingebettet wenn ich das mit Type 1453 mache.
Wo liegt der Fehler?
Die Hilfe beschreibt die Methode aus Lotus 7 wir verwenden 8.5 - Sollte doch aber gleich geblieben sein oder?
-
Dein Fehler ist hier:
Set AttachME = MailDoc.CREATERICHTEXTITEM("attachment1")
Du erzeugst ein RichtextItem "attachment1", das nicht in der Maske "Memo" enthalten ist. Notes erkennt den Dateianhang trotzdem und zeigt ihn dann am Ende des Dokumentes an.
Du möchtest aber, dass der Anhang in das Feld eingefügt wird, in den man auch den Text der Mails schreibt. Dieses Feld in der Maske "Memo" heißt "Body", folglich musst Du den Anhang auch in das Item Body setzen.
Schreibe anstatt der o.g. Zeile
Set AttachME = MailDoc.CREATERICHTEXTITEM("Body")
EDIT: Übrigens, das, was Du willst, ist Anhängen, Einbetten ist etwas anderes. Beim Einbetten wird z.B. ein Bereich aus Excel in ein Notesdokument so eingebettet, dass in dem Dokument Excel läuft, so dass man direkt im geöffneten Dokument die Tabelle ausfüllen kann.
Set EmbedObj1 = AttachME.embedobject(1454, "", Attachment1, "") wäre also der richtige Code
EDIT2: Du hättest das auch in der Hilfe von Notes 4 nachschauen können, da war das auch schon so ;). Das ist ein riesengroßer Vorteil von Notes, dass dort nicht von Version zu Version die Befehle um- oder weggeworfen werden.
-
Moin Peter.
Mit
Set AttachME = MailDoc.CREATERICHTEXTITEM("Body")
Set EmbedObj1 = AttachME.embedobject(1454, "Body", Attachment1, "")
funktioniert es jetzt wie gewünscht!
Herzlichen Dank