Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Aprenda Reportes Con Netbeans, IREPORT y MYSQL en N Diapositivas
Aprenda Reportes Con Netbeans, IREPORT y MYSQL en N Diapositivas
25/05/2009
Las Marcas y Logotipos Mostrados, son marcas registradas de sus respectivas empresas en Mxico y Otros Pases.
25/05/2009
Firmado digitalmente por Javier Dominguez Geniz Nombre de reconocimiento (DN): cn=Javier Dominguez Geniz, o=Geniz SWF, ou=Geniz SWF, email=ajdgeniz@hotmail.com, c=MX Fecha: 2009.08.16 13:28:26 -05'00'
1. Introduccin.
En este Manual mostrar como Generar Reportes para una aplicacin basada en el SWING de JAVA, utilizaremos por supuesto a MySQL como nuestro motor de base de datos predeterminado aunque tambin funcionaria con una base de datos de PostgreSQL ya que lo conectaremos mediante JDBC (Java DataBase Connectivity) y por supuesto funcionaria bien con SQL Server, Oracle u otro a travs de una conexin ODBC. Para empezar estableceremos nuestro entorno de trabajo:
25/05/2009
3. Libreras
commons-beanutils-1.7 commons-collections-2.1 commons-digester-1.7 commons-javaflow-20060411 commons-logging-1.0.2 jasperreports-2.0.4 itext-1.3.1 (Importante tener esta librera ya que es la encargada de generar nuestro reporte en PDF y otros formatos) MySQL Connector para JAVA (mysql-connector-java-5.0.7-bin): este es nuestro puente JDBC que nos permitir la conexin entre el servidor de base de datos y las JSP (viene incluido en Netbeans). Y para esta versin por supuesto Necesitamos el PLUGIN para Netbeans, este solo funciona para versiones superiores de la 6.0
25/05/2009 Geniz v. 1.0 Update 1 5
25/05/2009
4. Caso de Estudio
Para realizar este tutorial, por ahora solo utilizaremos una tabla, y nuestro reporte se generara a partir de recibir un parmetro, si recuerda en el tutorial pasado lo generbamos a partir de una vista y no reciba parmetros, para este sencillo caso recibir como parmetro la matricula de un estudiante, y utilizaremos nica y exclusivamente el IReport que instalaremos dentro de Netbeans, si lo desea puede consultar el manual anterior disponible en esta misma seccin para verificar el otro reporte.
25/05/2009
25/05/2009
Paso 1.
Abra su Netbeans IDE, recuerde que este plugin solo se instala en versiones superiores a la 6.0, una vez abierto haga clic en el men Tools y Seleccione Plugins
Paso 2
Ahora haga clic en la pestaa Downloaded y seguidamente en el botn Add Plugins
25/05/2009
Paso 3
Ahora localice la ubicacin del archivo con extensin NBM y despus haga clic en el botn abrir
Paso 2
A continuacin nuestro complemento estar listo para instalarse, notara que aparece la descripcin en la parte derecha, ahora pulse el botn Install
25/05/2009 Geniz v. 1.0 Update 1 10
Paso 4
Una vez que empiece la instalacin aparecer un Wizard que le guiara, solo haga clic en siguiente y acepte los trminos de la licencia. Existe la posibilidad de que Netbeans no lo pueda validar, para que la instalacin contine solo haga clic en continue.
Paso 2
25/05/2009
11
Paso 5
Listo, nuestro IReport se encuentra Instalado, para finalizar haga clic en la pestaa Installed y busque el nuevo complemento el categora Tools
25/05/2009
12
Ready !!!
Como podr darse cuenta su Netbeans a cambiado un poco de apariencia, ya que se agregaron varios componentes como por ejemplo los orgenes de datos (data sources) de IREPORT, adems de las consolas de salida.
25/05/2009
13
25/05/2009
14
Iniciando Netbeans
Una vez creada la base de datos, abra Netbeans y cree un nuevo Proyecto como a continuacin se indica: 1. 2. 3. Dirjase al men archivo -> New Project Despus elija Java -> Desktop Application En este paso elija un nombre y una ubicacin, en caso de utilizar Netbeans versin 7, puede indicarle que ser una aplicacin con BD, de lo contrario elija la opcin bsica, en Netbeans 6 basta con esos parmetros, finalice el asistente.
25/05/2009
15
Configurando Netbeans 7
Como se indico anteriormente en la nueva versin de Netbeans ya puede indicarle al IDE q se tratara de una aplicacin de base de datos, si eligi esta opcin siga los sig. Pasos: 1. Una vez que elijo la aplicacin de base de datos, en la sig., pantalla deber elegir Nueva Conexin con Base de datos(en este caso Netbeans esta en espaol)
25/05/2009
16
Configurando Netbeans 7
Elija la opcin MySQL y configrela como lo muestra la sig.. Imagen, escriba su nombre de usuario correspondiente y su password, en caso de no tener, puede dejarlo en blanco.
25/05/2009
17
Configurando Netbeans 7
Si la conexin se realizo con xito, la tabla ya fue extrada y los campos agregados, ahora haga clic en siguiente.
25/05/2009
18
Configurando Netbeans 7
Por ultimo haga clic en terminar
25/05/2009
19
Configurando Netbeans 7
Como se dio cuenta nos abri un proyecto de ejemplo, puede trabajar sobre este mismo y agregar los componentes que aadiremos en los siguientes pasos o puede continuar con los siguientes pasos que se mencionaran a continuacin.
25/05/2009
20
Origen de Datos
Antes de hacer nuestro reporte crearemos un origen de datos para establecer nuestra conexin y que nuestro reporte contenga datos reales de la BD,
25/05/2009
21
Origen de Datos
Ahora complete los parmetros pedidos, cuando los tenga haga clic en el botn test, si la conexin se realiza con xito haga clic en save, de lo contrario corrija los que estn mal, si el mensaje de error indica acceso denegado, puede que su usuario o password sean los incorrectos, u otro problema comn es que el servidor no este activado.
Despus en la pantalla de datasources seleccione el origen Reportes, aunque por default se selecciona el recin creado.
25/05/2009
22
Creando el Reporte
Ya creado nuestro proyecto, disearemos nuestro reporte como se indica:
25/05/2009
23
Creando el Reporte
Disee el reporte a su gusto, en este caso solo utilizare 4 bandas que son: title, page header, Detail, Page Footer. Las dems puede eliminarlas haciendo clic derecho sobre la misma y seleccionando Delete Band o estableciendo el valor 0 en las propiedades del lado derecho.
Si por algn error elimino alguna que no debera haberse borrado, puede volver activarla desde le Inspector de Ireport.
25/05/2009
24
Creando el Reporte
Agregue a la banda Detail los campos de nuestra tabla, no es necesario agregar un campo esttico y despus uno de texto, para realizarlo con tan solo arrastrar y soltar siga los siguientes pasos: 1. Haga clic derecho sobre el reporte ubicado en el panel Report Inspector y seleccione Edit Query.
25/05/2009
25
Creando el Reporte
Despliegue el nodo Fields del Reporte:
Ahora seleccione uno por uno y arrstrelo a la banda detail, esto nos evitara problemas con el tipo de datos ya que cada tipo de datos en MySQL tiene un equivalente en JAVA y esto al realizarlo de esta manera se realizara en automatico, por ejemplo, el VARCHAR equivale a un String, el Int a INT, etc. El reporte habara tomado una forma como la sig.
25/05/2009
26
Creando el Reporte
Para finalizar al diseo agregue a las bandas restantes lo siguiente:
"" + $V{PAGE_NUMBER}
Recuerde que los campos son de tipo Text Field y no estticos y que ademas el tipo de dato para Date() deber ser tipo Date.
25/05/2009
27
Error en la consulta?
Al momento de realizar la consulta cometimos una equivocacin (adrede) ya que como mencionamos al principio el reporte deber recibir un parmetro para que se realice, en este caso recibir la matricula, as que lo que haremos primero ser agregar el parmetro al reporte y despus escribiremos nuevamente la consulta en su forma correcta. En el inspector del reporte encontrara un Nodo que dice parameters , clic derecho sobre el y seleccione agregar parameter.
25/05/2009
En la banda de propiedades pngale el nombre que desee, en este caso se llamara igual que el campo dela tabla que nos servir en la condicin, seleccione el tipo de dato que corresponda, en este caso el INT de MySQL corresponde al Integer de JAVA. En donde dice valor de default puede escribirle alguno para probar y este valor deber ir encerrado entre comillas dobles.
Geniz v. 1.0 Update 1
28
Modificando la consulta
Nuevamente abra el editor de consultas y modifquela como sigue:
Listo nuestro reporte ha sido generado, recuerde que el archivo jasper y el jrxml estn almacenados en la carpeta del proyecto.
25/05/2009 Geniz v. 1.0 Update 1 29
Agregando Libreras
Enseguida procederemos a agregar las libreras necesarias para ejecutar el reporte y poder guardarlo en distintos formatos, desplegu el proyecto y sobre la carpeta libreras haga clic derecho y despus seleccione agregar JAR busque las libreras y seleccinelas. Despus crearemos una clase de java que ser la encargada de crear y lanzar el reporte, en la siguientes pantalla se muestra todo el cdigo fuente.
25/05/2009
30
IniciarReporte.java
// Importaciones de las librerias
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import javax.swing.*; import java.util.HashMap; import java.util.Map; import net.sf.jasperreports.engine.*; import net.sf.jasperreports.engine.util.JRLoader; import net.sf.jasperreports.view.*; import net.sf.jasperreports.view.save.JRPdfSaveContributor.*; import net.sf.jasperreports.view.JRViewer.*; import net.sf.jasperreports.view.save.JRMultipleSheetsXlsSaveContributor.*;
25/05/2009
31
IniciarReporte.java
*/ Se inicia la Superclase y su constructor ademas se establece la conexin*/
public class IniciarReporte { Connection conn=null; public IniciarReporte() { try { Class.forName("com.mysql.jdbc.Driver"); //se carga el driver conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/reporte","root",""); JOptionPane.showMessageDialog(null,"Conexin establecida"); } catch (Exception ex) { ex.printStackTrace(); } }
25/05/2009
32
IniciarReporte.java
*/ Se inicia la clase que ejecutara el reporte y se carga el archivo*/
public void ejecutarReporte(String matricula) { try { String archivo = "Reporte.jasper"; System.out.println("Cargando desde: " + archivo); if (archivo == null) { System.out.println("No se encuentra el archivo."); System.exit(2); } JasperReport masterReport = null; try { masterReport = (JasperReport) JRLoader.loadObject(archivo); } catch (JRException e) { System.out.println("Error cargando el reporte maestro: " + e.getMessage()); System.exit(3); }
25/05/2009 Geniz v. 1.0 Update 1 33
IniciarReporte.java
/* Se pasan los parmetros introducidos por el usuario*/
//este es el parmetro, se pueden agregar ms parmetros //basta con poner mas parametro.put Map parametro = new HashMap(); parametro.put("Matricula",matricula); //Reporte diseado y compilado con iReport JasperPrint jasperPrint = JasperFillManager.fillReport(masterReport,parametro,conn); //Se lanza el Viewer de Jasper, no termina aplicacin al salir JasperViewer jviewer = new JasperViewer(jasperPrint,false); jviewer.setTitle("Geniz - Reporte"); jviewer.setVisible(true); } catch (Exception j) { System.out.println("Mensaje de Error:"+j.getMessage()); } }
25/05/2009
34
IniciarReporte.java
/* por ultimo se cierra la conexin*/
25/05/2009
35
Ya creado nuestro proyecto, reporte y la clase que lo lanzara procederemos a agregar un nuevo formulario como se muestra cuya funcin ser recoger la matricula, que es el parmetro que recibir para realizare la consulta y ejecutar el reporte:
Despus solo aada un evento al botn , para ello seleccione el botn y haga doble clic o inclyalo desde la paleta de propiedades en la ficha eventos.
25/05/2009
36
Ahora abra el cdigo fuente del frame y ajstelo como a continuacin se muestra:
25/05/2009
37
Ejecutando el reporte
Pues bien hemos terminado, ahora solo ejecute la aplicacin y escrbale algn parmetro que tenga en la BD.
25/05/2009
38
Agradecimientos
Ojala y les sirva este manual, recuerden que si tienen duda pueden escribirme a mi correo o visitar mi blog donde encontraran mas manuales y recursos adems de establecer contacto directo conmigo. Gracias y hasta pronto.
http://ajdgeniz.wordpress.com
25/05/2009
39
Prximamente Virtualizacin
25/05/2009
40