Consultor tecnológico de desarrollo de proyectos informáticos.
Ingeniero Informático *
Creador del blog Rueda Lenticular
Charla sobre Pluto
Puedes encontrarme en Autentia: Ofrecemos servicios de soporte a desarrollo, factoría y formación
Somos expertos en Java/J2EE
Fecha de publicación del tutorial: 2008-02-11
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 + ")");
}
}
}
A continuación puedes evaluarlo:
Fecha publicación: 2012-03-13-14:52:01
Autor: jarol
Fecha publicación: 2009-06-27-12:42:30
Autor:
Fecha publicación: 2008-03-10-01:31:10
Autor:











