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