我是JasperReports的新手.我正在使用iReport设计报告.我的要求是我有两个值(字段)x,y来比较.如果x <y,则y的数据的颜色应改为"黑"&如果大于那么y的数据的颜色应改为"红".
请告诉我如何继续这个以及在哪里验证.
我知道这是一个老问题,但我认为Jasper Reports已经改变了.您现在可以使用条件样式完成此操作.
在iReport中,您可以创建一个新样式并为其命名.您可以在样式中添加任何默认设置,如字体,颜色,文本大小等.然后右键单击Stlye并选择Add Conditional Style.然后在要应用它的字段上将样式设置为您创建的样式.
因此,在您的示例中,我将主要stlye中的Forecolor设置为黑色,将条件样式中的条件表达式设置为
$F{y} > $F{x}
Run Code Online (Sandbox Code Playgroud)
和有条件的Stlye中的Forecolor为红色.然后在放置了y字段的详细信息部分中,将样式设置为我们创建的样式.
有一个讨论,在这个专题的JasperForge论坛,这可能是最相关的部分:
首先拖放您想要有两次动态颜色的字段.将第一个字段的背景颜色更改为黄色,将第二个字段更改为红色.现在右键单击黄色字段,单击属性,选择常用选项卡,然后在'打印表达式时'框中写入此代码:(确保将myconditionalfield替换为您的实际字段名称)$ F {MyConditinalField} .intValue()> = 5 && $ F {MyConditinalField} .intValue()<10?Boolean.TRUE:Boolean.FALSE // if> = 5且<10则显示黄色字段//红色字段代码位于同一位置,就像$ F {MyConditinalField}一样.intValue()> = 10?Boolean.TRUE:Boolean.FALSE希望这会有所帮助.
这不完全是你所需要的,但也可能足够接近,推动你朝着正确的方向前进.
示例为偶数行和奇数行着色,希望有所帮助
<style name="BackgroundStyle" mode="Opaque" backcolor="#FFFFFF">
<conditionalStyle>
<conditionExpression><![CDATA[Boolean.valueOf($V{REPORT_COUNT}.intValue() % 2 == 0)]]></conditionExpression>
<style backcolor="#CCFFCC"/>
</conditionalStyle>
</style>
Run Code Online (Sandbox Code Playgroud)
并为每个列分配样式,与我一起工作:)
| 归档时间: |
|
| 查看次数: |
26535 次 |
| 最近记录: |