Text und Daten mischen
Text und Daten mischen Texte mit Datensätzen verbinden
Ein bestehender Text oder RTF-Text kann mit dem Inhalt von Datensatzpuffern bzw. von globalen Variablen verbunden werden. Dazu müssen im Text entsprechende Platzhalter eingetragen werden. Die Platzhalter werden dabei in ein Markierungszeichen geklammert, um sie vom normalen Text unterscheiden zu können. Dies kann sowohl zur Erstellung von Serienbriefen als auch zum dynamischen Erzeugen von einzelnen Texten verwendet werden.
Standardmäßig wird die Tilde "~" als Markierungszeichen verwendet. Das Zeichen kann aber im Applikationsobjekt in der Eigenschaft RtfMixMarker für RtfEdit -Objekte und in der Eigenschaft DocMixMarker für CtxDocEdit -Objekte auf ein beliebiges anderes Zeichen geändert werden.
Das Mischen des Textes mit den Daten kann zu verschiedenen Zeitpunkten erfolgen:
- Beim Lesen eines Textes in ein RtfEdit -Objekt Dazu muss bei den Befehlen (zum Beispiel
WinRtfLoad ()) die Option_WinRtfLoadMixangegeben werden. - Beim Speichern eines Textes aus einem RtfEdit -Objekt Dazu muss bei den Befehlen (zum Beispiel
WinRtfSave ()) die Option_WinRtfSaveMixangegeben werden. - Beim Lesen eines Textes in ein CtxDocEdit -Objekt Dazu muss bei den Befehlen (zum Beispiel
WinDocLoadName ()) die Option_WinDocLoadMixangegeben werden. - Beim Speichern eines Textes aus einem CtxDocEdit -Objekt Dazu muss bei den Befehlen (zum Beispiel
WinDocSaveName ()) die Option_WinDocSaveMixangegeben werden. - Beim Drucken eines Textes mit dem PrtRtf -Objekt Ist beim Drucken des Objektes in der Eigenschaft
PrtRtfFlagsdie Ausprägung_PrtRtfMixgesetzt, werden die Markierungen durch die entsprechenden Inhalte ersetzt.
Folgende Markierungen werden beim Mischen von Text und Daten ersetzt:
-
F:Als<Feldname><Feldname>wird der Name eines Feldes aus der Datenstruktur oder die Nummer der Datei, des Teildatensatzes und des Feldes durch Kommata getrennt verwendet. Der Platzhalter wird durch den Inhalt des angegebenen Feldes ersetzt. Das Ausgabeformat wird durch die Ländereinstellungen des Betriebssystems bestimmt. Soll ein anderes Ausgabeformat verwendet werden, kann mit den BefehlenLocaleLoad ()undLocaleSelect ()dieses Format ausgewählt werden. Darüber hinaus können je nach Typ des Feldes noch folgende Formatoptionen angegeben werden: -
Feldtyp: Option Beschreibung
-
Alphanumerisch (
alpha):'/W1'Erste Wortumstellung: Die Wortumstellungen gehen davon aus, dass die verschiedenen Namensbestandteile (Name, Vorname und Titel) durch Kommata voneinander getrennt in einem Datenbankfeld stehen ('Müller-Lüdenscheidt, Franz, Dr.'). Durch die erste Wortumstellung wird der Name in der Form Titel, Vorname und Name dargestellt. Aus dem Namen im Beispiel wird dadurch'Dr. Franz Müller-Lüdenscheidt'. -
'/W2': Zweite Wortumstellung: In dieser Wortumstellung wird der Vorname ausgelassen. Das Beispiel wird in'Dr. Müller-Lüdenscheidt'umgewandelt. -
'/W3': Dritte Wortumstellung: Hier werden keine Doppelnamen angezeigt. Das Beispiel wird in'Dr. Müller'umgewandelt. -
'/B n ': Ist das Feld nicht leer, werden nach der Ausgabe des Inhaltes noch die in n angegebenen Leerzeichen ausgegeben. Es können bis zu999Leerzeichen angegeben werden. -
'/S n ': Das Feld wird mit einer statischen Ausgabelänge ausgegeben. Unabhängig von Inhalt des Feldes werden die in n angegebenen Zeichen ausgegeben. n kann einen Wert von1bis999angegeben werden. Der Ausgabewert wird abgeschnitten oder mit Leerzeichen aufgefüllt. -
'/P[Bildbreite][Einheit]': Interpretiert den Inhalt des Feldes als Name eines Bildes, dass in den RTF-Text codiert wird. Dadurch können z.B. Bilder, direkt als Bestandteil des RTF-Textes gedruckt werden. Es kann sich um ein internes, externes oder als BLOb gespeichertes Bild handeln. Dies ergibt sich aus dem Präfix des Feldinhaltes (* = extern, > = BLOb, ohne Angabe des Präfix = intern). Die optionale [Bildbreite] gibt an, wie breit das Bild dargestellt werden soll. Fehlt die Breite oder ist diese 0, wird das Bild in seiner Originalgröße angezeigt. Die Höhe des Bildes wird entsprechend der Breite angepasst, so dass das Bild immer mit dem Original-Seitenverhältnis dargestellt wird. Eine Vergrößerung des Bildes über 100 Prozent hinaus kann durch die Breite nicht erreicht werden. Über das optionale Argument [Einheit] kann angegeben werden, ob die Breite in Millimetern (mm), Zentimetern (cm), Twips (tw), Punkten (pt) oder Inches (in) definiert wird. Fehlt die Angabe wird Millimeter (mm) verwendet. -
Ganzzahlig (
byte,word,intundbigint):'/G'Es findet keine Tausender-Trennung statt. -
'/Z': Ist der darzustellende Wert gleich0, wird keine Ausgabe erzeugt (Nullunterdrückung). -
Gleitkomma (
floatunddecimal):'/G'Es findet keine Tausender-Trennung statt. -
'/Z': Ist der darzustellende Wert gleich0, wird keine Ausgabe erzeugt (Nullunterdrückung). -
'/P': Anstelle des Dezimaltrennzeichens wird ein Punkt ausgegeben. -
'/ n ': Über diese Option wird die Anzahl der Nachkommastellen definiert. Soll die Anzahl der Nachkommastellen definiert werden, muss entweder zuvor mindestens einer der bereits genannten Formatoptionen oder ein "/" ohne Optionen angegeben werden. Werden keine Nachkommastellen angegeben, werden alle Nachkommastellen angezeigt. -
Datum (
date):'/L'Mit dieser Option wird das lange Datumsformat eingestellt. Wird kein langes Datumsformat gewählt, erscheint das Datum in der kurzen Anzeige. -
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. Die erste Zeichenkette wird angezeigt, wenn der Werttrueist, die zweite Zeichenkette wird angezeigt, wenn der Wertfalseist. -
G:Für Variablen gelten die gleichen Formatierungsmöglichkeiten, wie für Felder.<Variablenbereich>:<Variablenname>
Es können mehrere Optionen hinter einem "/" gesammelt werden. Bei Zahlenwerten können die Formatierungsanweisungen (bis auf die Anzahl der Nachkommastellen) kombiniert werden: '~F:KND.fNumber/GZ/2~'. Die Anzahl der Nachkommastellen werden in einer zweiten Option angegeben.
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, die nicht ersetzt werden können, bleiben im Text enthalten.
Beispiele:
- Platzhalter: ersetzter Text
'~F:KND.aName~':'Müller, Walter, Dr.''~F:KND.aName/W1~':'Dr. Walter Müller''~F:10,1,2/W2~':'Dr. Müller''~F:KND.fNumber~':'1.256''~F:KND.fNumber/G/2~':'1256,00''~F:KND.fNumber//2~':'1.256,00''~F:KND.lActive/ja/nein~':'nein''G:gRtfData:gPictureName/P15cm': Der Inhalt der globalen VariablegPictureNamedes globalen DatenbereichesgRtfDatawird als Name zu einem Bild interpretiert, dass in den RTF-Text gemischt wird. Das Bild wird mit einer Breite von15Zentimetern dargestellt, sofern das Bild hierzu nicht über100Prozent gezoomt werden muss.