2010-03-29 53 views
11

我是JasperReports的新手。我正在使用iReport设计报告。我的要求是我有两个值(字段)x,y来比较。如果x < y那么y的数据颜色应该更改为'黑色'&如果更大,那么y的数据颜色应该更改为'红色'。基于条件格式化字段数据颜色

请告诉我如何在此&进行验证。

回答

7

有一个discussion在这一专题JasperForge论坛,这可能是最相关的部分:

首先拖放,你想拥有dyanamic颜色两次领域。将第一个字段的背景颜色更改为黄色,将第二个字段更改为红色。现在右键单击黄色字段,单击属性,选择常用选项卡,并在'打印时的表达式'框中写入此代码:(确保用您的实际字段名称替换myconditionalfield)$ F {MyConditinalField} .intValue()> = 5 & & $ F {MyConditinalField} .intValue()< 10?Boolean.TRUE:Boolean.FALSE // if> = 5 and < 10然后在上面显示黄色字段// Red字段代码在同一位置$ F {MyConditinalField } .intValue()> = 10?Boolean.TRUE:Boolean.FALSE希望这有助于。

这不正是需要什么,但可能会足够接近推你在正确的方向。

+1

由于托米斯拉夫,你的解释对我帮助很大达到我的要求。 Regards, chandu – Chandu 2010-04-14 09:15:19

8

我知道这是一个古老的问题,但我认为贾斯珀报告已经改变。您现在可以使用条件样式来完成此操作。

在iReport中,您将创建一个新样式并为其命名。您可以在样式中放置任何默认设置,例如字体,颜色,文字大小等。然后右键单击Stlye并选择添加条件样式。然后,在要应用它的字段或字段中,将样式设置为您创建的样式。

因此,在你的例子,我将设置前景色主stlye是黑色的,在条件样式的设置条件表达式是

$F{y} > $F{x} 

和红色前景色在有条件的Stlye。然后在放置y字段的细节部分将样式设置为我们创建的样式。

5

实例来着色偶数行奇数行是低于,希望帮助

<style name="BackgroundStyle" mode="Opaque" backcolor="#FFFFFF"> 

    <conditionalStyle> 
     <conditionExpression><![CDATA[Boolean.valueOf($V{REPORT_COUNT}.intValue() % 2 == 0)]]></conditionExpression> 
     <style backcolor="#CCFFCC"/> 
    </conditionalStyle> 
</style> 

,并指定风格每一列,跟我:)工作