Richtext in Formularen und Berichten - Teil 2

Wenn der Text nicht passt …

Solange im vorliegenden Beispiel nur kurze Texte zum Einsatz kommen, funktioniert alles einwandfrei. Wenn die RTF-Texte aber einmal etwas umfangreicher ausfallen, wird unter Umständen ein kurzer Text noch auf der ersten Seite der Rechnung angezeigt, ein längerer Beschreibungstext beim zweiten Artikel, der nicht mehr auf die erste Seite passt, rutscht auf die zweite Seite.

Einem Umbruch inmitten des RTF-Textes verweigert sich der Bericht. Also müssen Sie schwerere Geschütze auffahren. Das folgende ist relativ trickreich, lohnt aber den Aufwand: Dabei werden längere Texte in ihre einzelnen Absätze aufgeteilt, falls welche vorhanden sind. Damit kann der Bericht nun umgehen: Er verschiebt nicht mehr den kompletten Datensatz auf die nächste Seite, sondern nur die Absätze, die definitiv nicht mehr auf die Seite passen.

Bild 5: Lange Beschreibungstexte werden auf die Folgeseite verschoben.
Bild 5: Lange Beschreibungstexte werden auf die Folgeseite verschoben.

Was sich einfach anhört, erfordert schon eine Menge Aufwand: Stellen Sie sich den Bericht aus Bild 5 als Ausgangspunkt vor. Der Beschreibungstext des Artikels besteht aus mehreren Absätzen, die auf mehrere Datensätze aufgeteilt werden sollen. Diese schreibt man in eine temporäre Tabelle, die als neue Datenherkunft des Berichts dient. Mit der Eigenschaft Duplikate ausblenden blendet man die Felder aus, die nur einmal mit dem ersten Absatz angezeigt werden sollen. Fehlt noch eine Funktion, die das Aufteilen des Beschreibungstextes in die enthaltenen Absätze übernimmt. Man könnte natürlich den RTF-Code analysieren, die Textbestandteile herausfiltern, die Steuerzeichen für den Zeilenumbruch identifizieren und daraus neue RTFDokumente erzeugen. Wer sich einmal den RTF-Code eines solchen Dokuments angesehen hat, wird vor diesem Ansatz allerdings zurückschrecken.