【问题标题】:How can I create a report (jasperreport) from a List<MyObject>? [duplicate]如何从 List<MyObject> 创建报告 (jasperreport)? [复制]
【发布时间】:2014-07-31 18:08:14
【问题描述】:

我已经创建了报告 (report1.jrxml) 并复制了它 (report1.jasper),我只想用这个列表的信息填充它:List&lt;MyObject&gt;

public class MyObject {
    private String name;
    private int phone;
    //getters & setters...
}

列表的数据已从数据库中检索,因此我想使用列表的信息来填充报告。

我想创建一个 pdf。

请帮帮我。

【问题讨论】:

标签: java jasper-reports


【解决方案1】:

相关代码如下:

List<MyObject> list//list contains the data used to fill report
JasperDesign design=JRXmlLoader.load(file);//file is your .jrxml file or .jasper file
JasperReport report==JasperCompileManager.compileReport(design);
JasperPrint print=JasperFillManager.fillReport(report,parameter,new JRBeanCollectionDataSource(list));

现在您可以使用print 对象将报告导出为所需格式。 希望对您有所帮助。

【讨论】:

    【解决方案2】:

    如果您询问将集合从 java 代码传递到 jasperreports,最好的方法是使用:

    net.sf.jasperreports.engine.data.JRBeanCollectionDataSource
    

    编辑:

    完整示例:

    HashMap<String, Object> parameters = new HashMap<>();
    List<MyObject> objects = new ArrayList<>();
    JRBeanCollectionDataSource jDataSource = new JRBeanCollectionDataSource(objects);
    
    // Load report
    ClassPathResource report = new ClassPathResource("/myReport.jasper");
    InputStream input = report.getInputStream();
    
    // Fill the report with data
    JasperReport jasperReport = (JasperReport) JRLoader.loadObject(input);
    JasperPrint print = JasperFillManager.fillReport(jasperReport, parameters, jDataSource);
    
    // Export the report to the output
    ByteArrayOutputStream output = new ByteArrayOutputStream()
    JRExporter exporter = new JRPdfExporter();
    
    exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
    exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, output);
    exporter.exportReport();
    
    // Return the byte[]
    return output.toByteArray();
    

    【讨论】:

    猜你喜欢
    • 2016-02-03
    • 2012-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2019-06-05
    相关资源
    最近更新 更多