我为我的报告添加了一个条件样式,用于替代行样式,如下所示:
<style name="tab_page_4">
<conditionalStyle>
<conditionExpression><![CDATA[$V{REPORT_COUNT}%2 == 1]]></conditionExpression>
<style forecolor="#FFFFFF" backcolor="#E7ECF4"/>
</conditionalStyle>
</style>
<reportElement key="textField" style="tab_page_4" mode="Opaque" x="11" y="5" width="94" height="15" forecolor="#00597C" backcolor="#FFFFFF" uuid="4ea6f9a0-d1c8-42f0-8ae4-7c9780fcfe3d"/>
当我生成报告时,自定义样式不起作用。
我忘了什么?
答案 0 :(得分:1)
使用条件样式时,删除元素中的所有样式数据非常重要。这意味着在这种情况下,应删除元素mode
,forecolor
和backcolor
,以便使用该样式。
可以设置例如使用条件为此元素显式设置forecolor时元素上的forecolor
。但通常所有着色都会以条件样式发生。
修改强>
正如Alex K指出的那样,确保条件样式也设置mode="Opaque"
:
<style name="tab_page_4" mode="Opaque">
....
</style>
或者如果使用条件样式:
<conditionalStyle>
<conditionExpression>...</conditionExpression>
<style mode="Opaque" .../>
</conditionalStyle>
答案 1 :(得分:1)
我按照@Alex K和@ Tobi6
的说明解决了一个错误我的ireport的代码现在是这样的:
<style name="tab_page_4">
<conditionalStyle>
<conditionExpression><![CDATA[$V{REPORT_COUNT}%2 == 1]]></conditionExpression>
<style mode="Opaque" forecolor="#00597C" backcolor="#E7ECF4"/>
</conditionalStyle>
<conditionalStyle>
<conditionExpression><![CDATA[$V{REPORT_COUNT}%2 == 0]]></conditionExpression>
<style mode="Opaque" forecolor="#00597C" backcolor="#FFFFFF"/>
</conditionalStyle>
</style>
在我的元素中:
<reportElement key="textField" style="tab_page_4" x="0" y="0" width="105" height="25" uuid="4ea6f9a0-d1c8-42f0-8ae4-7c9780fcfe3d"/>