Экспорт результатов запроса JasperReports

в моем проекте 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-запроса?

Спасибо

6
задан sigi_tm 20 March 2012 в 15:10
поделиться