【问题标题】:Formatting field data color based on condition根据条件格式化字段数据颜色
【发布时间】:2010-03-29 06:42:55
【问题描述】:

我是 JasperReports 的新手。我正在使用 iReport 设计报告。我的要求是我有两个值(字段)x,y 进行比较。如果 x

请告诉我如何进行此操作以及在哪里进行验证。

【问题讨论】:

    标签: jasper-reports


    【解决方案1】:

    我知道这是一个老问题,但我假设 Jasper Reports 已经改变。您现在可以使用条件样式来完成此操作。

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

    所以在你的例子中,我会将主样式中的前景色设置为黑色,将条件样式中的条件表达式设置为

    $F{y} > $F{x}
    

    并且条件 Stlye 中的 Forecolor 为红色。然后在放置 y 字段的详细信息部分中,将样式设置为我们创建的样式。

    【讨论】:

      【解决方案2】:

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

      首先将您想要动态颜色的字段拖放两次。将第一个字段的背景颜色更改为黄色,将第二个字段的背景颜色更改为红色。现在右键单击黄色字段,单击属性,选择通用选项卡并在“表达式时打印”框中编写此代码:(确保将 myconditionalfield 替换为您的实际字段名称)$F{MyConditinalField}.intValue()>= 5 && $F{MyConditinalField}.intValue()=5 和 = 10?Boolean.TRUE:Boolean.FALSE 希望这会有所帮助。

      这不是完全您需要的,但可能足够接近以将您推向正确的方向。

      【讨论】:

      • 感谢 Tomislav,您的解释帮助我实现了我的要求。问候,钱杜
      【解决方案3】:

      偶数行和奇数行着色示例如下,希望对您有所帮助

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

      并为每一列分配样式,和我一起工作:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-26
        • 1970-01-01
        • 2013-07-22
        • 1970-01-01
        • 2013-06-10
        • 1970-01-01
        • 2012-02-03
        相关资源
        最近更新 更多