我有一个包含计算变量的文本字段的标题带。文本字段的评估时间设置为报告,与变量resetType相同。现在我正在尝试使用条件样式设置此字段的背景颜色,但我不断收到一条错误消息,内容如下: $V{avg_perc}
Invalid expression: !Double.isNaN($V{avg_perc}) && $V{avg_perc} >= 0.8
我在列页脚中使用相同的条件样式执行完全相同的操作,并且即使我将此字段的评估时间也设置为报告,它也可以正常工作。
删除后!Double.isNaN($V{avg_perc})
我不再收到错误,但表达式仍然不起作用。当没有任何条件有效时,我的字段保持红色,这是基本颜色,无论哪个值$V{avg_perc}
都有。不过,它仍然可以在Column Footer中使用。这是我的风格:
<style name="avg_color" mode="Opaque" backcolor="#FF0000" pdfFontName="Helvetica-Bold">
<conditionalStyle>
<conditionExpression><![CDATA[$V{avg_perc} >= 0.8]]></conditionExpression>
<style backcolor="#008000"/>
</conditionalStyle>
<conditionalStyle>
<conditionExpression><![CDATA[$V{avg_perc} >= 0.6 && $V{avg_perc} < 0.8]]></conditionExpression>
<style backcolor="#FFCC00"/>
</conditionalStyle>
</style>
为此使用的字段和变量:
<field name="perc" class="java.lang.Double"/>
<variable name="avg_perc" class="java.lang.Double" calculation="Average">
<variableExpression><![CDATA[$F{perc}]]></variableExpression>
</variable>
知道如何让这个东西工作吗?我在 3.7.4 版中使用JasperReports和iReport。