-
Drucken Worddokumenten mit System i
Hallo
Ich möchte Worddokumente mit dem System i drucken. Dazu erstelle ich mit Word ein Dokument mit Platzhaltern für die variablen Texte. Dann erstelle ich aus dem System i-DB ein File mit den aktuellen Texten; dieses File wandle ich in ein Excel um.
Ich möchte nun die Serienbrief-Funktion des Winwords verwenden um die Dokumente aus der Vorlage mit den Platzhaltern kombiniert mit den effektiven Daten aus dem Excel zu drucken.
Diese Funktion möchte ich Batch laufen lassen; entweder mit runrmtcmd von einem CL aus oder von der Windows-Büchse gestartet, wobei die System i-Funktionen dann mit rmtcmd aufgerufen werden.
Weiss jemand, ob dies möglich ist und wenn Ja, wies es im Detail ablaufen könnte?
Vielen Dank im Voraus.
Mit besten Grüssen
jgv
-
Hierfür würde ich über Word direkt eine Abfrage (externe Daten über ODBC) verwenden.
Diese kann Word dann für die Serienbrieffunktion sofort nutzen, da die Felder ja im Dokument direkt angegeben werden.
Dann zeichne ein Makro auf, dass die Abfrage startet und den Seriendruck ausführt.
Dieses Makro musst du dann im Dokument (ThisDocument) der Sub-Prozedur Documen_Open() zuweisen.
Dann kannst du per RMTCMD das Dokument starten, über die Dateiendung findet Windows automatisch Winword.
Allerdings hängt die Automatisierung hier von der Sicherheitsstufe ab, da Abfragen nur nach Rückfrage ausgeführt werden und Makros ggf. gesperrt sind.
Für RMTCMD benötigst du auf dem Windows also einen User mit niedriger Sicherheitsstufe in Word oder du generierst dir ein Zertifikat (Office-Tools->Digitale Signatur für VBA-Projekte), dass du dem Dokument dann zuweisen kannst (Extras->Makros->Sicherheit).
-
 Zitat von Fuerchau
Dieses Makro musst du dann im Dokument (ThisDocument) der Sub-Prozedur Documen_Open() zuweisen.
Vielen Dank für die Hinweise. Wie weise ich ein Makro einer Sub-Prozedur zu?
-
Die SubProzedur selber ist das Macro.
Geh in den VBA-Editor, öffne im Projektexplorer das Objekt "ThisDocument".
Im Editorfenster wählst du in der linken Dropdown-Liste "Dokument" und in der rechten dann "Open" (falls das nicht automatisch passierte.
VBA generiert automatisch einen Prozedur-Rahmen:
public sub Document_Open()
end sub
In diesen Body kopierst du dann den Inhalt aus dem automatisch generierten Macro, also den Teil zwischen "Public sub Macro1" und "End Sub".
Füge in dein Macro ggf. am Anfang:
on error goto Fehler
und vor "End Sub"
Fehler:
ein.
Damit führen Laufzeitfehler (keine Verbindung o.ä.) nicht zum Hängenbleiben.
-
Vielen Dank für die Angaben. Es funktioniert jetzt fast ohne Probleme.
Durch Eingabe eines Registry-Eintrages SQLSecurityCheck unter den Word/Options konnte verhindert werden, dass während dem Öffnen eine Frage erscheint, ob man das SQL-Öffnen zulässt.
Jetzt kommt nur noch nach dem Druck aus Word die übliche Frage, ob man das geänderte Dokumente speichern will. Diese Frage ist in unserem Fall nicht nötig, da im Dokument (mit den Platzhaltern) an sich nichts geändert wurde. Besteht eine Möglichkeit, diese Frage zu unterdrücken respektive automatisch mit Nein (oder Ja) zu beantworten?
Besten Dank im Voraus.
jgv
-
Setze nach dem Druck die Eigenschaft "ThisDocument.Saved=True", dann müsste die Abfrage unterbleiben.
-
Vielen Dank für den Tip. Mir ist leider noch nicht gelungen herauszufinden, wo die Eingabe gemacht werden muss. Kannst du auch hier einen Hinweis geben?
Besten Dank.
-
Hello,
Fehler:
ThisDocument.Saved=True
End Sub
vermute ich mal.
K.
-
Danke für den Hinweis. Habe ich schon probiert, funktioniert aber leider nicht.
-
Dann teste mal folgendes:
Private Sub Document_Close()
ThisDocument.Saved=True
End Sub
Bei mir wurde dann selbst ein verändertes Dokument widerspruchslos geschlossen.
-
Besten Dank für den Hinweis. Leider funktioniert es noch nicht. Folgender Makro wird verwendet:
Code:
ThisDocument - 1
Private Sub Document_New()
End Sub
Private Sub Document_Open()
'
' Makro1 Makro
' Makro aufgezeichnet am 04.12.2007 von CHW
'
ChangeFileOpenDirectory "F:\Daten\Tests\"
Documents.Open FileName:="Platzhalter.doc", ConfirmConversions:=False, _
ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
WritePasswordTemplate:="", Format:=wdOpenFormatAuto, XMLTransform:=""
With ActiveDocument.MailMerge
.Destination = wdSendToPrinter
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With
ActiveDocument.Close
End Sub
Private Sub Document_Close()
ThisDocument.Saved = True
End Sub
Das Dokument wird geöffnet und gedruckt. Danach erscheint das übliche Word-Schlussbild mit der Frage ob speichern (was ja nicht erwünscht ist). Unabhängig vom Antwort erscheint der Fehler:
Lauzeitfehler 4248. Dieser Befehl ist nicht verfügbar, weil kein Dokument geöffnet.
Was mache ich falsch ?
Besten Dank und freundliche Grüsse
jgv
-
Welches Dokument ist denn das "ActiveDocument" ?
Dein Makro-Dokument ?
Ansonsten probier einfach folgendes:
ActiveDocument.Saved = True
ActiveDocument.Close
und lass "Document_Close" weg, da dies ja wohl dein Makro-Dokument betrifft.
Similar Threads
-
By Kirsten Steer in forum NEWSboard Server Software
Antworten: 0
Letzter Beitrag: 11-12-06, 09:03
-
By Kilianski in forum Archiv NEWSblibs
Antworten: 0
Letzter Beitrag: 07-11-06, 08:30
-
By andy w in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 06-11-06, 10:02
-
By kug in forum NEWSboard Drucker
Antworten: 4
Letzter Beitrag: 23-09-06, 07:40
-
By Stern8 in forum NEWSboard Server & Hardware Markt
Antworten: 1
Letzter Beitrag: 20-06-06, 10:24
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks