iReport参数未被字段通知

时间:2015-05-06 13:23:04

标签: jasper-reports

我正在使用iReport - 我第一次使用它 - 我正在尝试制作一个报告,其中涉及将参数传递给子报告。我无法让它工作,所以我做了以下测试:

  1. 我有一个大型查询从我的数据库中抓取各种字段 - 当我预览报表时,这些字段被拉出并显示(一遍又一遍,等等,很多东西都被拉出来)。
  2. 我在主报告上创建了一个名为" myparam"的新参数。我将其默认值设置为从我的数据库中成功提取的字段之一。
  3. 我创建了一个显示此参数的文本字段 - 意图是它将回显我的报告中已显示的字段。如果我可以做到这一点,我想我可以正确地把它弄到"插入"到我的子报告。
  4. 问题是 - 当我预览时,我被要求给参数一个值 - 我选择默认值,它默认为我设置的字段,这意味着它现在应该回显该字段(我想要它回应那个领域)。但它并没有回应那个领域。相反,它只是一遍又一遍地显示null。这是我所谈论的截图

    以下是我的报告设置:

    The setup for my report

    以下是我在xml中设置默认值的证据:

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

    以下是生成错误的报告片段(也称myparam未正确填充)。

    The resulting report which is not correct

    他们两个方面

1 个答案:

答案 0 :(得分:1)

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

我建议添加一个简单的子报表(这也是你想要使用参数的原因),删除主报表上的参数,并将其添加到子报表(带有文本字段以显示它)。

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

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

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

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

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

然后是子报告中的参数:

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