问题描述
这个问题是关于Jasper Reports的。
This question is about Jasper Reports.
假设我想使用 JRBeanCollectionDataSource
这样创建一个Jasper报告...
Suppose I want to create a Jasper Report using JRBeanCollectionDataSource
like this ...
jasperPrint = JasperFillManager.fillReport(JRLoader.getInputStream(fileName), parameters, new JRBeanCollectionDataSource(aList));
假设我使用的PoJo具有List类型的属性。
And suppose that the PoJo I am using has a Property of type List.
如何访问
- 此列表中的各个项目,
- 如果这个项目本身就是一个Pojo访问它在Jasper Report XML
文件中的属性。
例如在Jasper XML文件中:
For example in the Jasper XML file:
...field name="?????" class="java.lang.String" ...
感谢您的帮助...
推荐答案
如果您的数据源包含List类型的字段(更一般地说,类型为java.util.Collection),那么您可以使用用于迭代它们的表或列表或子报表组件。使用其中一个元素并设置其数据源如下:
If your data source has fields of type List (more generally, of type java.util.Collection), then you can use a Table or List or Subreport component to iterate through them. Use one of those elements and set its data source like this:
new net.sf.jasperreports.engine.data.JRMapCollectionDataSource($F{myListField})
您还可以使用静态方法添加自己的助手类来处理适当的这些字段。
You could also add your own helper class with a static method to deal with these fields appropriately.
MongoDB出现了很多。我写了一篇关于的文章。它使用MongoDB作为数据源...但它同样适用于您的POJO数据源。
This comes up a lot with MongoDB. I wrote an article on Collections in JasperReports. It uses MongoDB as the data source... but it would apply equally well to your POJO data source.
这篇关于贾斯珀报告与列表或Pojos集合的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!