HashMap和Java Bean列表作为Jasper报告中的数据源

时间:2015-05-07 06:48:50

标签: java jasper-reports javabeans

我的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

0 个答案:

没有答案