Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: mgr am 09.12.03 - 09:29:43

Titel: Aus dem Word-Anhang RTF-Datei erzeugen
Beitrag 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.

Titel: Re:Aus dem Word-Anhang RTF-Datei erzeugen
Beitrag von: Axel am 09.12.03 - 09:40:47
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
 
Titel: Re:Aus dem Word-Anhang RTF-Datei erzeugen
Beitrag von: mgr am 09.12.03 - 10:59:57
Habe in der Klasse cWord nur Methode "CreateNewDoc" gefunden.
Wie öffne ich ein Dokument aus dem File System?

Danke!
Titel: Re:Aus dem Word-Anhang RTF-Datei erzeugen
Beitrag von: Axel am 09.12.03 - 11:06:16
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
Titel: Re:Aus dem Word-Anhang RTF-Datei erzeugen
Beitrag von: mgr am 09.12.03 - 11:19:20
Danke!

Und noch eine Frage: wie hänge ich die entsprechende Vorlage an?
Titel: Re:Aus dem Word-Anhang RTF-Datei erzeugen
Beitrag von: Axel am 09.12.03 - 11:38:36
Hi,

wo willst du die Vorlage anhängen, in ein RTF-Feld oder ein Dokument mit der Vorlage verbinden ?


Axel

Titel: Re:Aus dem Word-Anhang RTF-Datei erzeugen
Beitrag von: mgr am 09.12.03 - 11:55:41
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?
Titel: Re:Aus dem Word-Anhang RTF-Datei erzeugen
Beitrag von: Semeaphoros am 09.12.03 - 12:05:33
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.
Titel: Re:Aus dem Word-Anhang RTF-Datei erzeugen
Beitrag von: Axel am 09.12.03 - 12:09:18
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
 
Titel: Re:Aus dem Word-Anhang RTF-Datei erzeugen
Beitrag von: mgr am 09.12.03 - 13:34:45
Vielen Dank, es hat geklappt!