Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: ewald am 19.10.06 - 21:01:36

Titel: Feldinhalt nach Word kopieren
Beitrag von: ewald am 19.10.06 - 21:01:36
Hallo zusammen,

ist es möglich den Inhalt eines RTF's per Button (Script) in ein Word Dokument zu kopieren? Wenn ja, wie geht das?

Danke und Gruß
Titel: Re: Feldinhalt nach Word kopieren
Beitrag von: botschi am 20.10.06 - 10:45:41
Was hast Du denn vor?
Es gibt hier einen Agenten im Forum, der aus kompletten Mails ein Word-Dok erzeugt. Vielleicht kannst Du den ändern. Nutz mal die Suche.
Titel: Re: Feldinhalt nach Word kopieren
Beitrag von: Axel am 20.10.06 - 11:56:35
Wenn es um reinen Text geht ist das relativ einfach. Siehe den von botschi erwähnten Agenten.

Geht's um den formatierten Text oder auch um Bilder geht das nur im Frontend, sprich gesamten Inhalt markieren, in die Zwischenablage kopieren und das dann in Word einfügen.


Axel
Titel: Re: Feldinhalt nach Word kopieren
Beitrag von: cgorni am 22.10.06 - 20:15:34
Wenn man ein wenig mit LotusScript experimentieren möchte: hier ist eine Klasse, die ich mal geschrieben habe, mit deren Hilfe man Feldinhalte oder andere Werte and bestimmte Stellen im Word-Dokument schreiben kann.

Auf Word-Seite benutzt man dazu Textmarken (engl. bookmarks).

Hier die Klasse:

http://www.openntf.org/Projects/codebin/codebin.nsf/CodeBySubContributor/140DBC2F3D10E48A862570B300342C7B

Vielleicht hilft auch der LotusScript-Code als Einstieg in das Thema.
Titel: Re: Feldinhalt nach Word kopieren
Beitrag von: Jens* am 26.10.06 - 14:04:15
@cgorni.

Sowas habe ich auch gerade gesucht! Danke! Was mache ich denn wenn ich einen Feldinhalt an Word übermitteln will. ?

Call report.writeTextToBookmark("Bookmark1", Feldname)

geht nicht..

Grüße, Jens
Titel: Re: Feldinhalt nach Word kopieren
Beitrag von: Axel am 26.10.06 - 14:14:38
Was heißt: geht nicht?

Ein paar mehr Infos müssen schon sein.

Fehlermeldung(en)!?

Gibt es die Textmarke Bookmark1 in deinem Word-Dokument?


Axel
Titel: Re: Feldinhalt nach Word kopieren
Beitrag von: Jens* am 26.10.06 - 14:33:56
Ich hätte es besser erklären sollen. Wenn ich den Agenten ändere kommt eine Fehlermeldung:

Create Word Document: Initialze: 12: Type mismatch on GERNERALDESCRIPTION_1

So sieht der Code aus:
Call report.writeTextToBookmark("GeneralDescription", GeneralDescription_1) ' bookmark must exist in word template

Bookmark Name existiert u. "Text" wird auch übergeben.. Hab sicher irgendwas übersehen!

Grüße, Jens

Titel: Re: Feldinhalt nach Word kopieren
Beitrag von: Axel am 26.10.06 - 14:36:48
Was für ein Feldtyp ist denn das Feld GeneralDescription_1 ?


Axel
Titel: Re: Feldinhalt nach Word kopieren
Beitrag von: Jens* am 26.10.06 - 14:38:09
Text !
Titel: Re: Feldinhalt nach Word kopieren
Beitrag von: Axel am 26.10.06 - 14:56:50
Versuch's mal so:

Dim doc As NotesDocument

...

Call report.writeTextToBookmark("GeneralDescription", doc.GeneralDescription_1(0))

....


Axel
Titel: Re: Feldinhalt nach Word kopieren
Beitrag von: Jens* am 26.10.06 - 15:18:00
Dann bekomme ich beim ausführen des Macros den Fehler: Object Variable not set
Jens
Titel: Re: Feldinhalt nach Word kopieren
Beitrag von: Axel am 26.10.06 - 15:35:34
Dann ist mit Sicherheit die Variable doc nicht gesetzt.

Poste mal deinen gesamten Code. Ist das ein Agent oder liegt der Code hinter einem Aktionsbutton? Wird das Teil auf einem Dokument oder einer Ansicht aufgerufen?


Axel
Titel: Re: Feldinhalt nach Word kopieren
Beitrag von: Jens* am 26.10.06 - 15:48:30
So sieht der Agent aus:

Code
Sub Initialize
	Const WORDPATH = "C:\Test.doc"
	
	Dim session As New NotesSession
	Dim db As NotesDatabase
	Dim report As WordReport
	Dim doc As NotesDocument
	
	Set db = session.CurrentDatabase
	Set report = New WordReport (WORDPATH, False) ' false = don't show word
	
'	Messagebox report.getversion()
	Call report.writeTextToBookmark("GeneralDescription", doc.GeneralDescription_1(0)) 
	Call report.setVisibility(True)
	
End Sub

Titel: Re: Feldinhalt nach Word kopieren
Beitrag von: Axel am 26.10.06 - 15:55:17
Alle meine Fragen hast du nicht beantwortet. Mir fehlt die Antwort zu der Frage ob der Code aus einer Ansicht oder einem Dokument heraus ausgeführt wird.

Ich gehe mal von einer Ansicht aus. Dann muss das Ganze so aussehen:

Sub Initialize
   Const WORDPATH = "C:\Test.doc"
   
   Dim session As New NotesSession
   Dim db As NotesDatabase
                Dim collection As NotesDocumentCollection
   Dim report As WordReport
   Dim doc As NotesDocument
   
   Set db = session.CurrentDatabase
   Set report = New WordReport (WORDPATH, False) ' false = don't show word
   
                Set collection = db.UnprocessedDocuments  'Zugriff auf markiertes Dokument
                If collection.Count > 1 Then
                    Messagebox "Es darf nur ein Dokument markiert sein"
                    Exit Sub
                End If

                Set doc = collection.GetFirstDocument

'   Messagebox report.getversion()
   Call report.writeTextToBookmark("GeneralDescription", doc.GeneralDescription_1(0))
   Call report.setVisibility(True)
   
End Sub


So ganz grob sollte das funktionieren.


Axel

Titel: Re: Feldinhalt nach Word kopieren
Beitrag von: Jens* am 26.10.06 - 16:18:47
Oh, da hatte ich zu schnell gelesen. Momentan wird es aus einer Maske erzeugt. Wollte beide Möglichkeiten einbauen!

Dein Code für die Ansicht funktioniert ! Vielen Dank!

Jens
Titel: Re: Feldinhalt nach Word kopieren
Beitrag von: Axel am 26.10.06 - 16:39:40
Für die Ausführung innerhalb der Maske muss das Ganze so aussehen:

Sub Initialize
   Const WORDPATH = "C:\Test.doc"
   
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim report As WordReport
   Dim doc As NotesDocument
   
   Set report = New WordReport (WORDPATH, False) ' false = don't show word

   Set uidoc = workspace.CurrentDocument
   Set doc = uidoc.Document   

'   Messagebox report.getversion()
   Call report.writeTextToBookmark("GeneralDescription", doc.GeneralDescription_1(0))
   Call report.setVisibility(True)
   
End Sub

Axel
Titel: Re: Feldinhalt nach Word kopieren
Beitrag von: Jens* am 07.12.06 - 13:18:11
Hallo,

ich hätte da noch eine Frage. Wenn ich den Code in einer Ansicht aufrufe u. mehrere Einträge markiere. Ist es möglich, dass er mir dann alle markierten Einträge in ein Word Dokument markiert?

So in etwa solls dann aussehen..
Word Dokument:
Dokument 1
Feld A
Feld B
Feld C

Dokument 2
Feld A
Feld B
Feld C

Danke,

Jens
Titel: Re: Feldinhalt nach Word kopieren
Beitrag von: Axel am 07.12.06 - 18:51:22
Klar ist das möglich. Du musst den Code nur entsprechend umbauen. So in der Art, dass du vor der Schleife, in der du die markierten Dokumente beackerst, ein neues Word-Dokument anlegst und alle gewünschten Daten in diese Dokument schreibst.

Ich kenne die Klasse nicht im Detail, so dass ich dir nicht sagen kann wie groß der Aufwand ist.


Axel

Titel: Re: Feldinhalt nach Word kopieren
Beitrag von: Legou am 14.12.06 - 10:53:51
Tach zusammen,

ich hätte da vielleicht noch ne Idee bzw. Lösung für das Problem
NotesToWord mal bei google eingeben dann müßtest du schnell über ne nsf stolpern.
Achtung bei übernehmen der Werte nach Word kann die .nsf nur Txt Felder verarbeiten

MFG
René
Titel: Re: Feldinhalt nach Word kopieren
Beitrag von: Jens* am 15.01.07 - 09:48:49
Hallo,

mittlerweile bin ich mit dem Skript so ganz zufrieden.
Kann man eigentlich Const WORDPATH = "C:\Template.dot" auch in die Datenbank verlagern? Was müßte ich da ändern.

Danke!

Titel: Re: Feldinhalt nach Word kopieren
Beitrag von: Jens* am 08.02.07 - 15:02:25

Achtung bei übernehmen der Werte nach Word kann die .nsf nur Txt Felder verarbeiten


Gibts da evtl. auch ne Lösung, das man auch RichText Felder exportieren kann?