我正在使用iReport - 我第一次使用它 - 我正在尝试制作一个报告,其中涉及将参数传递给子报告。我无法让它工作,所以我做了以下测试:
问题是 - 当我预览时,我被要求给参数一个值 - 我选择默认值,它默认为我设置的字段,这意味着它现在应该回显该字段(我想要它回应那个领域)。但它并没有回应那个领域。相反,它只是一遍又一遍地显示null。这是我所谈论的截图
以下是我的报告设置:
以下是我在xml中设置默认值的证据:
<parameter name="myparam" class="java.lang.String">
<defaultValueExpression><![CDATA[$F{TCORDERID}]]> </defaultValueExpression>
</parameter>
以下是生成错误的报告片段(也称myparam未正确填充)。
他们两个方面
答案 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>