Multi-Text Anzeige

Navigation:  Bericht im FR-Designer > Reporterstellung >

Multi-Text Anzeige

Previous pageReturn to chapter overviewNext page

Kehren wir nun zu unserem Beispiel mit dem Logo zurück. In der Tabelle "a" ist ein Feld "notes", welches eine detaillierte Beschreibung für jeden Adresse enthält. Fügen wir dieses Feld nun in unseren Report ein.

 

Auf den ersten Blick ist alles recht einfach. Wir fügen dem Band mit den Daten das Objekt "Text" hinzu, verknüpfen dieses mit dem Feld und stellen die Maße des Objektes auf - 8 x 2.5. Wir starten den Report und sehen, dass das Ergebnis nicht dem entspricht, was wir erwartet haben:

 

clip0155

 

FastReport hat jedoch nur die ihm gegebenen Anweisungen befolgt. Das Feld "Notes" beinhaltet Text, dessen Größe variabel ist. Unser Objekt "Text", der die Informationen des Feldes anzeigt, besitzt jedoch eine feste Größe. Deswegen passen nicht alle Zeilen in das Objekt und werden nicht vollständig angezeigt. Was könnte man jetzt machen?

 

Man kann selbstverständlich die Größe des Objektes oder die der Schrift verändern. Dies jedoch würde zur Platzverschwendung auf dem Blatt führen, weil manche Fische eine lange Beschreibung haben und manche nur eine kurze. FastReport besitzt für diesen Fall Möglichkeiten dieses Problem zu lösen.

 

Die Rede geht über die Eigenschaften des Bandes, die eigene Größe den enthaltenen Objekten anzupassen. Hierfür muss die Eigenschaft "Dehnen" aktiviert werden. Dies ist jedoch nicht alles. Ein Objekt mit viel Text sollte ebenfalls in der Lage sein sich zu dehnen, das Objekt "Text" kann das.

 

Das Objekt kann automatisch seine Höhe und Breite anpassen, um den gesamten enthaltenen Text aufnehmen zu können. Hierfür sind die Eigenschaften "Breite automatisch" (AutoWidth) und "Dehnen" (StretchMode) da. Die Eigenschaft "Breite automatisch" wählt die Breite des Objektes so aus, dass alle Zeilen reinpassen, ohne das einzelne Wörter übertragen werden müssen. Dies ist hilfreich wenn das Objekt nur einen einzelne Texteil enthält. Die Eigenschaft "Dehnen" passt die Höhe des Objektes an den gesamten Text an. Die Breite wird nicht verändert. Diese Eigenschaft besitzt mehrere Modi, welche im Objektinspektor ausgewählt werden:

 

smDontStretch  Objekt nicht dehnen, Standardeinstellung

smActualHeight  Objekt dehnen, um den gesamten Text aufnehmen zu können

smMaxHeight  Objekt dehnen, sodass seine unterste Grenze mit der des Bandes übereinstimmt. Dies werden wir später eingehender behandeln.

 

Jetzt interessiert uns die Eigenschaft "Dehnen" des Objektes "Text". Aktivieren Sie es im Kontextmenü oder stellen Sie die Eigenschaft StretchMode = smActualHeight im Inspektor ein. Ebenfalls aktivieren Sie "Dehnen" beim Band. Wenn der Report nun gestartet wird, arbeitet alles korrekt.

 

clip0156

 

Wie wir sehen, füllt FastReport beim Erstellen des Reports die Objekte mit Daten, dehnt die Objekte mit der Option "Dehnen" und wählt auch die Höhe so aus, dass alle Objekte reinpassen. Ist die Option "Dehnen" des Bandes deaktiviert, wird die Höhe des Bandes nicht angepasst und das Band behält die im Designer gewählte Höhe. Wenn wir versuchen diese Option zu deaktivieren, sehen wir das Objekte mit einem langen Text trotzdem gedehnt werden, die Bänder jedoch nicht. Dies führt zu zu Textüberlagerung, da die Bänder hintereinander liegen.