Domino 9 und frühere Versionen > Entwicklung

Dokumentenexport an Word

(1/6) > >>

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