【问题标题】:Print when expression ireport more than one condition当表达式 ireport 多个条件时打印
【发布时间】:2017-04-23 03:50:04
【问题描述】:

我可以在打印时设置多个条件吗?并且可以告诉语法。 例如,

(cb.flag = 'A' or cb.flag = 'B' or cb.flag = 'C') and cb.type 'O'

  • 我需要将 OR 条件与 AND 一起使用。

谢谢。

【问题讨论】:

    标签: jasper-reports ireport


    【解决方案1】:

    语法是 (condition) ? value1 : value2 代替 value1 和 value2 您可能有其他约束。

    这是一个使用 Java 约束的示例:

    (($F{ca} > 8) && ($F{ca} < 12) ? "near 10" : (($F{name}.charAt(0) == 'A') ? "A": "Not A" ))
    

    这些是 Java 表达式,因此您必须小心 ===

    现在是打印部分...

    到目前为止,您已经定义了一个变量variable1,它是一个字符串变量(可以是其他任何变量),并根据您定义的约束进行相应的行为。

    您只需将它从报告检查器的变量组拖到报告的区域(很可能是详细信息区域)。然后它变为$V{variable1} 并在您的区域中打印,无论约束条件如何。而已。

    【讨论】:

    • 语法是正确的,但我想把它放在“表达式时打印”。不应该是真实的虚假陈述吗?这个方程更多的是选择对吧?
    • Avialis :无论如何,谢谢。你的回答帮助我了解我的逻辑。我只是尝试做 (($F{flag}.equals('A'))||($F{flag}.equals('B'))||($F{flag}.equals('C' )))&&(!F${type}).equals('O') 但我只是想知道 (!$F{type}).equals 是否是 NOT EQUALS TO 的正确语法。
    • @Chi:太好了!我刚刚添加了几句话,介绍了为打印机获取价值所需执行的步骤。
    【解决方案2】:

    你可以使用 - ( $F{sex}.equals("0") ? "Male" : "Female")

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多