Programmierung

Text und Daten mischen

In der einen oder anderen Applikation ist es erforderlich dynamische Texte bzw. Serienbriefe zu erstellen. Um die erforderlichen Daten nicht extra mühsam von Hand eintippen zu müssen, bietet CONZEPT 16 die Möglichkeit Inhalte von Datenbankfeldern und Text zu mischen. Im folgenden Artikel möchte ich etwas näher auf diese Thematik eingehen.

Text mit Datensätzen verbinden

Ein bereits bestehender Text oder auch RTF-Text kann mit dem Inhalt von globalen Variablen bzw. Datensatzpuffern verbunden werden. Um dies zu bewerkstelligen ist es notwendig Platzhalter im Text einzufügen. Die Platzhalter werden dabei in ein Markierungszeichen geklammert, um sie vom normalen Text unterscheiden zu können.
Standartmäßig wird die Tilde "~" als Markierungszeichen verwendet. Das Zeichen kann aber im Applikationsobjekt in der Eigenschaft wpRtfMixMarker für RtfEdit-Objekte und in Eigenschaft wpDocMixMarker für CtxDocEdit-Objekte auf ein beliebiges anderes Zeichen geändert werden.

Zeitpunkt wählen

Es besteht die Möglichkeit das Mischen des Textes mit den Daten zu verschiedenen Zeitpunkten zu verwirklichen.

  • Beim Lesen eines Textes in ein RtfEdit-Objekt

    Dazu muss bei den Befehlen (z.B. WinRtfLoad()) die Option _WinRtfLoadMix angegeben werden.

  • Beim Speichern eines Textes aus einem RtfEdit-Objekt

    Dazu muss bei den Befehlen (z.B. WinRtfSave()) die Option _WinRtfSaveMix angegeben werden.

  • Beim Lesen eines Textes in ein CtxDocEdit-Objekt

    Dazu muss bei den Befehlen (z.B. WinDocLoadName()) die Option _WinDocLoadMix angegeben werden.

  • Beim Speichern eines Textes aus einem CtxDocEdit-Objekt

    Dazu muss bei den Befehlen (z.B. WinDocSaveName()) die Option _WinDocSaveMix angegeben werden.

  • Beim Drucken eines Textes mit dem PrtRtf-Objekt

    Ist beim Drucken des Objektes in der Eigenschaft ppPrtRtfFlags die Ausprägung _PrtRtfMix gesetzt, werden die Markierungen durch die entsprechenden Inhalte ersetzt.

Markierungen

Sollen Datenbankfeld-Inhalte dargestellt werden, besitzt die Markierung folgendes Aussehen: ~F:<Feldname>~

Als <Feldname> wird der Name eines Feldes aus der Datenstruktur oder die Nummer der Datei, des Teildatensatzes und des Feldes durch Kommata getrennt verwendet. Dieser Platzhalter wird nun durch den Inhalt des angegebenen Feldes ersetzt. Das Ausgabeformat wird durch die Ländereinstellungen des Betriebssystems bestimmt. Je nach Typ des Feldes können noch folgende Formatoptionen angegeben werden.

Feldtyp Option Beschreibung
Alphanumerisch (alpha) /W1 Erste Wortumstellung: Hier wird der Name in der Form Titel, Vorname und Name dargestellt.
/W2 Zweite Wortumstellung: In dieser Wortumstellung wird der Vorname ausgelassen.
/W3 Dritte Wortumstellung: Hier werden keine Doppelnamen angezeigt.
/Bn Ist das Feld nicht leer, werden nach der Ausgabe des Inhalts noch die in n angegebenen Leerzeichen ausgegeben.
/Sn Das Feld wird mit einer statischen Ausgabelänge ausgegeben. Unabhängig vom Inhalt des Feldes werden die in n angegebenen Zeichen ausgegeben.
Ganzzahlig (byte, word, int und bigint) /G Es findet keine Tausender-Trennung statt.
/Z Ist der darzustellende Wert gleich 0, wird keine Ausgabe gemacht (Nullunterdrückung).
Gleitkomma
(float und decimal)
/G Es findet keine Tausender-Trennung statt
/Z Ist der darzustellende Wert gleich 0, wird keine Ausgabe gemacht (Nullunterdrückung).
/P Anstelle des Dezimaltrennzeichens wird ein Punkt ausgegeben.
/n Über diese Option wird die Anzahl der Nachkommastellen definiert.
Datum (date) /L Mit dieser Option wird das lange Datumsformat eingestellt.
Zeit (time) /S Die Uhrzeit wird mit Sekunden angezeigt.
/H Die Uhrzeit wird mit Sekunden und hundertstel Sekunden angezeigt.
Logisch (logic) /<true>/<false> Logische Felder und Variablen müssen mit Werten versehen werden, die in Abhängigkeit des Wertes angezeigt werden sollen.

Sollen hingegen Variablen dargestellt werden, besitzt die Markierung folgendes Aussehen: ~G:<Variablenbereich>:<Variablenname>~

Für Variablen gelten die gleichen Formatierungsmöglichkeiten, wie für Felder.

Es können mehrere Optionen hinter einem "/" gesammelt werden. Bei Zahlenwerten können die Formatierungsanweisungen kombiniert werden.
Damit die Platzhalter korrekt ersetzt werden können, müssen die Namen korrekt geschrieben sein und es darf kein Formatwechsel zwischen den Markierungszeichen vorgenommen werden. Markierungen, welche nicht ersetzt werden können, bleiben im Text enthalten.

1 Kommentar

1 Kommentar zu “Text und Daten mischen”

  1. Haben wir "zu Fuß" gelöst, da
    – keine bedingte Ausgabe möglich ist (Feld A, wenn Feld B=’X’)
    – Werte erst durch eine Prozedur ermittelt werden müssen
    – die Feldnamen vom Endanwender nicht immer verstanden werden (und er auch nicht weiß, welche Dateien an dieser Stelle überhaupt korrekt eingelesen sind)

Kommentar abgeben