如何在 JasperReports 中使用条件 TextField?

Posted

技术标签:

【中文标题】如何在 JasperReports 中使用条件 TextField?【英文标题】:How can I use a conditional TextField in JasperReports? 【发布时间】:2011-02-18 16:10:49 【问题描述】:

我想要一对取决于值的 TextField。并且“y”值应根据空白进行调整。

当值为"0"时,我想隐藏TextField。

即如果参数red 等于"0" 并且蓝色值向上移动,我想隐藏staticTexttextField,在下面的jrxml 代码中:

  <staticText>
    <reportElement x="100" y="30"  />
    <text><![CDATA[Red items:]]></text>
  </staticText>
  <textField>
    <reportElement x="200" y="30"  />
    <textFieldExpression>
      <![CDATA[$Pred]]>
    </textFieldExpression>
  </textField>

  <staticText>
    <reportElement x="100" y="60"  />
    <text><![CDATA[Blue items:]]></text>
  </staticText>
  <textField>
    <reportElement x="200" y="60"  />
    <textFieldExpression>
      <![CDATA[$Pblue]]>
    </textFieldExpression>
  </textField>

输出示例:

//if blue = 3 and red = 2    if blue = 3 and red = 0    if blue = 0 and red = 2
    Red items: 2               Blue items: 3              Red items: 2
    Blue items: 3    

这些文本字段将放置在我的报告的末尾。我该怎么做?

【问题讨论】:

【参考方案1】:
<reportElement ...>
    <printWhenExpression><![CDATA[$Pred == 0]]></printWhenExpression>
</reportElement>

您可以使用 iReport 以令人愉悦的 UI 对其进行修改。

【讨论】:

它对我不起作用,我收到此错误:')' 预期值 = (java.lang.Boolean)($red == 0); //$JR_EXPR_ID=12$ 我现在已经扩展了我的问题。我不知道这在 JasperReports 中是否可行。 好吧,只需将&lt;printWhenExpression&gt; 也添加到其他字段中,并具有适当的条件【参考方案2】:

这样,不,我不确定这是否可能。

有一个名为Remove Link When Blank 的选项,但它仅在您想删除整行时才有效。在这里,您要删除特定列中的一行。

在这种情况下,我建议使用crosstab 或 CrossTables 功能。

给列组 X 的值。(假设 X 是列号) 并给行组颜色字段的值,从这里您可以动态更改标签,如下所示:

$Fcolor==null?"": ($Fcolor.equals("RED")?"Red Items":"Blue Items")

【讨论】:

【参考方案3】:

你可以这样使用

Declare RED as [class="java.lang.Number"]

打印时

$Pred.intValue() == 0 ? null : $Pred.intValue()

并使用

启用字段的 null 选项时为空
textField isBlankWhenNull="true">               
<reportElement x="100" y="30"   isRemoveLineWhenBlank="true"/>

【讨论】:

以上是关于如何在 JasperReports 中使用条件 TextField?的主要内容,如果未能解决你的问题,请参考以下文章

JasperReports:如何在jsp页面中调用报表

ireport5.1.0和jasperreports5.1.1怎么集成

如何使用iReport将其替换为另一个报告后,在JasperReports Server中恢复旧版本的报告?

如何使用 JasperReports 6.7.0 在折线图上自定义轴?

JasperReports 服务器:如何使用 url 将报告导出为 html 文件

如何使用 commons-logging 库解决 jasperreports 中的依赖收敛错误?