Das Einrücken von Feldern macht man am besten, in dem man mehrere Textfelder definiert und jeweils eine printWhenExpression auf die Ebene einbaut.
Alternativer Versuch war folgendes:
Wobei Nachteil bei sehr langen Texten, bei denen strech with overflows zur Geltung kommt, dann die zweite Zeile nicht eingerückt wird.
Das Einrücken von Felder kann man für Textfelder (Strings) machen, indem der SuperX-Bericht eine Spalte einruecken definiert, der je nach gewünschter Einrückung eine Anzahl von x enthält, also z.B.
Name | Betrag | Einrücken |
1. Überschrift | 30000 | X (mindestens 1 x nötig) |
1.1 Unterüberschrift | 15000 | Xxxxx |
1.3. UnterUnterübersichrift | 3000 | xxxxxxxxx |
Dann kann man ein Textfeld erzeugen und bei TextFieldExpression einfach eintragen:
Für Zahlfelder (z.B. Double) geht das so nicht so gut, weil dann das Pattern der Darstellung ###0,00 nicht mehr greift.
Man definiert drei Felder nebeneinander, Beispiel:
| |- |
|---|
| ${Betrag}
PrintWhenExpression
$F{Hierarchie_Ebene}.intValue()>=6
| ${Betrag}
PrintWhenExpression
$F{Hierarchie_Ebene}.intValue()<6
|}
Bei Ebene 1-5 wird ganz rechts ausgegeben, bei Ebene >=6 wird mittig ausgegeben.