Serienbrief drucken

  • 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:

    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:


    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

    • Offizieller Beitrag

    Vor dem
    WPAPrint1.Execute;
    müssen Sie wprchtxtDokument.ReformatAll(true, false) aufrufen. TWPRichText formatiert den Text in idle Phasen, also z.b. wenn ShowMessage aufgerufen wurde.

    Anstatt WPAPrint1.Execute würde ich allerdings wprchtxtDokument.Print direkt aufrufen.

  • Zitat von wpsupport

    Vor dem
    WPAPrint1.Execute;
    müssen Sie wprchtxtDokument.ReformatAll(true, false) aufrufen. TWPRichText formatiert den Text in idle Phasen, also z.b. wenn ShowMessage aufgerufen wurde.

    Anstatt WPAPrint1.Execute würde ich allerdings wprchtxtDokument.Print direkt aufrufen.


    Guten Tag Herr Ziersch,
    vielen Dank für den Hinweis.
    Mit

    Zitat

    wprchtxtDokument.Print direkt aufrufen

    werden die Daten korrekt gedruckt.
    Mit besten Grüßen
    HPB