Zitat von
Keldorn:
welchen Aufruf verwendest du denn?
Hi Frank!
Da ich bei diesem Projekt leider noch auf Delphi 2.0 festhänge, kann ich leider nicht diese tollen Application-Server-Komponenten verwenden. Also erzeuge ich ein
OLE-Objekt:
aMsWord := CreateOleObject('Word.Basic');
Den Seriendruck starte ich dann mit folgender Routine:
Delphi-Quellcode:
procedure TfrmVorSel.starteSeriendruck(aMSWord: Variant; aDokument, aSteuerdatei:
String);
var
OLEFormat: Cardinal;
OLEConfirmConversions: Variant;
OLEReadOnly: Variant;
OLELinkToSource: Variant;
OLEAddToRecentFiles: Variant;
OLEPasswordDocument: Variant;
OLEPasswordTemplate: Variant;
OLERevert: Variant;
OLEWritePasswordDocument: Variant;
OLEWritePasswordTemplate: Variant;
OLEConnection: Variant;
OLESQLStatement: Variant;
OLESQLStatement1: Variant;
begin
try
if Daten
then
begin
aMSWord.Visible := False;
//Word sichtbar
aMSWord.Documents.Open(aDokument);
//Dokument öffnen
// Steuerdatei neu einbinden
OLEFormat := $00000005;;
//wdOpenFormatText
OLEConfirmConversions := False;
OLEReadOnly := False;
OLELinkToSource := True;
OLEAddToRecentFiles := False;
OLEPasswordDocument := '
';
OLEPasswordTemplate := '
';
OLERevert := False;
OLEWritePasswordDocument := '
';
OLEWritePasswordTemplate := '
';
OLEConnection := '
';
OLESQLStatement := '
';
OLESQLStatement1 := '
';
aMSWord.ActiveDocument.MailMerge.OpenDataSource(aSteuerdatei,
OLEFormat,
OLEConfirmConversions,
OLEReadOnly,
OLELinkToSource,
OLEAddToRecentFiles,
OLEPasswordDocument,
OLEPasswordTemplate,
OLERevert,
OLEWritePasswordDocument,
OLEWritePasswordTemplate,
OLEConnection,
OLESQLStatement,
OLESQLStatement1);
//Destination hat 4 Konstanten zur Auswahl:
// wdSendToNewDocument(0),
// wdSendToPrinter(1),
// wdSendToEmail(2),
// wdSendToFax (3),
aMSWord.ActiveDocument.MailMerge.Destination := 1;
//wdSendToPrinter(1)
aMSWord.ActiveDocument.MailMerge.Execute;
end;
//if Daten
except
on E:
Exception do
ShowMessage(LoadStr(isDruck));
end;
end;
Das paradoxe an der ganzen Sache ist, daß mit Word 2003 (aktuell im Einsatz befindliche Version) läuft das Programm wie es ursprünglich mal angedacht war. Nämlich "Drucken" klicken und ratzfatz raus damit. Dies hatte damals unter Word 97 merkwürdigerweise nicht funktioniert und es Word zeigt vor jedem Serienbrief den Druckdialog und wartete auf Bestätigung. Dies haben die Anwender genutzt, den Druckvorgang unterbrochen, Brief ändern und weiterdrucken. Daran haben sich die Anwender gewöhnt
und wollen es verständlicherweise gern wiederhaben.
Das Ding ist, ich habe Aufruf nicht geändert, nur die Word-Version ist von 97 auf 2003 gestiegen. Und jetzt habe keine Ahnung wie ich es drehe, daß die ihren Dialog wiederbekommen.
Wäre schön, wenn du mir da helfen könntest.
Gruß
P.S.: Ich hatte, daß heute alles schon mal geschrieben, mußte dann etwas anderes erledigen und als ich weitermachen wollte, bin ich aus dem 'Posting'-Modus oder wie man das nennen soll, rausgeflogen.