Wenn man in einzelne Textfelder "bedingte Formatierung" nutzen will (z.B. farbiger Hintergrund, Festtdruck), hat man früher mehrere Textfelder einzeln angelegt, mit dem gleichen Inhalt und einer jeweiligen "Print-when expression". Das geht seit JR 3.x eleganter mit den sog. "Conditional styles".
Um z.B. einzelne Zei l en nach einer Bedingung fett zu machen oder nicht kann man so vorgehen : Zunächst legen Sie die Formatierungen an, indem Sie im Report Inspector unter Styles die r echte Maustaste drücken und ein Style h inzufügen, z.B. zw_maybe_bold für einen Style der Fett sein soll, wenn im Feld zw bestimmte Werte stehen.
Danach erzeugen Sie mit Rechtsklick auf zw_maybe_bold eine neue Bedingung mit „Hinzufügen von Conditional Style“ . Bei dem neue n Unterknoten <No condition set> klicken Sie auf die rechte Maustaste, dann Edit Condition. Hier können Sie wie gewohnt eine Bedingung in Form einer Expression eingeben , z.B.
$F{Zweckbestimmung}.equals("Gesamtausgaben")||$F{Zweckbestimmung}.equals("Gesamteinnahmen")
Dann müssen Sie den neuen Conditional Style anklicken
und in den Eigenschaften bold auf true setzen.
Dann wählt man im R eport designer die Felder aus, die ggfs. fett dargestellt werden sollen, und bei den Eigenschaften als Style zw_maybe_bold .
Wenn man mit Padding arbeiten, will muss kann man für den Style padding angeben, muss aber anscheinend manuell im jrxml leftpadding entfernen
<box topPadding="0" leftPadding="0" bottomPadding="0">
Bei mehreren conditional styles wird die Reihenfolge ausgewertet, alle zutreffende conditional style s werden genommen. Es gibt zwar einen Menüpunkt „Reihenfolge ändern“ bei rechtem Mausklick, der ist jedoch deaktiviert, man kann die Reihenfolge aber direkt im XML ändern oder per Drag&Drop.
Komischerweise hat ein conditional Style mit der komplexen Bedingung
$F{Name}.equals("Erträge")||$F{Name}.indexOf("Summe der (")>1||$F{Name}.equals("Finanzanlageergebnis und Zinsen")||$F{Name}.equals("Aufwendungen")||$F{Name}.indexOf("= Finanzergebnis")>-1||$F{Name}.indexOf("Ergebnis der gewöhnlichen")>-1||$F{Name}.indexOf("Außerordentliches Ergebnis")>-1||$F{Name}.indexOf("Jahresüberschuss")>-1
und dem Attribut bold nicht funktioniert, egal wie. Unterstrichten oder Farbänderung ging.
Lösung : den conditional style ganz löschen und statt dessen in der Textfield-Expression
($F{Name}.equals("Erträge")||$F{Name}.indexOf("Summe der (")>1||$F{Name}.equals("Finanzanlageergebnis und Zinsen")||$F{Name}.equals("Aufwendungen")||$F{Name}.indexOf("= Finanzergebnis")>-1||$F{Name}.indexOf("Ergebnis der gewöhnlichen")>-1||$F{Name}.indexOf("Außerordentliches Ergebnis")>-1||$F{Name}.indexOf("Jahresüberschuss")>-1)? "<b>"+$F{Name}+"</b>" :$F{Name}
und markup auf html
Leider kann man nicht einen conditionalstyle au f ein leere Zelle anwenden (z.B. Unterstrich), wenn man Excelexport macht, wird daraus einfach eine leere Zelle ohne Formatierung selbst wenn man Leerzeichen in der Text Expression hat.
Werden Variablen im conditional style verwendet, muss die evaluation time aktiviert werden über die property:
<property name=" net.sf.jasperreports.style.evaluation.time.enabled " value="true"/>
Ein Style kann auch mir einem anderen Style verknüpft werden, indem in dem entsprechenden Style unter dem Reiter „Style“ in dem Feld „Style“ das entsprechende Style ausgewählt wird. Somit können bestimmte Wiederholungen gespart werden.
![]() |
![]() ![]() |
Seite 69 / 121 Letzter Update: 25.11.2019 Impressum| Datenschutz |