chcę zrobić porównanie takie jak:robi porównanie czy innego w JasperReports
if <field> == 0 then "-"
Czy ktoś mógłby mi powiedzieć składnię przy użyciu JasperReports?
chcę zrobić porównanie takie jak:robi porównanie czy innego w JasperReports
if <field> == 0 then "-"
Czy ktoś mógłby mi powiedzieć składnię przy użyciu JasperReports?
iReport (JasperReports) używa numeru Ternary operator.
IF boolean condition THEN
execute true code
ELSE
execute false code
END IF
Staje:
boolean condition ? execute true code : execute false code
Na przykład, jeśli były, aby utworzyć zmienną z następującym wyrażeniem:
$F{column_value}.intValue() == 42 ? "Life, Universe, Everything" : "Naught"
Następnie wartość zmiennej będzie „Życie, Wszechświat, Wszystko "if i tylko wtedy, gdy liczba całkowita wynosząca $F{column_value}
jest równa 42.
gdzie rzeczy stają się trochę rozwlekłe, gdy musisz mieć warunki zagnieżdżone. Dla nich umieścić zagnieżdżone warunki w nawiasach i w osobnej linii:
condition1 ?
(condition2 ? true_code2 : false_code2) :
false_code1
Więc kiedy trzeba zrobić wiele z nich:
condition1 ?
(condition2 ?
(condition3 ? true_code3 : false_code3) :
false_code2) :
(condition4 ? true_code4 : false_code4)
przykład ekspresji w iReport:
(
$F{foo} == 0 ?
"Planned" :
$F{foo} == 1 ?
"Reserved" :
$F{foo} == 2 ?
"Canceled" :
$F{foo} == 3 ?
"Absent" :
$F{foo} == 4 ?
"Complete" :
"Unknown"
)
Możesz użyć warunku-else takiego jak ten w Jasper Report: jeśli nazwa klienta jest pusta napisz "-" (apsent) jeszcze napisz swoją nazwę klienta. Zachowaj ostrożność dla swojego typu danych pola!
<textFieldExpression class="java.lang.String"><![CDATA[$F{CustomerName} == null ? '-' : $F{CustomerName}]]></textFieldExpression>