我是JasperReports的新手。我正在使用iReport设计报告。我的要求是我有两个值(字段)x,y来比较。如果x <然后,y的数据颜色应更改为“黑色”和“黑色”。如果更大,则y的数据颜色应更改为“红色”。
请告诉我如何继续这个&amp;在哪里验证。
答案 0 :(得分:9)
我知道这是一个老问题,但我认为Jasper Reports已经改变了。您现在可以使用条件样式完成此操作。
在iReport中,您可以创建一个新样式并为其命名。您可以在样式中添加任何默认设置,如字体,颜色,文本大小等。然后右键单击Stlye并选择Add Conditional Style。然后在要应用它的字段上将样式设置为您创建的样式。
因此,在您的示例中,我将主要stlye中的Forecolor设置为黑色,将条件样式中的条件表达式设置为
$F{y} > $F{x}
和有条件的Stlye中的Forecolor为红色。然后在放置了y字段的详细信息部分中,将样式设置为我们创建的样式。
答案 1 :(得分:7)
在JasperForge论坛上有关于该主题的discussion,这可能是最相关的部分:
首先拖放您想要有两次动态颜色的字段。将第一个字段的背景颜色更改为黄色,将第二个字段更改为红色。现在右键单击黄色字段,单击属性,选择常用选项卡,然后在'打印表达式时'框中写入此代码:(确保将myconditionalfield替换为您的实际字段名称)$ F {MyConditinalField} .intValue()&gt; = 5 &安培;&安培; $ F {MyConditinalField} .intValue()&lt; 10?Boolean.TRUE:Boolean.FALSE // if&gt; = 5和&lt; 10然后显示黄色字段//红色字段代码在同一个地方就像$ F一样{MyConditinalField} .intValue()&gt; = 10?Boolean.TRUE:Boolean.FALSE希望这会有所帮助。
它不是完全你需要什么,但可能足够接近,可以推动你朝着正确的方向前进。
答案 2 :(得分: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>
并为每个专栏指定样式,与我合作:)