In diesem Abschnitt wird anhand eines Beispiels aufgezeigt, dass Textfelder höher priorisiert sind als Conditional Styles und welche Fallstricke dadurch entstehen können. Das Beispiel:
Einem Textfeld wird ein Style zugeordnet, der einen Conditional Style enthält, welcher bei erfüllter Bedingung den Text fett und kursiv darstellen soll:
JasperReports-Handbuch cond style6.png
Im Textfeld selbst sind beide Einstellungen deaktiviert:
JasperReports-Handbuch cond style7.png
Das Ergebnis ist, dass im Bericht der Text dieses Feldes zwar kursiv, aber nicht fett dargestellt wird. Zum Testen werden weitere Formatierungseinstellungen im Conditional Style hinzugefügt, beispielsweise Unter- und Durchstreichen und auch dies wird umgesetzt. Die Bedingung des Conditional Styles ist also erfüllt.
Der Grund für dieses Verhalten ist nur mit Blick auf den Source-Code ersichtlich:
JasperReports-Handbuch cond style8.png
Dort findet sich in den Einstellungen des Textfeldes isBold=“false“. Dieses Fragment ist dadurch entstanden, dass in der Designoberfläche von JasperSoft Studio für das Textfeld die Einstellung bold einmal aktiviert und dann wieder deaktiviert wurde. Im Source-Code wird nach dem ersten Aktivieren isBold=“true“ hinzugefügt und beim Deaktiveren nicht wieder komplett entfernt, sondern auf false gesetzt. Da die Einstellungen im Textfeld selbst höher priorisiert werden, als jene der Conditional Styles, wird der Fettdruck des Conditional Styles nicht umgesetzt. Löscht man im Source-Code das Fragment isBold=“false“, dann wird der im Conditional Style definierte Fettdruck umgesetzt.