2

这个问题是关于 Jasper Reports 的。

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

jasperPrint = JasperFillManager.fillReport(JRLoader.getInputStream(fileName), parameters, new JRBeanCollectionDataSource(aList));

并假设我正在使用的 PoJo 具有 List 类型的属性。

我怎样才能访问

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

例如在 Jasper XML 文件中:

...field name="?????" class="java.lang.String" ...

谢谢你的帮助 ...

4

1 回答 1

6

如果您的数据源具有 List 类型的字段(更一般地,java.util.Collection 类型),那么您可以使用 Table 或 List 或 Subreport 组件来遍历它们。使用其中一个元素并像这样设置其数据源:

new net.sf.jasperreports.engine.data.JRMapCollectionDataSource($F{myListField})

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

MongoDB经常出现这种情况。我在 JasperReports 中写了一篇关于Collections的文章。它使用 MongoDB 作为数据源……但它同样适用于您的 POJO 数据源。

于 2012-04-26T23:17:40.667 回答