в моем проекте Java у меня есть много отчетов JasperReports со сложными SQL-запросами, содержащими множество параметров. Отчеты используются для создания документов в формате PDF, содержащих данные, возвращенные запросом, сгруппированные и отформатированные различными способами.
Теперь мне также необходимо напрямую экспортировать результат запроса (например, набор результатов, или карту, или файл csv, или что-то подобное...). Можно ли попросить JasperReports выполнять только запрос и возвращать результаты вместо отображения страницы PDF?
(ПРИМЕЧАНИЕ: это не то же самое, что выбор формата вывода csv для рендеринга отчета, потому что этот метод пытается преобразовать дизайн отчета в файл csv... Вместо этого я хотел бы только "повторно использовать" запрос внутри отчета, также используя преимущества управления параметрами JR и т. д.)
Это мой Java-код для создания pdf-документа из отчета:
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;
Я видел, что есть класс с именем JRJdbcQueryExecuter
внутри JasperReports...
Можно ли вызвать его напрямую вместо вызова fillReport
, чтобы получить ResultSet выполненного SQL-запроса?
Спасибо