Alfonso Blanco Criado

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

Ver todos los tutoriales del autor

Fecha de publicación del tutorial: 2008-02-11

Tutorial visitado 19.904 veces Descargar en PDF
Informes con fuente de datos ODBC

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:

Regístrate para evaluarlo

Por favor, vota +1 o compártelo si te pareció interesante

Share |
Anímate y coméntanos lo que pienses sobre este TUTORIAL:

Fecha publicación: 2013-10-14-19:22:06

Autor: silvershinne

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

Fecha publicación: 2012-03-13-14:52:01

Autor: jarol

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

Fecha publicación: 2009-06-27-12:42:30

Autor:

[wander] hay una pregunta, he hecha un reporte en el pluing de netbeans 6.5, le he instalado todas las librerias, desde iREPORT HASTA el JASPERREPORT. Estos me creans los reportes a la perfeccion. Pero no se como poder lansar el reporte, cuando lo necesite ver, desde un boton o lista. he visitado todos los FAQ..pero nadie me da una ajuda con esta. Lo que quiero es poder visualisar este reporte cuando lo necesite...incluso tengo un JASPERBUTTOMREPORT en la paleta de componentes y no se como configurarlo para que me lo muestre....favor de enviarme cualquier apollo

Fecha publicación: 2008-03-10-01:31:10

Autor:

[Aron] Muy buen Tutorial. PODRIAN usar SQL SERVER 2000 en vez de Access, gracias de ante mano.