Zum Hauptinhalt springen

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:

Folgende Markierungen werden beim Mischen von Text und Daten ersetzt:

  • 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. 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 Befehlen LocaleLoad () und LocaleSelect () 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 zu 999 Leerzeichen 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 von 1 bis 999 angegeben 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 , int und bigint ): '/G' Es findet keine Tausender-Trennung statt.

  • '/Z': Ist der darzustellende Wert gleich 0 , wird keine Ausgabe erzeugt (Nullunterdrückung).

  • Gleitkomma ( float und decimal ): '/G' Es findet keine Tausender-Trennung statt.

  • '/Z': Ist der darzustellende Wert gleich 0 , 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 Wert true ist, die zweite Zeichenkette wird angezeigt, wenn der Wert false ist.

  • 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 (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 Variable gPictureName des globalen Datenbereiches gRtfData wird als Name zu einem Bild interpretiert, dass in den RTF-Text gemischt wird. Das Bild wird mit einer Breite von 15 Zentimetern dargestellt, sofern das Bild hierzu nicht über 100 Prozent gezoomt werden muss.