Jasper Reports 为子报告设置了一个不同的 java bean 集合数据适配器

Jasper Reports set a different java bean collection data adapter for a sub report

谁能告诉我如何为子报表设置不同的数据适配器?我似乎找不到使用不同连接的示例/教程。本质上,我正在创建一个基于 JavaBean 集合的报告,我正在努力迭代一个嵌套的对象集合,所以我想我会创建一个子报告,它使用不同的 javabean 集合数据适配器设置为 javabean 对象包含的 ListArray 对象在主要报告中(我希望这很清楚?)。

例如,我可能有对象 Supplier,它作为 JavaBean 集合数据适配器传递给主报表。 Supplier 对象有一个ListArray 成员Products (List prods = new ListArray() type thing)。我无法获得初始数据源来选择这个 'sub object' 所以我想我会创建一个子报告并将其作为不同的 javabean 集合数据适配器指向产品列表。

不过我似乎遇到了问题。最初我单独创建了报告(这里没有问题)并尝试将其添加到主报告中。该报告运行良好,但我不知道如何将连接属性设置为在将其添加为子报告时起作用?因此,我尝试在添加子报告时创建一个新报告。这似乎可行,但是当我去添加字段(数据集和查询对话框,javabeans 选项卡)时,我收到 'Class Not Found by com.jaspersoft.studio_6.0.3.final' 错误。

我似乎找不到任何有关如何设置子报告数据适配器的示例?

如果您能帮助我或指出相关教程/文档集,非常感谢。顺便说一下,我正在使用 eclipse 插件。

所以基本上您的主报告中应该有一个名为 "Products" 的字段。

您通过数据源表达式属性将它传递给您的子报表。例如

new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{Products})

您应该将连接表达式 属性 留空。

如果这不起作用,您应该检查您的 类 是否在 JasperStudio 的类路径中。您可以通过在项目属性中设置正确的构建路径来添加 类。