Guten Tag Herr Ziersch,
kaum ist das Eine gelöst, kommt auch schon das andere Problem.
Um einen Serienbrief zu drucken benutze ich folgenden Code:
for i := 1 to 4 do begin FAktAdressNr := i; wprchtxtDokument.MergeText; ShowMessage('Drucken'); WPAPrint1.Execute; end;
Die Variable FAktAdressNr brauch ich als Datensatz Zähler.
Die Adressen befinden sich in einem Rocord.
In MailMergeGetText befindet sich folgender Code:
if inspname = 'Titel' then
Contents.StringValue := AdressDaten[FAktAdressNr].FTitel; // Datenübergabe
if inspname = 'Nachname' then
Contents.StringValue := AdressDaten[FAktAdressNr].FNachname;
if inspname = 'Vorname' then
Contents.StringValue := AdressDaten[FAktAdressNr].FVorname;
if inspname = 'Name3' then
Contents.StringValue := AdressDaten[FAktAdressNr].FName3;
if inspname = 'Strasse' then
Contents.StringValue := AdressDaten[FAktAdressNr].FStrasse;
if inspname = 'PLZ' then
Contents.StringValue := AdressDaten[FAktAdressNr].FPLZ;
if inspname = 'Ort' then
Contents.StringValue := AdressDaten[FAktAdressNr].FOrt;
if inspname = 'BriefAnrede' then
Contents.StringValue := AdressDaten[FAktAdressNr].FBriefAnrede;
Alles anzeigen
Es gibt bestimmt eine elegantere Weise um auf die Felder zuzugreifen, aber dies soll hier nicht berücksichtigt werden. Darum kümmere ich mich später. Habe jetzt noch keine Idee wie ich davor gehen soll.
Wenn ich das "showmessage" in der Druckprozedur entferne, dann werden 4 leere Seiten gedruckt. Lass ich hingegen jeden Druck bestätigen, dann werden die Daten korrekt gedruckt.
Woran kann das Liegen? Welchen Gedankenfehler mache ich, was verstehe ich hier nicht richtig?
Gruß HPB