在iReport中有许多单独的 – 未完成的数据集
我正在使用iReport 2.0.4将一些数据从java应用程序导出到excel。
我的问题是我的子报告在顶级报告下进行分组,但我希望它们是离散报告。 目前它看起来像这样
订购
– 订单第1行
收
– 收到第1行
-Receipt Line 2
发票
– 发票第1行
– 发票第2行
订购
– 订单第2行
收
– 收到第1行
……..
我希望它在一个电子表格中成为3个单独的报告。 喜欢这个
订购
所有订单行
收
所有收据行
发票
所有发票行
目前,我将订单作为主报告,收据和发票作为子报告,放入详细信息带订单。
如果可能的话,获得此布局的最佳方式是什么?
- 第一种方式。 使用JasperReports API
您可以填写并编译三个单独的报告,然后使用JRPdfExporterParameter.JASPER_PRINT_LIST参数来构建单个报告,使用如下代码:
JasperReport ordersReport = JasperCompileManager.compileReport(srcOrdersReport); JasperPrint jpOrdersReport = JasperFillManager.fillReport(ordersReport, ordersParamsMap, ordersDataSource); JasperReport receiptsReport = JasperCompileManager.compileReport(srcReceiptsReport); JasperPrint jpReceiptsReport = JasperFillManager.fillReport(receiptsReport, receiptsParamsMap, receiptsDataSource); JasperReport invoicesReport = JasperCompileManager.compileReport(srcInvoicesReport); JasperPrint jpInvoicesReport = JasperFillManager.fillReport(invoicesReport, invoicesParamsMap, invoicesDataSource); List printList = new ArrayList (); printList.add(jpOrdersReport); printList.add(receiptsReport); printList.add(invoicesReport); JRExporter exporter = new JRPdfExporter(); exporter.setParameter(JRPdfExporterParameter.JASPER_PRINT_LIST, printList); exporter.setParameter(JRPdfExporterParameter.OUTPUT_STREAM, output); exporter.exportReport();
您可以查看此版本的JR版本 – 2.0.4以获取更多详细信息。
- 第二种方式。 使用多个数据集和列表组件
您可以将iReport 4.x版本中的多个数据集添加到单个报告中。 每个数据集都可以包含自己的查询。 列表组件可以使用自己的数据集。
在这个示例中(使用iReport 4.5.1构建)我已经为Title band添加了3个列表组件:
该报告的设计是:
结果将是(通过iReport预览):
在JasperReports 6.1.1 API中 , JRPdfExporterParameter.JASPER_PRINT_LIST
和JRPdfExporterParameter.OUTPUT_STREAM
已弃用我添加到JRPdfExporterParameter.OUTPUT_STREAM
K回答当前未弃用的metod:
“第一种方式。使用JasperReports API”
替换(不推荐的代码):
exporter.setParameter(JRPdfExporterParameter.JASPER_PRINT_LIST, printList); exporter.setParameter(JRPdfExporterParameter.OUTPUT_STREAM, output);
同
exporter.setExporterInput(SimpleExporterInput.getInstance(printList)); exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(output));