【发布时间】:2010-03-29 06:42:55
【问题描述】:
我是 JasperReports 的新手。我正在使用 iReport 设计报告。我的要求是我有两个值(字段)x,y 进行比较。如果 x
请告诉我如何进行此操作以及在哪里进行验证。
【问题讨论】:
标签: jasper-reports
我是 JasperReports 的新手。我正在使用 iReport 设计报告。我的要求是我有两个值(字段)x,y 进行比较。如果 x
请告诉我如何进行此操作以及在哪里进行验证。
【问题讨论】:
标签: jasper-reports
我知道这是一个老问题,但我假设 Jasper Reports 已经改变。您现在可以使用条件样式来完成此操作。
在 iReport 中,您可以创建一个新样式并为其命名。您可以在样式中放置任何默认设置,例如字体、颜色、文本大小等。然后右键单击 Stlye 并选择添加条件样式。然后在要应用它的一个或多个字段上,将样式设置为您创建的样式。
所以在你的例子中,我会将主样式中的前景色设置为黑色,将条件样式中的条件表达式设置为
$F{y} > $F{x}
并且条件 Stlye 中的 Forecolor 为红色。然后在放置 y 字段的详细信息部分中,将样式设置为我们创建的样式。
【讨论】:
在 JasperForge 论坛上有一个关于该主题的 discussion,这可能是最相关的部分:
首先将您想要动态颜色的字段拖放两次。将第一个字段的背景颜色更改为黄色,将第二个字段的背景颜色更改为红色。现在右键单击黄色字段,单击属性,选择通用选项卡并在“表达式时打印”框中编写此代码:(确保将 myconditionalfield 替换为您的实际字段名称)$F{MyConditinalField}.intValue()>= 5 && $F{MyConditinalField}.intValue()=5 和 = 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>
并为每一列分配样式,和我一起工作:)
【讨论】: