在条件样式中使用变量(Using variables in Conditional Style)

2019-06-27 19:08发布

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

Invalid expression: !Double.isNaN($V{avg_perc}) && $V{avg_perc} >= 0.8

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

取出后!Double.isNaN($V{avg_perc})我没有得到一个错误了,但表达仍然无法正常工作。 我场一直显示为红色这是基本的颜色,当任何条件是有效的,无论哪个值$V{avg_perc}了。 它仍然工作在列脚注 ,虽然。 这是我的风格:

<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的和。

Answer 1:

我终于找到了我的问题的解决方案。 添加

<property name="net.sf.jasperreports.style.evaluation.time.enabled" value="true"/>

在报告级别导致在指元件被评估的时刻要执行的条件样式 。 见这个答案在JasperSoft这个社区以获取更多信息。



Answer 2:

在您看来iREPORT分享到人人设计师。

点击字段和在属性面板:标记=选择样式化

右键单击田间。 编辑表达式:

($F{fila1}.equals("c") ? "<style forecolor='red'>"+ $F{fila1}+"</style>" : $F{fila1})

或XML

<textFieldExpression><![CDATA[($F{fila1}.equals("c") ? "<style forecolor='red'>"+ $F{fila1}+"</style>" : $F{fila1})]]></textFieldExpression>


Answer 3:

修改根据您的需要验证码

<style name="alternateStyle" fontName="Arial">
    <conditionalStyle>
        <conditionExpression><![CDATA[new Boolean($V{AMOUNT}.intValue() == 0)]]></conditionExpression>
        <style mode="Opaque" backcolor="#FF0000" isBold="true"/>
    </conditionalStyle>
</style>

而且还指此链接: 链接



文章来源: Using variables in Conditional Style