Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Word Serienbrief - Vorschau (https://www.delphipraxis.net/124812-word-serienbrief-vorschau.html)

bwolf 25. Nov 2008 16:49


Word Serienbrief - Vorschau
 
Hi Leute,

ich muß in einer Anwendung die Möglichkeit anbieten, Serienbriefe über Word zu drucken.
Soweit so gut, das klappt auch ganz gut.

Nun brauch ich aber eine Möglichkeit, dem Benutzer den erstellten Serienbrief als Vorschau anzeigen zu lassen, das der Brief evt. noch manuell geändert werden kann.
Das klappt ebenfalls einigermaßen, aber 2 Sachen Stören mich:

1. Es öffnet sich nicht nur der erstellte Serienbrief, sondern auch die dazugehörige Vorlage aus der der Brief erstellt wird
2. Erscheint der Dialog "Änderungen Speichern" (und das sogar wenn am Dokument gar nichts gemacht wurde)

Diese beiden Punkte würd ich gern noch grade biegen.

Hier mal der Code wie ich den Brief erstelle:

Delphi-Quellcode:

OleInitialize(nil);

Word:=CreateOleObject('Word.Application');
word.Visible := True; // oder eben False falls keine Vorschau...

// Pfad zur Vorlage die für de Serienbrief verwendet werden soll
word.Documents.Open(OLEFilename);
// Vorlage zu Serienbrief machen
word.ActiveDocument.MailMerge.MainDocumentType:= wdFormLetters;
// Datenqulle (CSV) öffnen
word.ActiveDocument.MailMerge.OpenDataSource(OLEDataSource);
// Serienbrief zusammenführen
word.ActiveDocument.MailMerge.Execute(0);

// Nur automatisiert schließen wenn keine Vorschau angezeigt wird
word.quit(false);

OLEUnInitialize();

Wäre toll wenn einer n Tip für mich hätte.
Vielen dank schonmal,
gruß ben

mkinzler 25. Nov 2008 17:45

Re: Word Serienbrief - Vorschau
 
Ich würde Word erst nach des Mergevorganges sichtbar machen.
Versuch mal
Delphi-Quellcode:
.Documents.OpenOld()

bwolf 25. Nov 2008 18:20

Re: Word Serienbrief - Vorschau
 
Hi mkinzler,

das openOld() bringt leider nichts.
Ich mache Word nun erst am Ende Sichtbar, ist schonmal augenfreundlicher...

Problem 2 mit dem Speichern-Dialog hab ich nun gelöst:

Delphi-Quellcode:
// Speichern-Dialog beim erstellten Serienbrief unterdrücken
word.ActiveDocument.Saved := true;
// Speichern-Dialog beim der geöffneten Vorlage unterdrücken
word.Documents.Save(false);

Bleibt die Frage wie man dem abgewöhnen kann, das er die Vorlage anzeigt :gruebel:
Gibts vieleicht ne Möglichkeit, einzelne Dokumente ein/auszublenden?

Greets,
ben


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz