在我的Java项目中,我有很多包含复杂SQL查询和许多参数的JasperReports报表。这些报表用于生成以各种方式分组和格式化的数据返回的pdf文档。
现在,我还需要直接导出查询结果(例如ResultSet、Map或csv文件等)。是否可以要求JasperReports仅执行查询并返回结果,而不是呈现pdf页面?
(注意:这与选择csv输出格式来呈现报表不同,因为此方法尝试将报表设计转换为csv文件...相反,我只想“重用”报表中的查询,还要利用JR参数管理等...)
以下是我用于从报表生成pdf文档的Java代码:
我看到JasperReports中有一个名为JRJdbcQueryExecuter的类... 是否可以直接调用它而不是调用fillReport,以获取执行的SQL查询结果集?谢谢。
现在,我还需要直接导出查询结果(例如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;
我看到JasperReports中有一个名为JRJdbcQueryExecuter的类... 是否可以直接调用它而不是调用fillReport,以获取执行的SQL查询结果集?谢谢。