在 JasperReports 中进行比较 if else

发布于 2024-10-07 08:35:24 字数 113 浏览 7 评论 0原文

我想做一个比较,例如:

if <field> == 0 then "-"

有人可以告诉我使用 JasperReports 的语法吗?

I want to do a comparison such as:

if <field> == 0 then "-"

Can somebody tell me the syntax using JasperReports?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

梦归所梦 2024-10-14 08:35:24

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"

则变量的值将为“Life, Universe, Everything”当且仅当 $F{column_value} 等于 42。

当您必须有嵌套条件时,事情会变得有点迟钝。对于这些,请将嵌套条件放在括号中并放在单独的行上:

condition1 ?
  (condition2 ? true_code2 : false_code2) :
  false_code1

因此,当您需要执行其中多个条件时:

condition1 ?
  (condition2 ?
    (condition3 ? true_code3 : false_code3) :
    false_code2) :
  (condition4 ? true_code4 : false_code4)

iReport (JasperReports) uses a Ternary operator. For example, consider the following logic:

IF boolean condition THEN
  execute true code
ELSE
  execute false code
END IF

Using a ternary operator, this becomes:

boolean condition ? execute true code : execute false code

When using a variable with the following expression:

$F{column_value}.intValue() == 42 ? "Life, Universe, Everything" : "Naught"

Then the variable's value would be "Life, Universe, Everything" if, and only if, the integer value of $F{column_value} is equal to 42.

Where things get a little obtuse is when you have to have nested conditions. For these, put the nested conditions in parenthesis and on a separate line:

condition1 ?
  (condition2 ? true_code2 : false_code2) :
  false_code1

So when you need to do many of them:

condition1 ?
  (condition2 ?
    (condition3 ? true_code3 : false_code3) :
    false_code2) :
  (condition4 ? true_code4 : false_code4)
半葬歌 2024-10-14 08:35:24

ireport 中的表达式示例:

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

example of expression in ireport:

(
    $F{foo} == 0 ?
    "Planned" :
    $F{foo} == 1 ?
    "Reserved" :
    $F{foo} == 2 ?
    "Canceled" :
    $F{foo} == 3 ?
    "Absent" :
    $F{foo} == 4 ?
    "Complete" :
    "Unknown"
)
舟遥客 2024-10-14 08:35:24

使用 if-else 条件:

  1. 如果客户名称为空,则写“-”(不存在),否则写客户名称。

请注意您的字段数据类型!

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

Use if-else condition:

  1. if customer name is null write '-' (absent), else write customer name.

Be careful of your field data type!

<textFieldExpression class="java.lang.String">
  <![CDATA[
    $F{CustomerName} == null ? '-' : $F{CustomerName}
  ]]>
</textFieldExpression>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文