Domino 9 und frühere Versionen > Entwicklung

Export von Dokumentfeldern nach MS-Word

(1/2) > >>

Alirion:
Hallo zusammen,

folgendes Problem:

Aus einem Dokument heraus sollen Feldinhalte in eine bekannte Wordvorlage exportiert werden. In der Wordvorlage existieren Textmarken/Bookmarks, die die entsprechenden Feldinhalte auch aufnehmen. Bei allen Feldern funktioniert alles wie gewünscht, jedoch besteht eine Ausnahme:

Bei einem Richtextfeld sind die Inhalte gemischt. Es gibt Bilder und Text (formatiert durch Benutzer). Bilder und Text werden eventuell durch Tastenkürzel aus anderen Applikationen in das RTFeld hineinkopiert. Bei der Übergabe an Word habe ich jetzt das Problem, das der Inhalt der Textmarke entweder nur Text (Übergabe durch -> item.Text) ist.

Die Ausgabe soll aber genauso entsprechen, wie im Notesdokument dargestellt.

Variante, die Bilder vom Text zu trennen ist nicht gewünscht.

Bin für jeden Rat dankbar.

ata:
... wenn sich das in Notes im Frontend abspielt, dann hätte ich eine Idee dies über den Zwischenspeicher zu lösen - im Backend habe ich gerade keine Idee...

... in Word hast du die Möglichkeit den Inhalt der Textmarke zu befüllen., oder aber zur Textmarke navigieren und dort dann zum Beispiel den Zwischenspeicher per Paste einzutragen...

ata

Alirion:
danke erstmal, für die superschnelle Antwort.

Ich stehe gerade etwas auf der Leitung.

Könntest Du mir das bitte etwas genauer erklären?

ata:
... wen du mit Word-Textmarken arbeitest, dann sind das ja WORD-Objekte. Du kannst mit *GoTo* an eine Textmarke navigieren und über das Objekt *Zwischenspeicher* an dieser Stelle pasten - das ist der eine Weg...

... der andere wiest dem Textmarken-Inhalt einen neuen Wert zu...

Immer noch unverständlich?

ata

Alirion:
Ehrlich gesagt, ja!

Mein Vorgehen ist bisher, das ich in der Wordvorlage die entsprechenden Textmarken erzeugt habe.

Meine Situation:

"
Dim Word As Variant
Dim Letter As Variant
...
Set Word = CreateObject("Word.Application")
Set Letter = Word.documents.Add("Vorlage.doc")
Set Range = Letter.Bookmarks(bookmark).Range
"
Mit einem LotusScript Code ermittle ich vorsichtshalber, ob die "bookmark" vorhanden ist. Danach hole ich mir das item aus dem backend document. Sind beide, bookmark und item) vorhanden, dann gebe ich die Anweisung "Letter.Range.Text = item.text". Klar, das das bei RTFeldern ein Problem ist, da er die Textelemente aus dem Fels holt (leider auch unformatiert!) und nur diese in die bookmark schreibt.

Auf diese Weise benötige ich keine GoTo Routine für die bookmarks, sondern spreche sie direkt an.

Anschließend aktiviere ich Word

Bisher ist mir unklar, wie ich den Zwischenspeicher füllen und abrufen soll.

Solltest Du eine Variante haben, die von meiner abweicht, wäre ich Dir dankbar, wenn Du sie mir als Code (vielleicht?) zukommen lassen könntest.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln