Das geht recht einfach, wenn Dein Dokument, in das Du einfügen willst, zum Bearbeiten geöffnet ist. Dann kannst Du ganz einfach über die (nicht dokumentierte) Funktion "NotesUIDocument.ImportItem" gehen (verwendet im InsertSignature- Code des Mailtemplater, man kann also davon ausgehen, dass das Funktioniert. Hier ein Auszug aus der CoreEmailClasses- ScriptLib:
Call uiDoc.ImportItem(profileDoc, "Signature_Rich")
Musst nur schauen, dass Dein Cursor per uiDoc.GotoField() im Richtext- Feld steht...
Thorsten, hier irrst du, Reopen geht auch ohne speichern, in dem man zuerst das Dokument neu öffnet und dann das alte schließt.
Ich skizziere mal die Vorgehensweise:
' Globale Variablen
Set myUiDoc = .... ' Dies ist das gerade geöffnete UI-Document und muss z.B. im PostOpen der Maske gesetzt werden, evtl geht auch ws.currentDocument
Set myBackendDoc = myUiDoc.Document ' das zugehörige BackendDoc
function reopen()
Call myUIDoc.Refresh(True) ' Update richtext aus UI ins backend
' An dieser Stelle kann myBackendDoc verändert werden (auch Richtext)
Set oldUiDoc = myUiDoc
Set myUiDoc = ws.editDocument(true, myBackendDoc) ' wir öffnen das aktuelle Backend-Doc nochmals
set myBackendDoc = myUiDoc.document ' und holen uns das BackendDoc vom UIDoc (dies ist zwar das gleiche Dokument aber ein neues Objekt. s.u.!)
' Altes UIDoc schließen:
oldUiDoc.document.SaveOptions = "0" ' Wichtig oldUIDoc.document != myBackendDocument (auch wenn es die gleiche UNID hat)
call oldUiDoc.close(true)
end function
@Alexander: Wichtig für dich ist vielleicht noch, dass die Methode ImportItem erst ab Notes 8.5 (evtl schon ab 8.0) zur Verfügung steht.
Gruß
Roland