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 :(得分: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?