en mi proyecto Java Tengo muchos informes JasperReports con consultas SQL complejas, que contienen muchos parámetros. Los informes se utilizan para producir documentos en formato PDF que contienen los datos devueltos por la consulta, agrupados y formateados de varias maneras.Exportar JasperInforma los resultados de la consulta
Ahora también tengo la necesidad de exportar directamente el resultado de la consulta (por ejemplo, un ResultSet, o un mapa o un archivo csv, o similar ...). ¿Es posible pedir a JasperReports que ejecute solo la consulta y devuelva resultados en lugar de mostrar la página en pdf?
(NOTA: no es lo mismo que elegir un formato de salida csv para la representación del informe, porque este método intenta convertir el diseño del informe en un archivo csv ... En cambio, me gustaría solo "reutilizar" el consulta dentro de un informe, aprovechando también JR parámetros de gestión, etc ...)
Este es mi código Java para producir un documento PDF a partir de un informe:
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;
vi que hay una clase llamada JRJdbcQueryExecuter
dentro de JasperReports ... ¿Es posible llamarlo directamente en lugar de llamar al fillReport
, para obtener el ResultSet de la consulta SQL ejecutada?
Gracias
¿Por qué quieres utilizar la API JasperReports para resolver esta tarea? –
Como dije antes, tengo muchos informes que contienen largas consultas SQL (con muchos parámetros) y producen representaciones complejas de PDF, agrupan datos, etc. Ahora también tengo que extraer los resultados de la consulta de la base de datos, sin ningún procesamiento, agrupación o representación de cualquier tipo. Es como copiar manualmente la consulta de un informe, sustituyo todos $ P {} con valores reales, lo pego dentro de un cliente SQL, lo ejecuto y lo extraigo como un archivo csv. Estoy buscando una forma automática de hacer esto por código, aprovechando la administración de parámetros JR y obteniendo la consulta analizada y lista para su ejecución ... –
¿Y cuál es el propósito de este trabajo? ¿Qué vas a hacer con ResultSet devuelto? Simplemente interesante ... –