我想从主报告传输数据集到iReport中的子报表。 在Odoo版本7中,我使用的就是这样。如何通过iReport将主报表的数据集传递给子报表?
<parameter name="param_obj" class="java.lang.Object" isForPrompting="false"/>
<subreport>
<reportElement x="0" y="0" width="555" height="13"/><subreportParameter name="tl_cAsset">
<subreportParameterExpression><![CDATA[$P{tl_cAsset}]]> </subreportParameterExpression>
</subreportParameter>
<dataSourceExpression><![CDATA[$P{param_obj}]]></dataSourceExpression>
<subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "acc_balance_current_assets2.jasper"]]></subreportExpression>
</subreport>
现在我使用Odoo版本8和版本8的新jasper_reports模块于是我转移了一些jar文件从jasper_reports模块iReport的IDE。后来...... odoo版本7的所有报告都会导致Groovy错误。这就是为什么我在iReport中将Groovy语言改为Java语言的原因。但是...所有的子报表都不起作用,因为param_obj参数没有将数据集带到子报表中。
如果我改变dataSourceExpression从param_obj至$ P {REPORT_DATA_SOURCE} 是内置的参数是这样的:
<dataSourceExpression><![CDATA[$P{REPORT_DATA_SOURCE}]]></dataSourceExpression>
,我得到了这样的错误:
Failed to invoke method execute in class com.nantic.jasperreports.JasperServer: Field "Name-name" not found in data source.
报表没” t从参数数据源获取字段。
应该是怎么回事?我不知道如何将主数据集传递给子报表。 如果您不介意,请一步一步解释。
PS。我使用XPath查询语言并使用该数据集的xml模板文件。
的可能重复[如何将主报表数据源传递给子报表(JasperReports)?](http://stackoverflow.com/questions/8490563/how-to-pass-main-report-data-source-to-subreport-jasperreports) – GenericJon 2015-02-11 15:02:52