我的Jasper报告有一些字段,我使用数据源JRMapCollectionDataSource
通过HashMap传递值。现在还有另一项要求是将表添加到此报告中。
此表将填充Java bean列表。问题是如何将这两个不同的数据源传递给jasper repot。
public static void main(String[] args) {
Collection<Map<String, ?>> col = new ArrayList<>();
Map<String, Object> parameters = new HashMap<>();
DateFormat dateFormat = new SimpleDateFormat("MMM dd, YYYY");
Date date = new Date();
String format = dateFormat.format(date);
parameters.put("date", format);
parameters.put("sDate", new SimpleDateFormat("dd-MMM-YYYY").format(date));
parameters.put("participantName", "test user");
col.add(parameters);
TestBean bean = new TestBean();
bean.setA("a");
bean.setB("a");
bean.setC("a");
bean.setD("a");
List<TestBean> collection =new ArrayList<>();
collection.add(bean);
// need to send bean object to jasper report to populate table
try {
JasperReport compileReport = JasperCompileManager.compileReport("C:/test/development/jasper_reports/report1.jrxml");
JasperPrint jasperPrint = JasperFillManager.fillReport(compileReport, parameters, new JRMapCollectionDataSource(col));
JasperExportManager.exportReportToPdfFile(jasperPrint,"C:/test/development/jasper_reports/report1.pdf");
} catch (JRException e) {
e.printStackTrace();
}
}
请建议一个解决方案或替代方法。
谢谢, Hanumant