【问题标题】:How to display a message if numeric value falls between two numbers? [duplicate]如果数值介于两个数字之间,如何显示消息? [复制]
【发布时间】:2019-06-27 01:52:21
【问题描述】:

JasperReport 问题:我有一个包含用户数据和已完成测试百分比值的表格。如果值在某个数字范围内,如何显示值的字符串消息。

Values between 0 and 59 = `Try again`
Values more than 59 = `Doing great`

我用过

Parameter1 $P{Value 1}
Class: java.lang.Long
Expression: $F{percentage}<59.00
Parameter1 $P{Value 2}
Class: java.lang.Long
Expression: $F{percentage}>59.01

使用以下表达式创建详细信息 [文本字段]:

IF($P{Value 1},`Try again`,`Doing great`)

报告状态:

值 1 无法解析为变量。

【问题讨论】:

  • 在两个数字之间?,您还没有指定如果低于 0 会发生什么...我发布了一个答案,您可以根据需要嵌套任意数量的三元表达式。
  • 其他尝试(工作解决方案):IF($F{percentage}
  • 不要使用IF,使用我已经回答的三元运算符。

标签: jasper-reports


【解决方案1】:

您不需要变量,只需在 textField 表达式中使用 ternary operator

$F{percentage}<=59?"Try again":"Doing great".

您的示例并不是真正的“介于”,而只是一个条件,但如果您还需要“介于”,则可以嵌套另一个三元运算符,如下例所示(百分比

<textField>
    <reportElement x="0" y="0" width="545" height="20" uuid="43ce93f2-5984-4127-a394-89348e83185b"/>
    <textElement verticalAlignment="Middle"/>
    <textFieldExpression><![CDATA[$F{percentage}<0?"Opps":$F{percentage}<=59?"Try again":"Doing great"]]></textFieldExpression>
</textField>

如果您也想相应地样式 textField,您可以使用条件样式,例如JasperStudio How to use conditional style?

【讨论】:

    猜你喜欢
    • 2015-08-10
    • 2013-08-18
    • 2023-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    • 1970-01-01
    相关资源
    最近更新 更多