Domino 9 und frühere Versionen > ND6: Entwicklung

Notes COM

(1/4) > >>

skywook:
Hallo,
habe im Archiv gesucht und ATAs Hilfedatenbank heruntergeladen komme aber leider nicht ganz klar mit dem was ich gefunden habe.

Ich habe ein geöffnetes NotesDoc aus diesem erstelle ich ein Worddokument und übergebe bestimmte Daten (das funktioniert). Nun habe ich in Word einen selbst erstellten Menüpunkt (Speichern in Notes). Bei Klick soll das Worddoc in das im Hintergrund noch geöffnete Notesdoc angehängt werden (in das RichTextFeld Anhang).

Mir fehlt leider der Ansatz wie ich eine Instanz von Word (VBA) auf das geöffnete Notesdoc bekomme um die Datei anzuhängen.

Für einen Tipp wäre ich euch dankbar.

koehlerbv:
An das geöffnete Dokument kommst Du via COM überhaupt nicht heran:
- NotesUI classes unterstützen COM nicht.
- Das Dealing mit rich text items muss daher im Backend von Notes geschehen, was das Schliessen des Docs im Frontend erfordert.

Du musst also einen anderen Gesamtansatz wählen.

Bernhard

y20frank:
Hi, ich weiß nicht, ob dir das unten stehende Script (zumindest als Ansatz) weiterhilft... aus einem NotesDoc wird ein Word-Objekt(Document) erstellt und mit Daten aus dem NotesUIDocument befüllt und diesem dann angehängt...


--- Code: ---Sub Click(Source As Button)
' ###########################################################
' # Mit diesem Script werden Word-Dokumente erstellt und deren Feldern mit den
' # Werten aus den Feldern des NotesUIDocumentes gefüllt.
' # Das Word-Object wird beim Speichern des Dokumentes als EmbedObject
' # angehängt.
' # Eine nachträgliche Änderung des Dokumentes ist durch dieses Script
' # nicht möglich!
' ###########################################################

' ----- Deklarationen
Dim session As New NotesSession
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument
Dim todaydate As New notesdatetime("Today")
Dim word As Variant
Dim wordoc As Variant
Dim zimmer As String

' ----- Vordefinierte Variablen (oder aus Feldern des Front-End-Documents gelesene Werte)
todaysdate = todaydate.localtime
Zimmer = uidoc.FieldGetText("Zimmer")
Auskunft = uidoc.FieldGetText("Auskunft")
Fon = uidoc.FieldGetText("Fon")
Fax = uidoc.FieldGetText("Fax")
IhrZeichen = uidoc.FieldGetText("IhrZeichen")
IhreNachrichtVom = uidoc.FieldGetText("IhreNachrichtVom")
MeinZeichen = uidoc.FieldGetText("MeinZeichen")
Datum = uidoc.FieldGetText("Datum")

' ----- Word-Object erstellen
Set word = CreateObject("Word.Application")
' ----- Erstellt neues Dokument auf der Basis der hier eingegebenen Word-Vorlage
Call word.documents.add("Return and Uplift 2.dot")
' ----- Handle für das aktive Word-Dokument
Set worddoc = word.activedocument

' ----- Felder im Word-Dokument füllen.
worddoc.FormFields(1).result = Zimmer
worddoc.FormFields(2).result = Auskunft
worddoc.FormFields(3).result = Fon
worddoc.FormFields(4).result = Fax
worddoc.FormFields(5).result = IhrZeichen
worddoc.FormFields(6).result = IhreNachrichtVom
worddoc.FormFields(7).result = MeinZeichen
worddoc.FormFields(8).result = Datum

filename$ = "c:\\temp\\notesword.doc"
worddoc.saveas(filename$) ' --- Word-Dokument speichern
word.visible = True        ' --- Word nicht anzeigen
word.quit             ' --- Word schließen

' ----- Datei (WordDoc) anhängen
Dim RTItem As NotesRichTextItem
Dim doc As NotesDocument
Set doc = uidoc.Document
Set RTItem = New NotesRichTextItem(doc, "Body")  ' --- Anhang (erzeugte Datei) einfügen!
Call RTItem.EmbedObject(EMBED_ATTACHMENT, "", filename$)
End Sub

--- Ende Code ---

HTH

koehlerbv:
Aus einer praktisch eingesetzten Anwendung stammt dieser Code aber nicht, oder? Jeder Aufruf dieser Routine erzeugt ein neues Item "Body", das angehängte Word-Dokument ist erst nach dem Schliessen und erneuten Öffnen des Frontend-Docs sichtbar usw.

Bernhard

skywook:
@Bernhard
@Y20frank
Danke für die Anworten!

Wie komme ich dann im Backend daran.

Das Problem ist das Worddoc wird geöffnet und von Notes mit Daten gefüllt und danach im Word weiter bearbeitet. Dann sollte das Doc wie schon gesagt über einen Button in das geöffnete bzw. auch übers Backend in das Notesdoc eingefügt werden.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln