Ersetzen von Textfeldern mit WPTools

  • Guten Tag Herr Ziersch,
    ich habe auf einem Formular Textfelder definiert. Diese Felder werden über
    folgenden Code gefüllt:

    Code
    if inspname = 'Dokumentart' then      Contents.StringValue := 'Rechnung';    if inspname = 'ReNummer' then      Contents.StringValue := RechnungsNr;    if inspname = 'KundenNr' then      Contents.StringValue := KundenNr;    if inspname = 'AuNummer' then      Contents.StringValue := AuftragsNr;    if inspname = 'Datum' then      Contents.StringValue := FormatDateTime('dd.mm.yyy', AktDatum);    if inspname = 'Betreff' then      Contents.StringValue := 'Betreff: ' + AuBetreff;    if inspname = 'Ausführungstext' then      Contents.StringValue := 'Leistungszeitraum: ' +        FormatDateTime('mmmm yyyy', LeistDatum);


    Dies wird auch richtig ausgeführt. D. H. Die korrekten Daten stehen in den Feldern.
    Nun ist es so das z. B. das Feld "Ausführungstext" durch einen neuen Wert ersetzt werden soll.
    Dazu wird folgender Code ausgeführt:

    Code
    procedure TFrmSchriftverkehr.SetzeLeistungsDatumNeu;begin  LeistDatum := advsmthdtpckrRechnungsdatum.Date;  wprchtxtSchriftVerkehr.MoveToField('Ausführungstext');  wprchtxtSchriftVerkehr.InputMergeField('Ausführungstext', '');  wprchtxtSchriftVerkehr.InputMergeField('Ausführungstext',   'Leistungszeitraum: ' + FormatDateTime('mmmm yyyy', LeistDatum));


    Nach dem Ausführen wird aber der vorhandene Wert nicht gelöscht sondern es wird dem vorhanden Text "Leistungszeitraum: Juni 2014"
    der neuerzeugte Text hinzugefügt. Es sieht dann so aus!
    Leistungszeitraum: November 2010Leistungszeitraum: Juni 2014

    Auch das erneute Ausführen von:

    Code
    wprchtxtSchriftVerkehr.MergeText;


    brachte keine Lösung!
    Können Sie mir bitte mitteilen was ich hier falsch mache??
    Bedauerlich das keine Screenshots hinzugefügt werden können.

    [Blockierte Grafik: http://www.bps-nienburg.de/wp-content/upl…ler-wptools.zip]
    Download der Screenshots: http://www.bps-nienburg.de/wp-content/upl…ler-wptools.zip

    Mit freundlichem Gruß
    Hans-Peter Bongers

    • Offizieller Beitrag

    [quote]Nun ist es so das z. B. das Feld "Ausführungstext" durch einen neuen Wert ersetzt werden soll.[/quote]

    Dafür wenden Sie MergeText einfach erneut an und setzen Contents.StringValue auf den neuen wert. Sie können auch MergeText(Name) aufrufen, um das Ereignis OnMailMergeGetText nur für das eine Feld aufzurufen.

    Der Code mit MoveToField / InputMergeField erstellt ein neues Feld, u.U. sogar innerhalb des alten Feldes was nicht sinnvoll ist.

    Hinweis: Nach MergeText muss man, sofern der unmittelbare Ausdruck gewünscht wird, ReformatAll aufrufen.