reporte java con jasperreport
DESCRIPTION
Ejemplo de como crear una aplicación hecha en Java con JasperReportsTRANSCRIPT
1
Creación de reportes con NetBeans, JasperReport y MySql.
Presentado:Geovanny Mendoza Gonzalez
Blogs: http://geovanny0401.blogspot.com/
Ingeniero de Sistemas
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
2
Este manual se basa en la integración del IDE Netbeans, el Motor de base de
datos MySql y la librería de creacion de informe JasperReports. Además se
incluye el plugin de IReport para Netbeans, se explicara a detalle cómo se
utilizara la biblioteca grafica para Java SWING para generar el reporte, en
este caso recibirá un Parámetro para generar dicho reporte y todo esto se
realizara en el IDE mencionado. Si llegan a tener alguna duda me pueden
escribir al correos electrónicos de la portada.
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
3
INTRODUCCIÓN: En este Manual se desarrollara una aplicación para Generar Reportes basado en el SWING de JAVA, utilizaremos como mencionamos anteriormente el motor de base datos MySQL. Este ejercicio también puede funcionar con otra base de datos que puede ser Oracle, SQL Server y PostgreSQL. Para comenzar vamos a establecer nuestro entorno de trabajo:
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
4
HERRAMIENTAS PARA EL DESARROLLO:
Netbeans 7.4(Puede utilizar esta versión e inclusive la versión mas
actual.
MySQL 5.1: Sera el encargado de alojar a nuestra base de Datos.
Ireport 5.1: El entorno grafico que nos ayudara a crear el Reporte.
Jasper Reports 5.1: Librerías que nos ayudaran a compilar y ejecutar el reporte que son las siguientes:
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
5
LIBRERÍAS• commons-javaflow• commons-logging-1.2• commons-beanutils-1.8• commons-digester-2.1• commons-collections-4-4.0• jasperreports-fonts-3.7.5• itextpdf-5.5.2.jar• itext 5.5.2
• MySQL Connector para JAVA(mysql-connector-java-5.1.6-bin):este es nuestro puente JDBC que nos permitirá la conexión entre el servidor de base de datos y el lenguaje de programacion Java.
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
6
LINK PARA DESCARGAR LOS INSTALADORES A USAR
• Todo el Software utilizado es Open Sourcey puede descargarlo desde:
• http://www.netbeans.org : Netbeans 7.4 o superior y en la sección de PLUGINS encontrara el de Ireport
• http://dev.mysql.com/downloads/ : MySQL 5.1, Conector para Java y Herramientas Graficas.
• http://community.jaspersoft.com/ : Ireport librería de creación de informes.
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
7
INSTALACIÓN DEL PLUGIN Para realizar este manual, por el momento se va a utilizar una tabla que
llamaremos afiliado. Digitaremos un registro que en este caso será el código de afiliación de un usuario y utilizaremos exclusivamente el Ireport que instalaremos dentro de Netbeans.
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
8
Paso 1: Seleccionamos en el menú a
tools(Herramientas) y en el submenú le damos
click a puglins
Paso 2: ahora buscamos en la pestaña con el nombre downloaded(Descarga) ,seleccionamos con click Add Plugins
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
9
Paso 3: Consultamos la ubicación en nuestro PC del archivo iReport-5.1.0.nbm y la
seleccionamos el botón abrir
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
10
Paso 4: A continuación ya aparece nuestro plugin para instalarse en la parte derecha
aparece una descripción, seleccionamos el botón install(instalación) y presionamos click.
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
11
Paso 5: A continuación seleccionamos el botón Next(Siguiente) y presionamos click para
continuar el proceso de instalación.
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
12
Paso 6: A continuación seleccionamos la opción para aceptar los términos de licencia y después
presionamos click en el botón Install.
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
13
Paso 7: En esta figura nos muestra El plugin ya está instalado y presionamos click en el botón
Finish.
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
14
Paso 8: Para comprobar en la siguiente figura que se encuentra instalado y configurado
iReport en NetBeans.
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
Geovanny Mendoza Gonzalez V 1.0
1504 de Agosto de 2014
CREAR BASE DE DATOS
16
CREACIÓN DE LA BASE DE DATOS: Como primer paso crearemos la base de datos junto con la instrucción
SQL de crear tabla e insertar registro, hay dos formas para INSERTAR
datos en una tabla: Una es insertar una fila vez, y la otra es
insertar filas múltiples por vez, en este caso utilizaremos la segunda
Opción también la pueden crear con algún asistente grafico o desde la
terminal de MySQL.
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
17
CREACIÓN DE LA BASE DE DATOS:
SQL:/*Software : Generacion ReportesDBMS : MysqlEsquema : AfiliadoScript : Crea el esquema con sus respectivas tablasResponsable : Geovanny Mendoza GonzalezEmail : [email protected] : http://geovanny0401.blogspot.com*/
-- =============================================-- CREACION DE LA BASE DE DATOS-- ============================================= CREATE DATABASE REPORTE; -- =============================================-- CONECTARSE EL USUARIO-- ============================================= USER REPORTE;
-- =============================================-- CREAR LA TABLA AFILIADO-- ============================================= CREATE TABLE AFILIADO(COD_AFILIACION INTEGER,TIPO_IDE CHAR(2),NUMERO_IDE VARCHAR(30),APEPATERNO VARCHAR(50),APEMATERNO VARCHAR(50),NOMBRE VARCHAR(60),FEC_NAC VARCHAR(15)); ALTER TABLE AFILIADO ADD PRIMARY KEY (COD_AFILIACION); INSERT INTO AFILIADO (COD_AFILIACION, TIPO_IDE,NUMERO_IDE, APEPATERNO, APEMATERNO, NOMBRE,FEC_NAC)VALUES (1,'CC','12345678','SANTOS','BULLOSO','MARIA','23/04/1987'); INSERT INTO AFILIADO (COD_AFILIACION, TIPO_IDE, NUMERO_IDE, APEPATERNO, APEMATERNO, NOMBRE, FEC_NAC)VALUES (2,'CC','36985214','CALLE','ALVAREZ','OVIDIO','06/10/1940');
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
Geovanny Mendoza Gonzalez V 1.0
1804 de Agosto de 2014
Crear Proyecto en Netbeans
19
PASO 1: Como ya creamos la base de datos en este caso es el motor de base de datos MYSQL.
por lo tanto procedemos a crear un proyecto en Netbeans.
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
1) En el menú principal del IDE nos dirigimos a File escogemos New Project2) En Categories escogemos la carpeta Java y en Projects Seleccionamos Java Application y presionamos el botón Next con un click.
20
PASO 2: En Project Name: colocamos el nombre del proyecto, en Project Location donde vamos
a guardar el Proyecto, deseleccionamos la opción de Create Main Class y oprimimos el botón
Finish.
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
2104 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
PASO 3: Por defecto ya tenemos el JFrame
En este caso vamos agregar los
Siguientes componentes
1) Dos JButton
2) Un Jpanel
3) Tres Jlabel
4) Un JTextField
Geovanny Mendoza Gonzalez V 1.0
2204 de Agosto de 2014
Crear Plantilla en Ireport
23
PASO 1 : Seleccionamos el proyecto le damos click derecho file->other: Escogemos en
categoría Report y en File Types: Empty Report y presionamos Next
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
24
PASO 2 : Colocamos el nombre del archivo y presionamos click en Finish
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
25
PASO 3 : Como podemos observar ya se puede visualizar la plantilla del reporte.
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
26
PASO 4: ahora vamos a crear el origen de datos para realizar nuestra conexión con la base de
datos.
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
27
PASO 5: Damos click en opcion default y seleccionamos la opcion New.
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
28
PASO 6: En este paso seleccionamos el tipo de datasource en este caso escogemos Database
JDBC connection y damos click en Next.
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
29
PASO 7:. Completamos los parámetros como se muestra en la figura en la parte de abajo.
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
Name: reportes
JDBC Driver: MySQL (com.mysql.jdbc.Driver)
JDBC URL: jdbc:mysql://localhost/reporte
UserName: root
Password: root
3004 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
PASO 8: En este paso vamos agregar un parámetro seleccionamos la pestaña Report Inspector y damos click derecho encima de Parameteres y escogemos Add Parameter.
PASO 9:Despues que agregamos el parámetro le colocamos el nombre, la clase de parámetro.
31
PASO 10: Seleccionamos la pestaña Report
Inspector y damos click derecho encima del
reporte1 y escogemos Edit Query.
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
32
PASO 11: Escribimos la siguiente consulta en sql: SELECT * FROM AFILIADO WHERE
ID=$P{id}.
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
33
PASO 12: Seleccionamos Fields para que nos muestre todo los campos de la tabla Afiliado,
agregamos al reporte en la parte Detail todos los campos que queremos visualizar.
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
34
PASO 14: Por ultimo ante de realizar la codificación agregamos las librerías necesaria para
ejecutar la aplicación, nos ubicaremos en el proyecto y seleccionamos la carpeta libraries, damos
clikc derecho y presionamos en Add JAR/Folder. Después ubicamos donde tenemos guardado los
Archivos *.JAR y los adicionamos al proyecto.
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
Geovanny Mendoza Gonzalez V 1.0
3504 de Agosto de 2014
Codificación
36
Creamos una clase EjecutarReporte
package Controlador;
import static Controlador.Reporte.CONEXION;
import static Controlador.Reporte.DRIVER;
import static Controlador.Reporte.PASSWORD;
import static Controlador.Reporte.RUTA;
import static Controlador.Reporte.USER;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.JasperViewer;
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
37
/**
*
* @author Geovanny
*/
public class Reporte {
public static final String DRIVER = "com.mysql.jdbc.Driver";
public static final String RUTA = "jdbc:mysql://localhost/reporte";
public static final String USER = "root";
public static final String PASSWORD = "root";
public static Connection CONEXION;
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
38
public void EjecutarReporte(int id) {
JasperReport reporte1;
JasperPrint jasperprint;
try {
Class.forName(DRIVER);
CONEXION = DriverManager.getConnection(RUTA, USER, PASSWORD);
javax.swing.JOptionPane.showMessageDialog(null, "Conexion establecida");
String template = "src/reporte1.jasper";
reporte1 = (JasperReport) JRLoader.loadObject(template);
Map param = new HashMap();
param.clear();
param.put("id", id);
jasperprint = JasperFillManager.fillReport(reporte1, param, CONEXION);
JasperViewer visor = new JasperViewer(jasperprint, false);
visor.setTitle("Reportes Afiliados");
visor.setVisible(true);
} catch (Exception e) {
javax.swing.JOptionPane.showMessageDialog(null, e);
}
}
}
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
39
Ahora nos dirigimos al formulario y seleccionamos con doble clik el boton Generar y agregamos el
siguiente codigo.
int id = Integer.parseInt(txtAfiliado.getText());
reporte.EjecutarReporte(id);
Despues Ejecutamos el proyecto y enviamos el parámetro en este caso es el numero 1 listo.
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
40
Finalizamos el proyecto espero que sea gran ayuda y lo puedan implementar en sus proyecto, para
la próxima publicaciones voy a realizar y explicar ejercicios con JFreeChart, Realizar un Login y un
Aplicativo aplicando el patrón MVC.
04 de Agosto de 2014
Geovanny Mendoza Gonzalez V 1.0
Geovanny Mendoza GonzalezBlogs:
http://geovanny0401.blogspot.com/