trong dự án Java của tôi Tôi có rất nhiều báo cáo JasperReports với các truy vấn SQL phức tạp, chứa rất nhiều tham số. Các báo cáo được sử dụng để tạo các tài liệu pdf chứa dữ liệu được truy vấn trả về, được nhóm và định dạng theo nhiều cách khác nhau.Xuất kết quả truy vấn JasperReports
Bây giờ tôi cũng có nhu cầu xuất trực tiếp kết quả truy vấn (ví dụ: ResultSet hoặc Bản đồ hoặc tệp csv hoặc tương tự ...). Có thể yêu cầu JasperReport chỉ thực hiện truy vấn và trả lại kết quả thay vì hiển thị trang pdf không?
(LƯU Ý: nó không giống như chọn định dạng đầu ra csv để hiển thị báo cáo, vì phương pháp này cố chuyển đổi thiết kế báo cáo thành tệp csv ... Thay vào đó, tôi chỉ muốn "sử dụng lại" truy vấn trong một báo cáo, cũng lợi dụng JR thông số quản lý, vv ...)
Đây là mã Java của tôi để tạo ra một tài liệu pdf từ một báo cáo:
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;
tôi thấy có một lớp được gọi là JRJdbcQueryExecuter
bên trong JasperReports ... Có thể gọi trực tiếp thay vì gọi fillReport
, để có được ResultSet của truy vấn SQL được thực hiện?
Cảm ơn
Tại sao bạn muốn sử dụng API JasperReports để giải quyết tác vụ này? –
Như tôi đã nói trước đây, tôi có rất nhiều báo cáo chứa các truy vấn sql dài (với nhiều tham số) và tạo ra các kết xuất pdf phức tạp, nhóm dữ liệu lại với nhau, v.v .. Bây giờ tôi cũng phải trích xuất kết quả truy vấn cơ sở dữ liệu mà không cần xử lý, nhóm hoặc hiển thị bất kỳ loại nào. Nó giống như tôi tự sao chép truy vấn từ một báo cáo, tôi thay thế tất cả $ P {} bằng các giá trị thực, tôi dán nó vào trong một máy khách SQL, thực hiện nó và giải nén nó dưới dạng tệp csv. Tôi đang tìm một cách tự động để làm điều này bằng mã, lợi dụng việc quản lý các tham số JR và thu thập truy vấn được phân tích cú pháp và sẵn sàng thực hiện ... –
Và mục đích của công việc này là gì? Bạn sẽ làm gì với ResultSet đã trả về? Chỉ cần thú vị ... –