-1

我尝试使用iReport中的默认REPORT_DATA_SOURCE参数将数据从数据源传递到我的子报表,以进一步传递到子报表中的另一个子报表。我可以在主报告的参数列表中看到REPORT_DATA_SOURCE作为参数,但是当我在子报告中设置连接类型并尝试将数据源表达式设置为以下内容时,我得到一个JRValidationException说参数不是成立。new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{REPORT_DATA_SOURC‌​E})

当这是一个内置参数时,知道为什么要这样做吗?

4

1 回答 1

2

你不应该做

new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{REPORT_DATA_SOURC‌​E})

一点也不。您应该能够简单地将数据源表达式设置为

$P{REPORT_DATA_SOURCE} 

$P{REPORT_DATA_SOURCE} 是 JRDataSource 的一个实例,它是 JasperReports 定义的所有不同类型的数据源实现的接口。在实际报告级别,它是 JRDataSource 的哪个具体实现并不重要。

也不是在您的代码中,您实际上试图将 JRDataSource 实例传递给 JRBeanCollectionDataSource 的构造函数以创建新实例。也不需要这样做。

于 2012-07-17T18:02:20.063 回答