如果数值介于两个数字之间,如何显示消息?

时间:2019-06-26 12:38:33

标签: jasper-reports

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不能解析为变量。

1 个答案:

答案 0 :(得分:0)

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

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

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

<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>

如果您还希望相应地设置样式,则可以使用条件样式,例如,JasperStudio How to use conditional style?