Webseiten-Werkzeuge

Benutzer-Werkzeuge


Reihenfolgen im Text ändern

Anforderung

In einem Dokument soll in einer bestimmten Textpassage die Reihenfolge von Texten geändert werden.

In diesem Fall soll als Beispiel ein nach den deutschen Formatierungsregeln gedrucktes Datum in ein Datum nach englischen Regeln konvertiert werden. Grundlage ist das Formular 'Angebot einzelne Seite mit Bildern' aus der Beispielinstallation. Der Ausdruck vor der Änderung sieht wie folgt aus (Ausschnitt):

Realisierung

Zur Realisation dieser Anforderung wird im hier verwendeten Formular ein Textfeld hinzugefügt. Die Aufgabe des Textfeldes ist, das Datum zu finden, vom Blatt zu entfernen und im englischen Format wieder hinzuzufügen.

Da wir zwei Datumsfelder im Ausdruck umsetzen müssen, benötigen wir dazu zwei Textfelder. Diese sehen wie folgt aus:

Aus der Indexdatei des Ausdrucks ist bekannt, daß sich das Bearbeitungsdatum in einer Textpassage mit dem Index '0004A10000' und das Gültigkeitsdatum in einer Textpassage mit dem Index '0005190000' befindet. Um die einzelnen Bestandteile des Datums zu isolieren, wird der Text mit dem Vergleichsmuster '(.*)(##).(##).(####)' in vier Textpuffer abgelegt. Der erste Puffer enthält den gesamten Text vor dem Datum, der zweite Puffer enthält den Tag, der dritte Puffer enthält den Monat und der vierte Puffer enthält das Jahr.

Da wir die Laufweite der Schrift nicht ändern, gestaltet sich die Positionierung des neuen Textes recht einfach. Die Position bleibt unverändert. Mit der Angabe 'Relativ zum Feld' und den Offsets von '0 cm' wird dies gewährleistet.

In den Schablonen wird nun der gepufferte Text mit der Angabe '\Datum:1\Datum:4-\Datum:3-\Datum:2' beziehungsweise '\Dauer:1\Dauer:4-\Dauer:3-\Dauer:2' in das englische Format mit der Reihenfolg 'Jahr-Monat-Tag' umgruppiert. Die Referenz über einen Namen ist hier möglich, weil wir den Textfeldern die Namen 'Datum' und 'Dauer' gegeben haben.

Das Ergebnis dieser Änderung sieht jetzt erwartungsgemäß so aus (Ausschnitt):



Bemerkungen

  • Durch die Positionierung 'Relativ zum Feld' wird gewährleistet, daß sich die Position der beiden Datumsfelder nicht ändert, wenn das Formular verschoben wird - sie bleiben in einer Flucht mit der Anfrage- und Kundennummer. Werden hingegen im verwendeten Prozess die Nutzdaten verschoben, verschieben sich die beiden Datumsfelder mit.
  • Das Vergleichsmuster '(.*)(##).(##).(####)' verlangt, das das gewünschte Datumsfeld am Ende der Textpassage steht. Damit wird auch prinzipiell möglich, daß sich in dem mit '(.*)' aufgesammelten Textteil ebenfalls Datumsfelder befinden. Ein Vergleichsmuster '(.*)(##).(##).(####)(.*)' hingegen würde das erste in der Textpassage auftretende Datumsfeld verwenden.
  • Der Ausdruck zum Austesten dieses Beispiels wurde mit dem bei print2forms mitgelieferten Programms 'Beispielprogramm' erstellt. Dazu wurde das Beispiel 'Angebot mit Bildern und Unterschrift' ausgewählt.
print2forms/tips/tip6.txt · Zuletzt geändert: 2018-08-31 10:07 (Externe Bearbeitung)