【发布时间】:2012-08-29 23:30:43
【问题描述】:
我想将数据源从主报表传递到子报表。
所以我只需将 iReport 中的 Connection Type 更改为 Use a datasource expression 并传递 REPORT_DATA_SOURCE 参数。
报告应生成数百个网站。每页计算 1 个子报表。
子报表只需要数据源的一些行,所以它在查询中使用了他自己的WHERE。
问题是:
将连接类型从连接到数据源更改后,报告仅显示第一个站点。似乎子报表将带有 WHERE 语句的主报表的数据集更改为仅一行。
我已经看到了解决方案 http://www.billmann.de/2011/12/01/jasperreports-subreport-datasource/ 但是当我尝试这个时,我得到一个错误:
java.lang.ClassCastException:net.sf.jasperreports.engine.JRResultSetDataSource 无法转换为 net.sf.jasperreports.engine.data.JRBeanCollectionDataSource
还有其他方法可以克隆数据源吗?或者我可以在子报表中设置一些东西,这样数据源就不会改变吗?
如果我使用 Connection 而不是 DataSource,报表可以工作,但它会呈现 5 分钟或更长时间,因为每个子报表调用都会生成自己的数据集。
【问题讨论】:
标签: java jasper-reports ireport