我正在使用bean对象作为数据源。数据源包含几个属性 - 其中一个是我试图使用的行项列表。通过bean看起来像这样:
String name;
String address;
List<DetailRecord> records;
我希望将记录显示为报告中的详细信息行。我知道我需要设置子报告,但我不确定如何设置子报告以使用当前父数据项的记录元素作为数据源。
答案 0 :(得分:6)
好的..我想出了我需要做的事情。对于子报告,我需要指定数据源 这样:
new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{records})
这里有一些“Gotcha's”让我陷入了一段时间:
由于父级中的记录字段默认为String,我的尝试一直在轰炸(没有可见的错误)。一旦我将其更改为列表,事情就开始起作用了。
答案 1 :(得分:1)
另一个解决方案,它可能对某人有帮助:)。
,用于子报告集 - 使用datasorce表达式。
数据源表达式设置如 - new MySubRepClass($ F {list} .get(counter))。
MySubRepClass是子报表的bean数据源(类似于datasource bean),list(master报表中的属性)包含其实例。
MySubRepClass应该实现JRDataSource
格鲁克!