web-dev-qa-db-ja.com

JasperReportsで他の比較を行う

次のような比較を行いたい:

if <field> == 0 then "-"

JasperReportsを使用して構文を教えてもらえますか?

22
Chi

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)
38
Dave Jarvis

ireportの式の例:

(
    $F{foo} == 0 ?
    "Planned" :
    $F{foo} == 1 ?
    "Reserved" :
    $F{foo} == 2 ?
    "Canceled" :
    $F{foo} == 3 ?
    "Absent" :
    $F{foo} == 4 ?
    "Complete" :
    "Unknown"
)
21
Michel

If-else条件を使用します。

  1. 顧客名がnullの場合は「-」(不在)を書き込み、そうでない場合は顧客名を書き込みます。

フィールドのデータ型に注意してください!

<textFieldExpression class="Java.lang.String">
  <![CDATA[
    $F{CustomerName} == null ? '-' : $F{CustomerName}
  ]]>
</textFieldExpression>
0
harun ugur