Domino 9 und frühere Versionen > Entwicklung
Dokumentenexport an Word
tuxie:
Hallo,
ich habe mal wieder ein Problemchen,
und zwar hat mein Chef jetzt ein wunsch, wo ich absolut nicht weiß wie ich diesen Realisieren soll.
Ich habe eine Newsletterdatenk erstellt in der ich
Hauptdokumente und Antwortdokumente habe
Hauptdokument
Antwortdokument
Antwortdokument
Newsletter
Rubrik
Beiträge
Jetzt möchte mein Chef einen ganzen Newsletter Markieren und durche einen Tastendruck soll dieser Newsletter mit Allen Antwortdokumenten als Worddokument exportiert werden. Da ich (leider) mit LN Script auf Kriegsfuß stehe weiß ich nicht wie ich das Relaisieren kann.
Im Hauptdokument habe ich folgende Felder die übergeben werden müssen.
Jahrgang
Ausgabe
Nummer
Im darunterliegenden Antwortdokument (Rubrik)
Habe ich nur die Rubrik die Übergeben werden soll
Rubrik
Im Antwortdokument auf die Rubrik sind folgende Felder enthalten.
Ueberschrift
Text
Kann mir bitte jemand helfen ich weiß echt nicht mehr wie ich das Anstellen soll
Tschau Ingo
MartinG:
Schau mal per Forumsuche nach Word Export...
In der Sandbox hat es auch diverse dieser Scripte - wenn Du dann konkret ein Problem hast dann poste doch nochmal hier...
http://www-10.lotus.com/ldd/sandbox.nsf
Gruss
Martin
tuxie:
Hallo,
das habe ich bereits gedahn, ich habe auch schon eine Klasse die ich hier im Forum gefunden habe versucht einzubinden, ich scheidere aber daran die Antwortdokumente mit einzubeziehen.
TSchau Ingo
Axel:
Hi,
ich hab mal auf die Schnelle aus dem Kopf was zusammengestrickt. Pack den Code in die entsprechenden Abschnitte eines Agenten. Das Ganze basiert auf der Klasse, die du im Forum gefunden hast. Zur Sicherheit findest du die Klasse auch hier: http://www.free.dominoserver.de/computer/noteslibrary.nsf/d2d59a3d7fc73a2bc1256a6900638352/331dd66d2239a1b2c1256dc50038f49e!OpenDocument
Ich hoffe der Code ist einigermaßen vollständig. Ich habe ihn nicht getestet. Aber eigentlich sollte es so funktionieren. Die Lösung ist ein rekursiver Lauf durch alle Antwortdokumente.
--- Zitat ---(Options)
Use "libWord"
(Declarations)
Dim cWord As cWord
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim strVorlage As String
strVorlage = "c:\Temp\Vorlage.dot"
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
Set doc = collection.GetFirstDocument 'Erstes markiertes Dokument
'Neue Instanz der Klasse cWord
Set cWord = New cWord
'Neues Dokument auf Basis der Vorlage erstellen. Dot muß nicht im Vorlagenverzeichnis liegen
Call cWord.CreateNewDoc(strVorlage)
'Einfügen der Daten aus dem Hauptdokument
Call cWord.Insert(doc.Jahrgang(0))
Call cWord.Insert(Ausgabe(0))
Call cWord.Insert(Nummer(0))
Call BearbeiteAntworten(doc)
Call cWord.ActivateWord ' Word in den Vordergrund
Delete cWord
End Sub
Sub BearbeiteAntworten(doc)
Dim responses As NotesDocumentCollection
Dim tmpDoc as NotesDocument
Set responses = doc.Responses 'Alle Antworten in eine Collection einfügen
Set tmpdoc = responses.GetFirstDocument
While Not (tmpDoc Is Nothing)
If tmpDoc.Form(0) = "Antwort" 'Prüfung um welche Art von Antwort-Doc es sich handelt
'Wenn Antwort auf Hauptdokument
Call cWord.Insert(tmpdoc.Rubrik(0))
Else
'Wenn Antwort auf Antwort
Call cWord.Insert(tmpdoc.Ueberschrift(0))
Call cWord.Insert(tmpdoc.Text(0))
End If
Call BearbeiteAntworten(tmpdoc) 'Rekursiver Aufruf
Set tmpDoc = responses.GetNextDocument(tmpDoc)
Wend
End Sub
--- Ende Zitat ---
Hier If tmpDoc.Form(0) = "Antwort" musst du an deine Maskennamen anpassen.
Schöne Ostern
Axel
TMC:
Gute (Oster-)Antwort - Axel.
Habe Dein Script mal angesehen (aber auch nicht getestet), aber genau so sollte es laufen :D
Rekursiver Aufruf ist hier exakt die Lösung, um auch Antwort zu Antwort zu Antwort etc. zu erschlagen.
Happy Easter
Matthias
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln