FastReport Band mit sauberen Linien

Aus GEVITAS
Wechseln zu: Navigation, Suche

Manchmal hat man mehrere Child-Bänder, die unter Umständen unterdrückt werden. Wenn man Linien (Rahmen) verwendet, fehlt aber u.U. der untere Rahmen, weil der ja von dem Child-Band kommt, das aber unterdrückt wird.

Dieser Artikel beschreibt, wie man trotzdem saubere Linien erzeugen kann.


1 Das Ergebnis

Beispiel:

FastReport Saubere Linien Trotz Child-Unterdrueckung 02.png

Dieser Report druckt Artikel-Typ und -Bezeichnung, darunter eine Zeile mit optionalem Zusatztext. Der Zusatztext soll aber ohne Rahmen vom Haupttext gedruckt werden, also hat das Memo-Feld mit dem Typ und der Bezeichnung unten keinen Rahmen. Der Rahmen unten kommt vom Zusatztext.

Damit keine Leerzeile entsteht, wird dieser Zusatztext in ein Child verschoben. Dieses Child-Band wird unterdrückt, wenn der Zusatztext leer ist. Somit entfällt aber der Rahmen dieser Position! Sieht unschön aus.

2 Der Report

Im Report gibt es ein Detail-Band für Menge, Typ und Bezeichnung.

Darunter das Child-Band mit dem Zusatztext:

FastReport Saubere Linien Trotz Child-Unterdrueckung 01.png

Das Typ-/Bezeichnungsfeld hat unten keinen Rahmen, das Zusatztext-Feld hat oben keinen Rahmen. Somit sieht es so aus, als ob beide Felder mit einem Rahmen aussen umschlossen sind. Wenn das untere Memo jedoch unterdrückt wird (weil es leer ist), so fehlt der untere Rahmen.

Der Trick ist, für das Child-Band 1 noch ein Child-Band einzufügen, in dem nur eine Linie steht! Diese Linie wird immer gedruckt, auch wenn das Band darüber ausgeblendet wird!

FastReport Saubere Linien Trotz Child-Unterdrueckung 03.png

Die Linie geht von links bis rechts, wie die Felder darüber auch. Sie sitzt auf der Top-Position 0, also ganz oben!

Das geht mit FastReport ziemlich gut, weil FastReport Linien pixelgenau übereinander zeichnet. Linien mit Top=0 werden exakt über die unterste Line des Bandes darüber gelegt!


Wichtig
Diese Option für das erste Child-Band muss eingeschaltet werden:
FastReport Saubere Linien Trotz Child-Unterdrueckung 04.png
Das untere Child-Band ("Child3") mit der Linie soll also gedruckt werden, auch wenn das "Eltern"-Band unsichtbar ist. Ohne diese Option (die standardmäßig ausgeschaltet ist) würde das "Child-Child-Band" nicht gedruckt, wenn Child1 ausgeschaltet wird.