iReport 参数未被字段通知
iReport parameter not being informed by field
我正在使用 iReport - 我第一次使用它 - 我正在尝试制作一个涉及将参数传递给子报表的报表。我无法让它工作,所以我做了以下测试:
- 我有一个大型查询,它从我的数据库中获取各种字段 - 当我预览报告时,这些字段被拉取并显示(一遍又一遍,等等,很多东西被拉取)。
- 我在主报表上创建了一个名为 "myparam" 的新参数。我将它的默认值设置为从我的数据库中成功提取的字段之一。
- 我创建了一个文本字段来显示此参数 - 其目的是回应已在我的报告中显示的字段。如果我能让它做到这一点,我想我能把它正确地 "plug in" 到我的子报告中。
问题是 - 当我预览时,我被要求给参数一个值 - 我选择默认值,它默认为我设置的字段,这意味着它现在应该回显那个字段(也就是我想要它回显那个字段)。但它并不回应那个领域。相反,它只是一遍又一遍地显示 null 。这是我正在谈论的截图
这是我的报告设置:
这是我在 xml:
中设置默认值的证明
<parameter name="myparam" class="java.lang.String">
<defaultValueExpression><![CDATA[$F{TCORDERID}]]> </defaultValueExpression>
</parameter>
这是错误生成的报告片段(又名 myparam 未正确填充)。
它们都是字符串
根据我对参数的理解,它们在创建时传递给 report/subreport。您已将参数的默认值设置为您的字段之一,生成报告时尚未填充该字段。
我建议添加一个简单的子报表(这是您无论如何都想使用参数的原因),删除主报表上的参数,然后将其添加到子报表(使用文本字段来显示它)。
现在,将参数添加到主报表中的子报表对象。 (这是在 iReport 的子报表属性部分下。
Name: 子报表中Parameter的名称。
表达式:将传递给子报表的主报表字段。
因此您的主报告将在子报告详细信息下包含以下内容:
<subreportParameter name="myparam">
<subreportParameterExpression><![CDATA[$F{TCORDERID}]]></subreportParameterExpression>
</subreportParameter>
然后是子报表中的参数:
<parameter name="myparam" class="java.lang.String">
<defaultValueExpression><![CDATA["No result"]]></defaultValueExpression>
</parameter>
我正在使用 iReport - 我第一次使用它 - 我正在尝试制作一个涉及将参数传递给子报表的报表。我无法让它工作,所以我做了以下测试:
- 我有一个大型查询,它从我的数据库中获取各种字段 - 当我预览报告时,这些字段被拉取并显示(一遍又一遍,等等,很多东西被拉取)。
- 我在主报表上创建了一个名为 "myparam" 的新参数。我将它的默认值设置为从我的数据库中成功提取的字段之一。
- 我创建了一个文本字段来显示此参数 - 其目的是回应已在我的报告中显示的字段。如果我能让它做到这一点,我想我能把它正确地 "plug in" 到我的子报告中。
问题是 - 当我预览时,我被要求给参数一个值 - 我选择默认值,它默认为我设置的字段,这意味着它现在应该回显那个字段(也就是我想要它回显那个字段)。但它并不回应那个领域。相反,它只是一遍又一遍地显示 null 。这是我正在谈论的截图
这是我的报告设置:
这是我在 xml:
中设置默认值的证明 <parameter name="myparam" class="java.lang.String">
<defaultValueExpression><![CDATA[$F{TCORDERID}]]> </defaultValueExpression>
</parameter>
这是错误生成的报告片段(又名 myparam 未正确填充)。
它们都是字符串
根据我对参数的理解,它们在创建时传递给 report/subreport。您已将参数的默认值设置为您的字段之一,生成报告时尚未填充该字段。
我建议添加一个简单的子报表(这是您无论如何都想使用参数的原因),删除主报表上的参数,然后将其添加到子报表(使用文本字段来显示它)。
现在,将参数添加到主报表中的子报表对象。 (这是在 iReport 的子报表属性部分下。
Name: 子报表中Parameter的名称。
表达式:将传递给子报表的主报表字段。
因此您的主报告将在子报告详细信息下包含以下内容:
<subreportParameter name="myparam">
<subreportParameterExpression><![CDATA[$F{TCORDERID}]]></subreportParameterExpression>
</subreportParameter>
然后是子报表中的参数:
<parameter name="myparam" class="java.lang.String">
<defaultValueExpression><![CDATA["No result"]]></defaultValueExpression>
</parameter>