贾斯珀报告与列表或Pojos集合

Mar*_*ark 2 jasper-reports

这个问题是关于Jasper Reports的.

假设我想用JRBeanCollectionDataSource这样的方式创建一个Jasper Report ...

jasperPrint = JasperFillManager.fillReport(JRLoader.getInputStream(fileName), parameters, new JRBeanCollectionDataSource(aList));
Run Code Online (Sandbox Code Playgroud)

并假设我使用的PoJo具有List类型的属性.

我该如何访问

  1. 此列表中的各个项目,
  2. 如果这个项本身就是一个Pojo访问它的Jasper Report XML文件中的属性.

例如,在Jasper XML文件中:

...field name="?????" class="java.lang.String" ...
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助 ...

mda*_*man 6

如果您的数据源具有List类型的字段(更一般地,类型为java.util.Collection),则可以使用Table或List或Subreport组件来迭代它们.使用其中一个元素并设置其数据源,如下所示:

new net.sf.jasperreports.engine.data.JRMapCollectionDataSource($F{myListField})
Run Code Online (Sandbox Code Playgroud)

您还可以使用静态方法添加自己的帮助程序类,以适当地处理这些字段.

这与MongoDB有很多关系.我在JasperReports上写了一篇关于集合的文章.它使用MongoDB作为数据源......但它同样适用于您的POJO数据源.