Jasper reports 使用bean在列表上报告子报表

Jasper reports 使用bean在列表上报告子报表,jasper-reports,ireport,Jasper Reports,Ireport,我将bean对象用于数据源。数据源包含几个属性,其中一个是我试图使用的行项目列表。。ByBean看起来像这样: String name; String address; List<DetailRecord> records; 字符串名; 字符串地址; 列出记录; 我想让记录显示为报告中的细节行。我知道我需要设置子报表,但我不确定如何设置子报表以使用当前父数据项的records元素作为数据源。好的。我知道我需要做什么。对于子报表,我需要指定数据源 这样: new net.sf.j

我将bean对象用于数据源。数据源包含几个属性,其中一个是我试图使用的行项目列表。。ByBean看起来像这样:

String name;
String address;
List<DetailRecord> records;
字符串名;
字符串地址;
列出记录;

我想让记录显示为报告中的细节行。我知道我需要设置子报表,但我不确定如何设置子报表以使用当前父数据项的records元素作为数据源。

好的。我知道我需要做什么。对于子报表,我需要指定数据源 这样:

 new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{records})
这里有几个“抓住你了”让我卡住了一段时间:

  • 必须使用完整的类名(仅使用JRBeanCollectionDataSource)将不起作用
  • 在主报告中,必须将记录的类型设置为java.util.list(或相应的类)

由于父项中的records字段被默认为String,我的尝试一直在轰炸(没有可见的错误)。一旦我将其更改为list,事情就开始了。

另一种解决方案,它可能会帮助某些人:)

  • 从主报表中,对于子报表集-使用datasorce表达式

  • 数据源表达式集,如-newmysubrepclass($F{list}.get(counter))

  • MySubRepClass是子报表的bean数据源类(类似于DataSourcebean的集合),list(主报表中的属性)包含其实例

  • MySubRepClass应该实现JRDataSource

  • 格卢克