0

感谢大家,感谢Alex K,我找到了原因。这可能是ireport 3.0的错误。外部样式标签不应包含颜色属性。我删除它,它运行良好。

==================================================== ============================== 我在JasperReports的报告中遇到了关于条件样式表达式的麻烦。iReport的版本是 3.0

我刚刚发现布尔表达式根本不起作用。


条件样式:

<style 
    name="old"
    mode="Opaque"
    **forecolor="#990033"**
>

    <conditionalStyle>
        <conditionExpression><![CDATA[$F{age}.intValue()>60?new Boolean(true):new Boolean(false)]]></conditionExpression>
        <style 
            name="old"
            isDefault="false"
            mode="Opaque"
            forecolor="#990033"
        >
        </style>
    </conditionalStyle>
</style>

文本字段表达式:

<textField isStretchWithOverflow="false" pattern="" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >
                <reportElement
                    style="old"
                    x="315"
                    y="0"
                    width="78"
                    height="14"
                    key="textField-3"/>
                <box></box>
                <textElement>
                    <font/>
                </textElement>
            <textFieldExpression   class="java.lang.Integer"><![CDATA[$F{age}]]></textFieldExpression>
            </textField>

结果是所有年龄都会变红,即使年龄小于 60 岁;

4

1 回答 1

0

感谢大家,感谢Alex K,我找到了原因。这可能是ireport 3.0的错误。外部样式标签不应包含颜色属性。我删除它,它运行良好。即:ireport 生成的 xml 代码是

<style 
    name="old"
    mode="Opaque"
    forecolor="#990033"
>

    <conditionalStyle>
        <conditionExpression><![CDATA[$F{age}.intValue()>60?new Boolean(true):new Boolean(false)]]></conditionExpression>
        <style 
            name="old"
            isDefault="false"
            mode="Opaque"
            forecolor="#990033"
        >
        </style>
    </conditionalStyle>
</style>

这样样式已经生效了。我删除了外部样式标签中设置的属性。所以运行良好的最终 xml 代码如下所示:

<style 
    name="old"
    mode="Opaque"   
>

    <conditionalStyle>
        <conditionExpression><![CDATA[$F{age}.intValue()>60?new Boolean(true):new Boolean(false)]]></conditionExpression>
        <style 
            name="old"
            isDefault="false"
            mode="Opaque"
            forecolor="#990033"
        >
        </style>
    </conditionalStyle>
</style>
于 2013-07-11T15:51:13.117 回答