Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: tuxie am 08.04.04 - 16:51:13

Titel: Dokumentenexport an Word
Beitrag von: tuxie am 08.04.04 - 16:51:13
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

Titel: Re:Dokumentenexport an Word
Beitrag von: MartinG am 08.04.04 - 16:55:02
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
Titel: Re:Dokumentenexport an Word
Beitrag von: tuxie am 08.04.04 - 17:09:48
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
Titel: Re:Dokumentenexport an Word
Beitrag von: Axel am 08.04.04 - 21:39:25
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 (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

Hier If tmpDoc.Form(0) = "Antwort" musst du an deine Maskennamen anpassen.

Schöne Ostern
Axel
Titel: Re:Dokumentenexport an Word
Beitrag von: TMC am 08.04.04 - 21:47:09
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
Titel: Re:Dokumentenexport an Word
Beitrag von: tuxie am 13.04.04 - 12:18:36
Vielen Dank @Axel,

ich werde es gleich ausprobieren, muß ich bei der Wordvorlage irgendetwas beachten Textmarken oder so ?

Tschau Ingo
Titel: Re:Dokumentenexport an Word
Beitrag von: Axel am 13.04.04 - 12:27:46
Hi,

wenn du das Script so einsetzt, nicht. Allerdings erfolgt die Ausgabe in das Worddokument völlig unformatiert. Das Script soll nur zeigen wie es prinzipiell gehen kann.

Wenn das Ganze formatiert werden soll, dann muß man da noch ein bisschen basteln. Das ist dann Fleissarbeit.

Axel

Titel: Re:Dokumentenexport an Word
Beitrag von: tuxie am 13.04.04 - 13:12:40
Hallo,

bei der Zeile mosert er rum

  If tmpDoc.Form(0) = "Antwort" 'Prüfung um welche Art von Antwort-Doc es sich handelt

Hier muß doch der Wert in den Hochkommas geändert werden.
oder?

TSchau Ingo
Titel: Re:Dokumentenexport an Word
Beitrag von: Axel am 13.04.04 - 13:57:26
Hi,

ja. Hier muß der Name der Maske rein, mit der deine Antwortdokumente erstellt werden. Der Name muss in Anführungszeichen stehen.


Axel
 
Titel: Re:Dokumentenexport an Word
Beitrag von: tuxie am 13.04.04 - 14:02:34
und wenn es zwei verschiedene Masken sind?


TSchau Ingo
Titel: Re:Dokumentenexport an Word
Beitrag von: koehlerbv am 13.04.04 - 14:07:22
Dann kommt OR ins Spiel ...
Titel: Re:Dokumentenexport an Word
Beitrag von: Axel am 13.04.04 - 14:13:03
Hi,

yoo, dem ist nichts hinzuzufügen.

If tmpDoc.Form(0) = "Maske1" Or tmpDoc.Form(0) = "Maske2" Then
...


Axel
Titel: Re:Dokumentenexport an Word
Beitrag von: tuxie am 14.04.04 - 09:06:30
Hallo,

danke erst einmal für die Hilfe!!

Ich habe das Script als Agent angelegt, und über die Aktionsleiste rufe ich denn Agent auf.

Es öffnet sich Word und er schreibt mir die Felder des Hauptdokumentes rein und die Antwortdokumente, aber er bringt mir keine Antwortdokumente auf die Antwortdokumente und wie Axel schon gesagt hat ist alles unformatiert.

Woran kann es jetzt liegen das er die Antwortdokumente des Antwortdokumentes nicht ausgegeben wird.

Gut die Formatierung denke icg bekomme ich hin,

TSchau Ingo
Titel: Re:Dokumentenexport an Word
Beitrag von: Axel am 14.04.04 - 09:24:10
Hi,

kannst du mal den Code hier posten?


Axel
Titel: Re:Dokumentenexport an Word
Beitrag von: tuxie am 14.04.04 - 09:46:12
Ich habe den Fehler gefunden, es lag an der If abfrage.

Aber hier tut sich ein ganz anderes Problem auf und dieses Problem nennt dich Richt Text feld. Ich habe in der zweiten Antwortmaske ein Rich Text felder.

Das Problem Formatierung bekomme ich hin.

TSchau Ingo
Titel: Re:Dokumentenexport an Word
Beitrag von: Axel am 14.04.04 - 10:01:58
Hi,

den Text kannst du mit der Methode GetFormattedText aus der Klasse NotesRichtextItem auslesen und nach Word schaufeln, allerdings auch ohne Formatierung. Für Grafiken bzw. einen formatierten Export ist mir im Moment kein Weg bekannt.


Axel
Titel: Re:Dokumentenexport an Word
Beitrag von: tuxie am 14.04.04 - 13:05:25
Mal schauen wie ich das rein bekomme, habe jetzt die Formatierung für die Rubriken, und die Überschriften für die Antwortdokumente fertige, jetzt fehlt mir nur noch der Inhaltstext aus dem RTFeld. Ich habe mir dafür mal die Designerhilfe her genommen aber irgendwie komme ich dann noch nicht so richtig klar

1. Ich muß die Klasse einbinden
2. Ich muß mit der Methode denn Inhalt lesen und dann in eine Variable Speichern
3. Der Inhalt muß an die Methode der Word Klasse übergeben werden.

Soweit denke ich sollte das gehen oder?

TSchau Ingo

P.S.: Ich glaube langsam sehe ich mit LN Script durch  ;D
Titel: Re:Dokumentenexport an Word
Beitrag von: Axel am 14.04.04 - 13:53:29
Hi,

so ähnlich geht's. Ich hab's hier mal beispielhaft eingebunden.


  Dim rtitem As Variant
  Dim plainText As String
...
  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))

      Set rtitem = tmpdoc.GetFirstItem( "Text" )
      If ( rtitem.Type = RICHTEXT ) Then
         plainText = rtitem.GetFormattedText( False, 0 )
      End If
      Call cWord.Insert(plainText)

    End If
    Call BearbeiteAntworten(tmpdoc) 'Rekursiver Aufruf
    Set tmpDoc = responses.GetNextDocument(tmpDoc)
  Wend
...

Axel
Titel: Re:Dokumentenexport an Word
Beitrag von: tuxie am 14.04.04 - 13:54:14
Irgendwie brauche ich doch nochmal hilfe,

was muß ich jetzt alles noch aufnehmen?
um die Methode GetFormattedText zu benutzen und wie stelle ich es jetzt wirklich an.


Mhh ich glaub es ist besser ich genieße das schöne Wetter.

Ich sehe nämlich vor laute Wald keine Bäume mehr ???

TSchau Ingo
Titel: Re:Dokumentenexport an Word
Beitrag von: Axel am 14.04.04 - 13:58:10
Hi,

schau mal mein voriges Posting.


Axel
Titel: Re:Dokumentenexport an Word
Beitrag von: tuxie am 14.04.04 - 14:04:20
 ;D ;D ;D ;D naja da habe ich gerate geschrieben wo du das abgeschickt hast.

Vielen Dank


Ingo
Titel: Re:Dokumentenexport an Word
Beitrag von: koehlerbv am 14.04.04 - 14:15:59
Ich glaube langsam sehe ich mit LN Script durch

Wollen wir da nicht mal lieber noch zwei, drei Monate warten  ;D

Bernhard

PS: Icch will ja keinem den Mut nehmen, aber das Thema ist komplexer als meist erwartet. Und das hat jetzt auch nichts mit Notes / Domino zu tun ...
Titel: Re:Dokumentenexport an Word
Beitrag von: tuxie am 14.04.04 - 15:07:59
Hallo,

naja ich habe ja nicht gesagt das ich jetzt damit umgehen kann  ;D, nee im ernst du hast Recht, aber aller Anfang ist Schwer. ICh könnte jetztr noch kein Script selbstständig erstellen, aber ein Script nachvollziehen kann ich langsam und das meinte ich damit.

Jetzt funktioniert es auch einwandfrei, nur an der Formatierung haberts noch ein wenig aber das bekomme ich auch noch hin.

Tschau Ingo
Titel: Re:Dokumentenexport an Word
Beitrag von: Axel am 14.04.04 - 15:34:05
Jetzt funktioniert es auch einwandfrei, nur an der Formatierung haberts noch ein wenig aber das bekomme ich auch noch hin.

Hi,

wenn du dazu noch Hilfe brauchst, melde dich einfach. Ich stecke zwar im Umzugsstress (die Firma zieht um), aber dafür ist noch Zeit. Notfalls abends.

Axel
Titel: Re:Dokumentenexport an Word
Beitrag von: tuxie am 23.04.04 - 12:58:20
Hallo,

wie schon geschrieben Funktioniert es soweit auch die Übergabe der RTF Felder funktioniert. Was es mir allerdings zerschießt sind Tabellen was nicht gut ist da wir diese benötigen. Gibt es noch einen Trick so das man diese mit rüber bekommt.

TSchau Ingo
Titel: Re:Dokumentenexport an Word
Beitrag von: Axel am 23.04.04 - 13:09:00
Hi,

dafür habe ich bis heute noch keine Lösung gefunden. Normaler Text aus einem RTF-Feld ist ja kein Problem, aber bei Tabellen und Grafiken wird es problematisch.

An der Ecke muss ich leider auch passen.


Axel
Titel: Re:Dokumentenexport an Word
Beitrag von: tuxie am 29.04.04 - 09:16:26
Hallo,

ich habe nocheinmal eine Frage, könnte man in das Script noch was einbauen was von dem jedem Überschriftenfeld die ersten 3-4 Zeichen Wegschneidet das diese nicht mit ausgegeben werden. Ich habe das Nummerrierungen dran wegen der Übersicht. Und diese sollen bei der Ausgabe in Word nicht mit ausgegeben werden.

TSchau Ingo
Titel: Re:Dokumentenexport an Word
Beitrag von: tuxie am 29.04.04 - 17:23:24
Hat sich erledigt, habe es über ein Word-Macro gemacht.

TSchau Ingo