多亏了每个人,多亏了Alex,我得到的cause.this可能是iReport3.0的bug。外部样式标记不应包含颜色属性。我把它删除了,效果很好。
================================================================================ --我遇到了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表达式:
<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岁;
发布于 2013-07-11 15:51:13
多亏了每个人,多亏了Alex,我得到的cause.this可能是iReport3.0的bug。外部样式标记不应包含颜色属性。我把它删除了,效果很好。也就是说: 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>这样,样式已经生效,.I删除外部样式标记中设置的属性。因此,工作良好的最后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>https://stackoverflow.com/questions/17575316
复制相似问题