次のような比較を行いたい:
if <field> == 0 then "-"
JasperReportsを使用して構文を教えてもらえますか?
iReport(JasperReports)は、 三項演算子 を使用します。たとえば、次のロジックを考えます。
IF boolean condition THEN
execute true code
ELSE
execute false code
END IF
三項演算子を使用すると、これは次のようになります。
boolean condition ? execute true code : execute false code
次の式で変数を使用する場合:
$F{column_value}.intValue() == 42 ? "Life, Universe, Everything" : "Naught"
$F{column_value}
の整数値が42に等しい場合に限り、変数の値は「Life、Universe、Everything」になります。
状況が少し鈍くなるのは、ネストされた条件が必要な場合です。これらの場合、ネストされた条件を括弧で囲み、別の行に入れます。
condition1 ?
(condition2 ? true_code2 : false_code2) :
false_code1
したがって、それらの多くを行う必要がある場合:
condition1 ?
(condition2 ?
(condition3 ? true_code3 : false_code3) :
false_code2) :
(condition4 ? true_code4 : false_code4)
ireportの式の例:
(
$F{foo} == 0 ?
"Planned" :
$F{foo} == 1 ?
"Reserved" :
$F{foo} == 2 ?
"Canceled" :
$F{foo} == 3 ?
"Absent" :
$F{foo} == 4 ?
"Complete" :
"Unknown"
)
If-else条件を使用します。
フィールドのデータ型に注意してください!
<textFieldExpression class="Java.lang.String">
<![CDATA[
$F{CustomerName} == null ? '-' : $F{CustomerName}
]]>
</textFieldExpression>