Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: mgr am 09.12.03 - 09:29:43
-
Hallo,
ich habe eine DB mit Dokumenten, die Word-Anhänge haben und eine Word-Vorlage mit einem Makro (überprüft Dokument und erzeugt RTF-Datei). Ich brauche einen Lotus Script Agenten, der dafür sorgt, dass aus dem Word-Anhang durch das Makro eine RTF-Datei erzeugt wird und im File System abgelegt wird.
Vielen Dank im Voraus.
-
Hi,
ich würde es über die OLE-Auomation machen. Als erstes musst du den Anhang lösen, dann gibt es, wenn die Dokumente diese Makro beinhalten zwei Wege.
Du kannst zum einen das Makro direkt starten.
Hier findest du ein Beispiel http://www.free.dominoserver.de/computer/noteslibrary.nsf/d2d59a3d7fc73a2bc1256a6900638352/331dd66d2239a1b2c1256dc50038f49e!OpenDocument (http://www.free.dominoserver.de/computer/noteslibrary.nsf/d2d59a3d7fc73a2bc1256a6900638352/331dd66d2239a1b2c1256dc50038f49e!OpenDocument)
Die zweite Möglichkeit wäre, du nimmst den Code aus dem Makro und übernimmst ihn in den Agenten. Allerdings sind da einige Anpassungen notwendig.
Axel
-
Habe in der Klasse cWord nur Methode "CreateNewDoc" gefunden.
Wie öffne ich ein Dokument aus dem File System?
Danke!
-
Hi,
zum Öffnen eines bestehenden Dokumentes gibt es die Methode OpenDoc.
Beisp.:
..
Dim oWord As cWord
...
Set oWord = New cWord 'Erstellen eines OLE-Objects
Call oWord.OpenDoc("C:\Temp\Dokument.doc")
...
Axel
-
Danke!
Und noch eine Frage: wie hänge ich die entsprechende Vorlage an?
-
Hi,
wo willst du die Vorlage anhängen, in ein RTF-Feld oder ein Dokument mit der Vorlage verbinden ?
Axel
-
Das sieht so aus:
Dim cWord As cWord
Dim strVorlage As String
Dim strDoc As String
strVorlage = "c:\vorlage.dot"
strDoc=“c:\dokument.doc“
. . .
Call o.ExtractFile(strDoc) ' Löse Anhang ins File System
Set cWord = New cWord
Call cWord.OpenDoc(strDoc)
Call cWord.RunMacro ("Makro1") ??????
Delete cWord
Wie mache ich klar, dass Makro1 in vorlage.dot hinterlegt ist?
-
Nach dem OpenDoc musst Du die Vorlage zuordnen, dafür gibt es in Word eine Methode oder Eigenschaft, weiss aber grad nicht, wie sie heisst. Aber wenn Du das von Hand machst und das in einem Macro mitschreibst, siehst Du das sofort.
-
Hi,
du musst in die Klasse eine neue Methode einfügen.
Kopiere bitte diesen Code in die Script-Bibliothek libWord
Sub VorlageVerbinden(strVorlage As String)
With objWord.ActiveDocument
.UpdateStylesOnOpen = True
.AttachedTemplate = CStr(strVorlage)
End With 'With objWord.ActiveDocument
End Sub
Dein Agent muss dann so aussehen:
Dim cWord As cWord
Dim strVorlage As String
Dim strDoc As String
strVorlage = "c:\vorlage.dot"
strDoc=“c:\dokument.doc“
. . .
Call o.ExtractFile(strDoc) ' Löse Anhang ins File System
Set cWord = New cWord
Call cWord.OpenDoc(strDoc)
Call oWord.VorlageVerbinden(strVorlage)
Call cWord.RunMacro ("Makro1") ???
Delete cWord
Ich hab's nicht getestet, aber ich hoffe es funktioniert.
Axel
-
Vielen Dank, es hat geklappt!