带参数的Jasper条件样式

时间:2017-06-23 13:16:27

标签: jasper-reports

我想在帖子中设置样式,但它不起作用,我有一个错误:

 1. Parameter not found : choixImpression

但问题是我创建了变量,如果我在文本字段中添加它,它将会显示但是条件样式不起作用。

我的 jrxml

<jasperReport ...>
    <style name="Table 1_TH" mode="Opaque" backcolor="#2E6F98">
        <box>
            <pen lineWidth="0.5" lineColor="#000000"/>
        </box>
        <conditionalStyle>
            <conditionExpression><![CDATA[new Boolean($V{choixImpression}.toString().equals("MODERNE_NOIR_ET_BLANC"))]]></conditionExpression>
            <style backcolor="#99FF99"/>
        </conditionalStyle>
    </style>
    <parameter name="choixImpression" class="java.lang.String"/>
    <variable name="choixImpression" class="java.lang.String">
        <variableExpression><![CDATA[$P{choixImpression}]]></variableExpression>
    </variable>
    <title>
        <band height="198" splitType="Stretch">
            <textField>
                <reportElement style="Table 1_TH" mode="Opaque" x="201" y="63" width="100" height="20"/>
                <textElement/>
                <textFieldExpression class="java.lang.String"><![CDATA[$F{field}]]></textFieldExpression>
            </textField>
        </band>
    </title>
</jasperReport>

1 个答案:

答案 0 :(得分:0)

您引用参数而不是变量

如果真的应该使用变量,请使用$V{choixImpression}代替$P{choixImpression}

修改

你有一个括号问题......

您的代码尝试获取Boolean的{​​{1}}值,然后将此String值与指定的Boolean常量进行比较:

String

应该尝试这样的事情:

<conditionExpression><![CDATA[new Boolean($P{choixImpression}.toString()).equals("MODERNE_NOIR_ET_BLANC")]]></conditionExpression>

修改

我不知道,但事情的顺序是否重要?

您的参数在表达式...

之后声明