我正在使用JasperReports,我想为同一个POJO类的不同对象生成图表。 POJO类如下所示:
public class POJOClass{
private Double value;
private long timestamp; //constructor+getters
我想做什么?
在第一步中,我想从第一个对象的值填充图表。
然后我想添加下一页并进入第二步循环, 从数据库获取下一个对象并在第二页填写图表。
我使用相同的POJO,但两个对象都有不同的价值。问题是我只能填一页。
for (int i = 0; i < size; i++) {
List<POJOClass> pojoDescribtions= new ArrayList<>(); //add some result into List
JRDataSource jrDataSource = new JRBeanCollectionDataSource(pojoDescribtions);
parameterMap.put("datasource", jrDataSource);
jasperPrint = JasperFillManager.fillReport(report, parameterMap, jrDataSource);
}
它总是为第二步创建图表,我不知道如何获得第一步。
答案 0 :(得分:0)
我有类似的问题。
您可以返回JasperPrints列表,它可以正常工作。
List<List<POJOClass>> pojoList = new ArrayList<List<POJOClas>>();
Map<String, Object> parameterMap = new HashMap<>();
List<JasperPrint> jasperPrints = new ArrayList<JasperPrint>();
JRDataSource jrDataSource;
JasperPrint jasperPrint;
for(int i=0; i<pojoList.size(); i++){
jrDataSource = new JRBeanCollectionDataSource(pojoList.get(i));
parameterMap.put("dataSource", pojoList.get(i));
jasperPrint = JasperFillManager.fillReport(report, parameterMap, jrDataSource);
jasperPrints.add(jasperPrint);
}
最后你必须通过Exporter
简单地导出它