Jasper Ireport具有自定义样式的替代行颜色

时间:2016-05-30 08:25:38

标签: jasper-reports

我为我的报告添加了一个条件样式,用于替代行样式,如下所示:

<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"/>

当我生成报告时,自定义样式不起作用。

我忘了什么?

2 个答案:

答案 0 :(得分:1)

使用条件样式时,删除元素中的所有样式数据非常重要。这意味着在这种情况下,应删除元素modeforecolorbackcolor,以便使用该样式。

可以设置例如使用条件为此元素显式设置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"/>