谁能向我解释如何将数据源添加到报告簿的 "part"?

Would anyone explain me how to add a data source to a "part" of a Report Book?

我正在尝试将数据源添加到报告簿的 "part"。或者我应该说将信息传递给 ReportBook 的 "part" 上的字段(或者为什么不传递给主报告)。我已经意识到,这并不是 MainReport 和 Subreport(s) 的处理方式。这是 jasper 6.2.0 的一个新概念,所以不完全是旧的已知子报表和传统的做事方式(或者是吗?不知道......,如果你不主要,请解释一下,谢谢).

我已经阅读了很多关于如何通过 jasper 参数传递数据源然后利用中引用的参数的示例(请参阅此处),但在工作时似乎并不相同附 "parts" 份报告书。

我可以提供更多信息,但本质上我需要的是将该数据源传递给该部分,该部分引用我名为 Content.jrxml 的另一份报告(或子报告),因此另一份报告可以print/render那些字段的正确信息。该报告包含字段,并且没有信息传递到那些字段,我将报告簿打印为 pdf。这些字段显示为空。

但是我能够成功传递参数只是通过传递字段值和一般的数据源,我遇到了问题

有没有人以前做过或处理过或知道可以为我指出解决方案的好方法example/tutorial?

请帮帮我,我不知道还能做什么:(

提前致谢!

对不起,我花了很长时间才post回来。我在 Theodor 之后找到了解决方案(Jasper API 主要作者给我一些见解),这就是它!

因此,对于 Jasper 报表引擎处理传递给报表的多个数据源,您必须考虑 2 个基本事项:

首先,对于要传递给报表的每个数据源,您都需要创建一个新实例。 Jasper 引擎使用每个数据源迭代其中的所有元素。当它到达下一页时,不会有任何数据、字段或信息可供读取和填写该特定页面上的字段。因此,信息不会显示 (null) 或 "blank",具体取决于报告模板配置。

最后,确保在填充报告时传递新的 JREmptyDataSource() 并将数据源实例作为参数传递,然后作为每个单独页面的子参数传递。像这样:

        jasperPrint = JasperFillManager.fillReport(jasperReport, jasperParameter,new JREmptyDataSource() );//new JREmptyDataSource()

这样主报表,或包装报表(书),不使用页面实例的任何数据源(当然如果不需要的话),每个页面都会获得一个数据源,通过参数。

最终,在运行时,本书的页面可以单独使用每个数据源,而不会相互影响。

让我知道这是否有意义?

谢谢