在我的Java项目中,我有很多带有复杂SQL查询的JasperReports报告,包含很多参数.报告用于生成包含查询返回的数据的pdf文档,以各种方式分组和格式化.
现在我还需要直接导出查询结果(例如ResultSet,Map或csv文件,或类似的......).是否有可能要求JasperReports仅执行查询并返回结果而不是呈现pdf页面?
(注意:它与为报表呈现选择csv输出格式不同,因为此方法尝试将报表设计转换为csv文件...相反,我只想在报表中"重用"查询,还利用JR参数管理等...)
这是我从报告中生成pdf文档的Java代码:
JasperReport report = (JasperReport) JRLoader.loadObject(inStream);
JasperPrint jasperprint = JasperFillManager.fillReport(report, params, conn);
JRAbstractExporter exporter = new JRPdfExporter();
exporter.exportReport();
ByteArrayOutputStream os = (ByteArrayOutputStream) exporter.getParameter(JRExporterParameter.OUTPUT_STREAM);
byte[] formattedReportBytes = os.toByteArray();
return formattedReportBytes;
Run Code Online (Sandbox Code Playgroud)
我看到有一个叫做JRJdbcQueryExecuterJasperReports 的类...是否可以直接调用它而不是调用fillReport,以获取执行的SQL查询的ResultSet?
谢谢