nel mio progetto Java Ho un sacco di rapporti JasperReports con query SQL complesse, contenenti molti parametri. I report vengono utilizzati per produrre documenti pdf contenenti i dati restituiti dalla query, raggruppati e formattati in vari modi.Esporta i risultati delle query JasperReports
Ora ho anche la necessità di esportare direttamente il risultato della query (ad esempio un ResultSet o una mappa o un file csv o simile ...). È possibile chiedere a JasperReports di eseguire solo la query e restituire risultati invece di rendere la pagina pdf?
(NOTA: non è lo stesso di scegliere un formato di output csv per il rendering del report, perché questo metodo tenta di convertire la progettazione del report in un file CSV ... Invece, mi piacerebbe solo "riutilizzare" il interrogazione all'interno di un rapporto, anche approfittando della JR parametri di gestione, ecc ...)
Questo è il mio codice Java per la produzione di un documento PDF da un rapporto:
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;
ho visto c'è una classe chiamata JRJdbcQueryExecuter
all'interno di JasperReports ... È possibile chiamarlo direttamente invece di chiamare fillReport
, per ottenere il ResultSet della query SQL eseguita?
Grazie
Perché si desidera utilizzare l'API JasperReports per risolvere questo problema? –
Come ho detto prima, ho molti report che contengono lunghe query SQL (con molti parametri) e producono rendering di PDF complessi, raggruppando dati, ecc. Ora devo anche estrarre i risultati della query del database, senza alcuna elaborazione, raggruppamento o rendering di qualsiasi tipo. È come se copi manualmente la query da un report, sostituisco tutto $ P {} con valori effettivi, lo incollo all'interno di un client SQL, lo eseguo ed estrai come file csv. Sto cercando un modo automatico per farlo in base al codice, sfruttando la gestione dei parametri JR e ottenendo la query analizzata e pronta per l'esecuzione ... –
E qual è lo scopo di questo lavoro? Cosa farai con ResultSet restituito? Solo interessante ... –