Guardar un reporte PDF creado en iReport no es tan diferente de solo visualizarlo en pantalla.
En este ejemplo se hace uso de una base de datos en MySQL llamado «db123» y una sola tabla «estudiantes«, con algunos registros ya creados claro 🙂
CREATE TABLE estudiante ( dni varchar(12) NOT NULL, nombre varchar(32) default NULL, email varchar(32) default NULL, celular varchar(12) default NULL, PRIMARY KEY (dni) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Se hacen uso de las librerías de Jassperreports en su versión 3.7.2 🙂 no estoy actualizado pero creo que en nuevas versiones no debe de cambiar mucho.
Para la conexión con la base de datos se requiere el driver JDBC mysql-connector-java en cualquiera de sus versiones.
No explicaremos como implementar estas librerías ni como crear el archivo *.jasper, ya existen varios post dedicados a la creación de reportes los cuales invito a visitar 🙂
Utilizando la herramienta de iReport se crea un reporte como cualquier otro, (Ver post sobre reportes ), en este ejemplo no tenemos parámetros de entrada, la consulta se reduce a:
SELECT * FROM estudiante
Y la distribución de controles puede ser cualquiera, por ejemplo un formato tabular:
Si queremos llamar este reporte desde java, utilizamos la función:
public void ver( String jasper ){ JasperReport jasperReport; JasperPrint jasperPrint; try{ URL in=this.getClass().getResource( "reporte.jasper" ); jasperReport=(JasperReport)JRLoader.loadObject(in); jasperPrint = JasperFillManager.fillReport(jasperReport, new HashMap() , this.getConexion() ); JasperViewer.viewReport(jasperPrint,false); }catch (JRException ex){ System.err.println( "Error iReport: " + ex.getMessage() ); } }
Ahora, si lo que queremos es guardar directamente en disco el reporte en formato PDF sin visualizarlo, entonces la función cambia a:
public void pdf(){ JasperReport jasperReport; JasperPrint jasperPrint; try { //se carga el reporte URL in=this.getClass().getResource( "reporte.jasper" ); jasperReport=(JasperReport)JRLoader.loadObject(in); //se procesa el archivo jasper jasperPrint = JasperFillManager.fillReport(jasperReport, new HashMap(), this.getConexion() ); //se crea el archivo PDF JasperExportManager.exportReportToPdfFile( jasperPrint, "E:/temporal/reporte.pdf"); } catch (JRException ex) { System.err.println( "Error iReport: " + ex.getMessage() ); } }
Como se puede ver, las instrucciones son similares, cambia al final donde se utiliza la funcion«exportReportToPdfFile» , donde se especifica la ruta donde salvar el archivo, en este ejemple, el disco E:/…
o.O nada más.
El proyecto del ejemplo en netbeans 6.9 AQUI.
En esta oportunidad te presento una herramienta de creación de prototipos de Interfaz Gráfica de Usuario o GUI de código[...]
Hace tiempo me pidieron el código fuente de un juego de Puzzle de Neon Genesis Evangelión, este juego es completo, tiene[...]
El diseño web adaptable (Responsive Web Design) va evolucionando como una filosofía de diseño y desarrollo de paginas we[...]
¿Qué es SCRUM? SCRUM es un modelo de referencia que define un conjunto de prácticas y roles, y que puede tomarse como pu[...]
Tercera parte del tutorial [Crea tu blog con el patrón MVC y php] En este post trabajaremos en el Theme del blog, agrega[...]
Oi galera, en esta oportunidad les traigo una curiosidad que encontré por casualidad perdiendo el tiempo en Internet, se[...]