在条件样式中使用变量

Yin*_*ang 6 jasper-reports ireport

我有一个标题带,其中包含一个包含计算变量文本字段.该文本字段evaluationTime设为报告,同为变量resetType.现在,我正在尝试使用条件样式设置此字段的背景颜色,但我不断收到一条错误消息,说明: $V{avg_perc}

Invalid expression: !Double.isNaN($V{avg_perc}) && $V{avg_perc} >= 0.8
Run Code Online (Sandbox Code Playgroud)

我在做同样的事情用相同的条件样式列脚注和它的作品没有任何问题,即使我设置evaluationTime对这一领域的报告了.

删除后!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>
Run Code Online (Sandbox Code Playgroud)

使用的字段和变量:

<field name="perc" class="java.lang.Double"/>
<variable name="avg_perc" class="java.lang.Double" calculation="Average">
    <variableExpression><![CDATA[$F{perc}]]></variableExpression>
</variable>
Run Code Online (Sandbox Code Playgroud)

知道如何让这个东西工作吗?我在3.7.4版本中使用JasperReportsiReport.

Yin*_*ang 9

我终于找到了解决问题的方法.添加

<property name="net.sf.jasperreports.style.evaluation.time.enabled" value="true"/>
Run Code Online (Sandbox Code Playgroud)

在报告级别导致在评估元素时执行条件样式.有关详细信息,请参阅Jaspersoft社区中的此答案.