PDA

View Full Version : Interaktiver Datentransfer zu MS WORD



Seiten : [1] 2

Fibbes28
22-06-07, 11:00
Hallo *All

ich bin seit heute neu in diesem Forum und hoffe, dass ich die Regeln verstanden habe, wenn nicht bitte ich im Voraus um Entschuldigung und entsprechende Tips. Danke.

Nun zur Frage: Ich möchte aus einem AS/400 Dialog-Pgm MS WORD aufrufen; eigentlich kein Problem. Jedoch möchte ich interaktiv auch die entsprechenden Daten mitgeben; z.B. Rechnungspositionen; Kontoinformationen usw.

Hat jemand von Euch bereits Erfahrungen damit; wäre für jede(n) Tip / Lösung dankbar.

Fuerchau
22-06-07, 16:09
Der Weg ist leider verschlossen.
Information war schon immer eine Holschuld, m.a.W, Word muss die Information z.B. über eine ODBC-Quelle selber abholen.

Word kann als Argument i.W. nur den Dateinamen mitbekommen, der dann direkt geöffnet wird.

Alternativ wäre da noch ein Macro in VB-Script.
Der User startet das Macro, dieses ruft MS-Word auf, klaubt sich die nötigen Infos aus der 5250-Sitzung und sendet diese dann per DDE an die Word-Sitzung.

Fibbes28
22-06-07, 16:43
Hallo Fuerchau,

vielen Dank für die schnelle Reaktion.

Ich habe es befürchtet, jetzt muss ich wohl oder übel mit VBA beschäftigen. Kennst Du eine Beispielanwendung ?

Nochmal vielen Dank.

Fibbes28
25-06-07, 08:40
Guten Morgen Fuerchau,

ich habe am Wochenende ein bißchen weiter im Internet gestöbert; bin auf die Möglichkeit gestoßen, XML-Dokumente auf der iSeries aufrufen zu können.
Wäre dies, deiner erfahrung nach, eine Alternative ?

Danke im Voraus.

Fuerchau
25-06-07, 09:24
Da kenne ich mich weniger mit aus.
Aber XML-Dokumente auf AS/400 meint auch ausschließlich auf AS/400.

Du möchtest doch Word aus der AS/400 heraus starten.
Das geht nur mit STRPCO und STRPCCMD, damit der User das Dokument direkt sieht.
Allerdings könntest du folgendes tun:

Erstelle mit Word ein Musterdokument im RTF-Format (RichText) und lege es im IFS ab.
Kopiere dieses dann per CPYFRMSTMF in eine PF, so dass du den Klartext auf der AS/400 hast.

Nun kannst du dein (ILE)RPG entwickeln, dass auf Basis dieses Musters die notwendigen Textstellen ergänzt/ersetzt.

Anschließend gibst du per CPYTOSTMF diese PF wieder ins IFS mit CCSID(1252) und Suffix ".rtf" aus.

Auf dem PC mappst du das IFS auf ein Laufwerk (Achtung: sollte bei allen PC's identisch sein).

Per STRPCCMD startest du dann die IFS-Datei. Windows ordnet dann auf Grund des Suffix die richtige Anwendung zu und startet diese.

An Stelle eines Laufwerks kannst du ggf. auch einen UNC-Namen "\\MyAS400\Freigabe\PC-Datei.rtf (file://\\MyAS400\Freigabe\PC-Datei.rtf)" verwenden.

Fibbes28
25-06-07, 10:38
Die Methode mit der RTF-Datei und dem Hin-und-Herkopieren habe ich schin ausprobiert. Es gibt dazu ein Dokument von Rochester-Initiative. Leider sind RTF-Dokumente sehr groß und somit bemötigen die Kopiervorgänge relativ viel Zeit (bis zu 40 Sek.). Im Dialog nicht brauchbar.

Meien Idee ist, eine Vorlage in WORD 2003 als XML zu speichern, diese auf die AS/400 zu kopiren (1x); Innerhalb der RPG-Anwendung zu verändern und dann mit STRPCCMD Word 2003 aufzurufen mit dem Link auf das XML-Dokument auf der AS/400.

Werde mal probieren, ob es funktioniert. Sollte auf jeden Fall schneller sein.

Bis hierher erstmal Danke für Deine Hilfe. Wenn ich ein Ergebnis habe werde ich es hier schreiben.

So long.

Fuerchau
25-06-07, 11:49
Die XML-Worddateien sind mit Sicherheit größer als die RTF-Dateien und ggf. auch komplizierter zu bedienen (XML-Parser).

Ausserdem solltest du nicht hin- und herkopieren sondern nur eine Basis sozusagen als Muster in einer PF verfügbar halten und bei Bedarf eben ins IFS kopieren.

RTF's und XML's werden dann besonders groß wenn Bilder oder Logos enthalten (eingebettet) sind.
Diese werden dann meist als Expanded-Hex abgelegt.

Besser wäre für solche Fälle, Bilder oder Logos nicht einbetten sondern verknüpfen. Hier wird dann nur ein Pfadverweis eingetragen und das Bild nicht eingebettet.
Vorteil: gringere Größe des Dokuments und ggf. Anpassung des Bildes/Logos ohne alle Dokumente anpassen zu müssen.

Noch schlimmer wirds, wenn andere Anwendungen (z.B. Excel-Tabelle) eingebettet werden.

Spateneder
25-06-07, 17:06
Die RTF-Ausgabe kann man auch von der iSeries aus starten, ohne vorher ein Word-RTF mit dem genzen MS-Overhead zu erzeugen. Ein Beispiel dazu findest Du in NEWSolutions (Dez. 05 oder Anfang 06), auf Wunsch kann ich es zusenden.
So ein schlankes RTF sollte mit Word schnell zu öffnen und zu ergänzen sein.
Eine weitere Alternative wäre die Serienbrieffunktion mit Zugriff auf eine ODBC-Datenquelle. Auch das ist mit relativ wenig Makro-Programmierung lösbar.
Noch ein Hinweis zu Word-Makros: Es gibt verschiedene Auto-Makros (z.B. AutoNew), die man in Dokumentvorlagen speichern kann, und die für solche Aufgaben sehr hilfreich sind.
Viel Spaß
MS

KM
26-06-07, 06:37
Eine weitere Möglichkeit wäre evtl. noch Java. Es gab da mal vom Jakarta-POI Projekt den Bereich HWPF. Das wurde jedoch nie zu Ende entwickelt und wird es wohl auch nicht werden. Aber damit hatten wir z.B. aus der iSeries heraus "echte" Word-Dokumente (doc) erstellt, geöffnet und mit diversen Feldern (z.B. Adresse, Briefkopf, etc.) vorbelegt. Also einfache Funktionen wie z.B. Texte einfügen hat funktioniert. Aufwendigere wie z.B. Grafiken einfügen ging nicht.

Gruß,
KM

Fibbes28
26-06-07, 08:13
Hallo Spateneder,

vielen Dank für deine Hilfe. Ich werde mir die zitierten Artikel sicher anschauen.

Gruss
Fibbes28