【问题标题】:iReport parameter not being informed by field字段未通知 iReport 参数
【发布时间】:2016-04-07 23:24:26
【问题描述】:

我正在使用 iReport - 我是第一次使用它 - 我正在尝试制作一个包含将参数传递给子报表的报表。我无法让它工作,所以我做了以下测试:

  1. 我有一个大型查询,它从我的数据库中获取各种字段 - 当我预览报告时,这些字段被拉出并显示(一遍又一遍,等等,很多东西被拉出)。
  2. 我在主报表上创建了一个名为“myparam”的新参数。我将其设为从我的数据库中成功提取的字段之一。
  3. 我创建了一个文本字段来显示此参数 - 目的是它会回显已在我的报告中显示的字段。如果我能做到这一点,我想我可以让它正确地“插入”到我的子报表中。

问题是 - 当我预览时,我被要求给参数一个值 - 我选择默认值,它默认为我设置的字段,这意味着它现在应该回显该字段(也就是我希望它回显那个场地)。但它并没有呼应那个领域。相反,它只是一遍又一遍地显示 null 。这是我正在谈论的屏幕截图

这是我的报告的设置:

这是我在 xml 中设置了默认值的证明:

    <parameter name="myparam" class="java.lang.String">
    <defaultValueExpression><![CDATA[$F{TCORDERID}]]>  </defaultValueExpression>
</parameter>

这是错误生成的报告的 sn-p(也就是 myparam 没有正确填充)。

它们都是字符串

【问题讨论】:

  • 在赋值给参数时,字段$F{TCORDERID}的值为空。

标签: jasper-reports


【解决方案1】:

根据我对参数的理解,它们在创建时传递给报表/子报表。您已将参数的默认值设置为您的某个字段,在生成报告时该字段尚未填充。

我建议添加一个简单的子报表(这就是您要使用参数的原因),删除主报表上的参数,然后将其添加到子报表中(使用文本字段显示它)。

现在,将参数添加到主报表中的子报表对象。 (这在 iReport 的子报表属性部分下。

名称:子报表中参数的名称。

表达式:主报告中将传递给子报告的字段。

因此,您的主报告将在子报告详细信息下包含以下内容:

<subreportParameter name="myparam">
  <subreportParameterExpression><![CDATA[$F{TCORDERID}]]></subreportParameterExpression>
</subreportParameter>

然后是子报表中的参数:

<parameter name="myparam" class="java.lang.String">
    <defaultValueExpression><![CDATA["No result"]]></defaultValueExpression>
</parameter>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-27
    • 1970-01-01
    • 2019-01-15
    • 1970-01-01
    相关资源
    最近更新 更多