Creación y visualización de reportes con iReport y
NetBeans.
En este tutorial se realizara el
diseño de un reporte con iReport
Designer y posteriormente se visualizara desde un proyecto en java
programado con NetBeans.
1.-Para este proyecto se va a
crear la siguiente Base de datos:
CREATE
DATABASE tienda;
USE
`tienda`;
CREATE TABLE IF NOT EXISTS `productos` (
`idProducto`
int(11) NOT NULL AUTO_INCREMENT,
`producto`
varchar(20) COLLATE latin1_spanish_ci NOT NULL,
`precio` float
NOT NULL,
`existencia`
tinyint(4) NOT NULL,
`categoria`
varchar(20) COLLATE latin1_spanish_ci NOT NULL,
PRIMARY KEY
(`idProducto`)
) ENGINE=InnoDB
DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci AUTO_INCREMENT=1 ;
INSERT
INTO `productos` (`idProducto`, `producto`, `precio`, `existencia`,
`categoria`) VALUES
(1,
'Libreta cua. chico', 12, 10, 'papeleria'),
(2,
'Libreta cua. grande', 12, 12, 'papeleria'),
(3,
'Caja regalo chica', 5, 20, 'regalos'),
(4,
'Caja regalo grande', 7, 20, 'regalos'),
(5,
'Carolina Herrera 30m', 400, 2, 'perfumes'),
(6,
'Armani Aqua 30ml', 600, 2, 'perfumes');
2.-Crear un nuevo proyecto en NetBeans con el nombre tiedaReportes, y desactivar la creación
automática de la clase Main.
3.-Una vez creado el proyecto se
agregan dos packages: Principal y Reportes, en el primero se colocara un JFrame, que contendrá un botón con el cual se visualizara el
reporte que se creara más adelante.
4.-En la siguiente imagen se ve
el JFrame de referencia.
5.-El componente JButton que se agregara al JFrame.
6.-Dentro del proyecto en la
carpeta Libraries se hace clic
derecho y se agregan dos librerías: MySQL
JDBC Driver para la conexión con la Base de datos y la librería JasperReports que se creó en el
tutorial anterior.
7.-En la siguiente imagen se
puede ver la estructura del proyecto completo, donde ya se agregaron las librerías
necesarias para la conexión con MySQL y la visualización de reportes Jasper.
8.-Dentro del proyecto se agregaran
las siguientes librerías necearías para el proyecto.
//Librerías
para la conexión con la BDimport java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import java.sql.SQLException;import javax.swing.JOptionPane; //Librerías
para la visualización de los reportes import net.sf.jasperreports.engine.JRException;import
net.sf.jasperreports.engine.JasperCompileManager;import net.sf.jasperreports.engine.JasperFillManager;import net.sf.jasperreports.engine.JasperPrint;import net.sf.jasperreports.view.JasperViewer; 9.-Se declaran variables miembros
para la conexión con la Base de datos. private ResultSet rs;
private
Connection conexion; private
Statement st; 10.-Se crea el método Conectar y
se configuran los parámetros: Dirección del servidor, nombre de la base d de
datos, usuario y contraseña. Nota: en
este caso el método también realiza una consulta e imprime el primer registro,
para verificar que la conexión se realizó con éxito. public final void Conectar() {
try {
conexion = DriverManager.getConnection("jdbc:mysql://localhost/tienda",
"root", ""); st =
conexion.createStatement(); rs =
st.executeQuery("SELECT * FROM productos;");
rs.next();
System.out.println(rs.getString("producto")); } catch
(SQLException err) { JOptionPane.showMessageDialog(this,
"Error 1: " + err.getMessage()); } } 11.- Dentro del constructor del JFrame Tienda se realiza una llamada al método Conectar() y se verifica la conexión. public Tienda() {
initComponents();
Conectar(); } 12.-En la siguiente imagen se
puede ver que el JFrame y la conexión
se realizo correctamente.
13.-Ya que se verifico la
conexión se inicia iReport Designer,
para realizar el diseño del reporte y poder utilizarlo en NetBeans.
14.-El primer paso de 3 es crear
la conexión con la Base de datos, para esto hay que hacer clic en el icono de
la base de datos, con lo que se despliega el asistente de configuración, la
conexión que se utilizara en este tutorial es la primera Database JDBC conncetion.
15.-El nombre de la conexión es
tienda, el driver que se utilizará es MySQL
(com.mysql.jdbc.Driver), el nombre de la base de datos en tienda, el usuario root y sin contraseña.
16.-Si los datos que se
introdujeron son correctos al hacer clic en el botón Test se mostrara el mensaje de Conexión exitosa, una vez hecho esto
se hace clic en el botón Save para
guardar la conexión y avanzar al siguiente paso.
17.- En el paso 2 es donde se
diseña el reporte, para este ejemplo se tomara la plantilla Simple Blue y se usara el asistente,
para esto se hace clic en el botón Launch
Report Wizard.
18.-En el siguiente paso se
utilizara el nombre reporteProductos
y la ubicación del reporte será la carpeta
Reportes que se creó en el proyecto de NetBeans.
19.-En el paso tres se escribe la
consulta que permitirá tener acceso a los campos necesarios para el reporte, se
puede realizar de varias formas, escribiéndola, cargando un script SQL, o utilizando el asistente visual de iReport,
en este caso se escribe la siguiente consulta :
SELECT * FROM productos;
20.-En el paso 4 Fields se eligen
los campos que se utilizaran en el reporte, para este ejemplo se seleccionan
todos los campos.
21.- Es posible agrupar los
registros para facilitar la lectura del reporte, en este caso se agruparan por categoría.
22.-Una vez terminada la
configuración se hace clic en el botón Terminar
para que el asistente crear el reporte con la extensión jpxml.
23.-En la siguiente imagen se ve
el reporte generado en una vista de diseñador, lo que significa que se pueden
ordenar de una forma diferente los campos, o cambiar el color y el texto del título
del reporte o anexar el logotipo de la empresa.
24.- Al abrir nuevamente el
proyecto de NetBeans se ve que en la
carpeta Reportes ya existe el archivo reporteProductos.jrxml,
que es el archivo que contiene el diseño del reporte que se va a generar.
25.-En iReport al hacer clic en la vista Preview se ve el reporte final incluyendo los datos existentes de
la Base de Datos.
26.-Al regresar nuevamente a NetBeans se ve que en la carpeta
Reportes ahora existen dos archivos de nombre reporteProductos pero con extensión jasper y jrxml.
La extensión jrxml es el diseño del reporte, y el archivo jasper es el reporte compilado y listo para se visualizado.
Después de este paso se puede
cerrar iReport y regresar a NetBeans para agregar el código correspondiente
para compilar el reporte y posteriormente visualizarlo.
27.-En Netbeans se agrega el siguiente código con el que se van a generar
dos objetos uno de tipo JasperPrint
que es el que permite generar el reporte y con los datos que obtenga de la base
de datos. El otro objeto es de tipo JasperViewer
que se encarga de visualizar el reporte.
Comentarios