Ireport con ODBC

3
27843

Informes con fuente de datos ODBC

Introducción

En este tutorial vamos a hablar de otra de las múltiples
posibilidades que nos ofrece la generación de informes con JasperReport
e iReport. En este caso vamos a ver como usar una fuente de datos o datasource
ODBC para generar nuestros informes. En Adictosaltrabajo.com
hay actualmente varios tutoriales relacionados con JasperReport e iReport
que vienen muy bien si no se conocen dichas herramientas.

Entorno

Este tutorial está escrito usando este entorno:

  • Sistema operativo: Windows XP Pro.
  • JDK 1.5.0_10.
  • iReport 2.0.4
  • Microsoft Access 2007.

Ejemplo paso a paso

Creación y configuración del datasource

Lo primero que tenemos que hacer es crearnos, por ejemplo, una
base de datos de Microsoft Access.

Aquí dejo el fichero utilizado para la realización
de este tutorial para que os sirva de ayuda. tutorial-odbc.mdb.

Una vez hecha la base de datos tenemos que crearnos una fuente
de datos ODBC en nuestra máquina. Para ello vamos a «Panel de
control -> Herramientas administrativas -> Orígenes de datos ODBC
«.

En esta ventana damos al botón «Agregar…»
y elegimos el controlador de «Microsoft Access Driver«.

Damos el botón finalizar y nos aparecerá una nueva
ventana, donde debemos dar un nombre a nuestro nuevo origen de datos, una descripción
(opcional) y además tenemos que seleccionar nuestro fichero de base de
datos haciendo click en el botón «Seleccionar…«.

Tras dar al «Aceptar» podremos ver ya nuestra
nueva fuente de datos lista para ser utilizada.

NOTA: Hay que tener cuidado de no mover ni renombrar nuestro fichero *.mdb,
porque sino nuestra fuente de origen de datos dejará de funcionar.

Creación y diseño del informe

Lo que tenemos que hacer a continuación es crear un informe
de ejemplo y usar la nueva fuente de datos. Para ello nos vamos a ayudar de
iReport.

Lo primero que tenemos que hacer es crear una nueva conexión
/ fuente de datos para nuestro informe («Datos->Conexión
/ Fuente de datos
«). Elegimos la opción de «Conexión
Base Datos JDBC
«.

En la siguiente ventana tenemos que configurar la nueva conexión,
para ello elegimos como controlador JDBC el «sun.jdbc.odbc.JdbcOdbcDriver»
y como JDBC URL debemos poner «jdbc:odbc:Tutorial«,
donde «Tutorial» es el nombre del orígen de datos anteriormente
creado. Guardamos y ya tenemos la nueva fuente de datos lista para ser usada
en nuestros informes.

Ahora tenemos que crear una consulta para nuestro informe («Datos
-> Consulta de informe
«), como por ejemplo esta.

Ya sólo nos queda diseñar nuestro informe como deseemos…

Ahora lo ejecutamos y vemos el resultado...

Ejecución en aplicación

Una vez creado y diseñado nuestro informe con un datasource ODBC vamos a integrarlo en una aplicación (J2EE, web, cliente/servidor, etc) ya que esta es la forma más común de utilización de los informes para nuestro negocio.

Para ello vamos a implementar una sencilla aplicación Java...

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.util.HashMap;

import java.util.Map;

import net.sf.jasperreports.engine.*;

public class test {

static Connection conn = null;

private static final String USER = "";

private static final String PASSWORD = "";

private static final String REPORT_PATH = "C:\\Alfonso\\tutoriales\\odbc\\test.jrxml";

private static final String REPORT_EXPORT_PATH = "C:\\Alfonso\\tutoriales\\odbc\\test.pdf";

public static void main(String[] args) {

// Cargamos el driver JDBC/ODBC

try {

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

} catch (ClassNotFoundException e) {

System.out.println("[error] Driver MySQL JDBC no encontrado");

System.exit(1);

}

try {

conn = DriverManager.getConnection("jdbc:odbc:Tutorial", USER,PASSWORD);

} catch (SQLException e) {

System.out.println("[error] Error de conexión: " + e.getMessage());

System.exit(2);

}

try {

Map parameters = new HashMap();

// Compilamos el informe jrxml

JasperReport report = JasperCompileManager.compileReport(REPORT_PATH);

// Rellenamos el informe con la conexion creada y sus parametros establecidos

JasperPrint print = JasperFillManager.fillReport(report,parameters, conn);

// Exportamos el informe a formato PDF

JasperExportManager.exportReportToPdfFile(print, REPORT_EXPORT_PATH);

} catch (Throwable e) {

System.out.println("[tutorial] Error en la generacón del informe "

+ REPORT_PATH + "(error: " + e + ")");

}

}

}

3 Comentarios

  1. hola muy buen tutorial . tengo un problema qu eno puedo solucionar . es que tengo que jalar datos de 2 bases de datos diferentes para un solo reporte e uzado connection mandandole los parametros url,user,pass pero me sale que no esta bn la cadena de conexion esoesta en un subreporte ayudenme por favor de antemano gracias

  2. buen tuto, pero alguien podria ayudarme por favor. miren tengo mis reportes generados en access(*.mdb) y mi pregunta es, como puedo alimentar esos reportes desde una aplicacion web de netbeans o acaso es necesario pasar el reporte a ireport? o existe la forma de solo mandar parametros directamente al reporte de access? gracias

  3. hola buenas, tengo un problema ya que al crear una nueva conexion jdbc con la base de datos no me encuentra el driver sun.jdbc.odbc.JdbcOdbcDriver, como puedo introducirlo en mi NetBeans? Gracias xx

Dejar respuesta

Please enter your comment!
Please enter your name here