=============================================== ================================= 我在使用 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岁,所有年龄都会变红;
答案 0 :(得分: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>
这样风格已经有效。我删除外部样式标记中的属性集。 所以最终的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>