ich einen Vergleich wie zu tun: mit JasperVergleich, wenn sonst in Jasper tun
if <field> == 0 then "-"
jemand kann mir die Syntax sagen?
ich einen Vergleich wie zu tun: mit JasperVergleich, wenn sonst in Jasper tun
if <field> == 0 then "-"
jemand kann mir die Syntax sagen?
iReport (JasperReports) verwendet eine Ternary operator.
IF boolean condition THEN
execute true code
ELSE
execute false code
END IF
Becomes:
boolean condition ? execute true code : execute false code
Zum Beispiel, wenn Sie eine Variable mit dem folgenden Ausdruck erstellen waren:
$F{column_value}.intValue() == 42 ? "Life, Universe, Everything" : "Naught"
dann wird der Wert der Variablen wäre „Das Leben, Universum, Alles "wenn und nur wenn der ganzzahlige Wert von $F{column_value}
gleich 42 ist.
Wo Dinge werden ein wenig stumpf, wenn Sie geschachtelte Bedingungen haben müssen. Für diese stellen die verschachtelten Bedingungen in Klammern und in einer separaten Zeile:
condition1 ?
(condition2 ? true_code2 : false_code2) :
false_code1
Also, wenn Sie viele von ihnen tun müssen:
condition1 ?
(condition2 ?
(condition3 ? true_code3 : false_code3) :
false_code2) :
(condition4 ? true_code4 : false_code4)
Beispiel Ausdruck in iReport:
(
$F{foo} == 0 ?
"Planned" :
$F{foo} == 1 ?
"Reserved" :
$F{foo} == 2 ?
"Canceled" :
$F{foo} == 3 ?
"Absent" :
$F{foo} == 4 ?
"Complete" :
"Unknown"
)
Sie können die if-else-Bedingung wie folgt in Jasper Report verwenden: Wenn der Kundenname Null ist, schreiben Sie '-' (apsent), andernfalls schreiben Sie Ihren Kundennamen. Achten Sie sorgfältig auf Ihren Felddatentyp!
<textFieldExpression class="java.lang.String"><![CDATA[$F{CustomerName} == null ? '-' : $F{CustomerName}]]></textFieldExpression>