【问题标题】:How to pass dataset from main report to subreport by iReport?如何通过 iReport 将数据集从主报表传递到子报表?
【发布时间】:2015-04-11 14:13:57
【问题描述】:

我想将数据集从主报表转移到 iReport 中的子报表。 在Odoo version7中,我是这样使用的。

<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 version7的所有报告都导致了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. 

子报表未从参数数据源获取字段。

应该怎么样?我不知道如何将主数据集传递给子报表。 如果你不介意,请一步一步解释。

PS。我使用 XPath 查询语言并为该数据集使用了 xml 模板文件。

【问题讨论】:

标签: java groovy jasper-reports odoo


【解决方案1】:

使用字段标签而不是参数标签。

这意味着,您可以替换:

<parameter name="param_obj" class="java.lang.Object" isForPrompting="false"/>

与:

<field name="param_obj" class="java.lang.Object" />

如果不行,可以在here.换一种方式试试

【讨论】:

  • 如果我这样改变,我得到这个错误:无法在类 com.nantic.jasperreports.JasperServer 中调用方法执行:com.nantic.jasperreports.LanguageTable 不能转换为 net.sf.jasperreports .engine.JRDataSource
  • 为此我有 7 个子报表。如上所示,我调用了每个子报表。我已经测试了该链接。感谢您的帮助!
  • 哦,我明白了。当更改字段标签时,发生 JRDataSource 错误,这是因为字段标签在我的测试项目中没问题。但是我在我的代码中使用了 JRBeanCollectionDataSource。
  • 我也没有得到 JRBeanCollectionDataSource。这有什么问题???? :'(
  • 能否提供您的服务器端(java)代码?
猜你喜欢
  • 2016-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多