Creación de Reportes en Java - Parte III

Si has llegado aquí sin leer la primera y segunda parte, debes leerlos antes de continuar:

Ir a la Segunda parte

En esta última parte del tutorial veremos como ejecutar desde nuestra aplicación Java el reporte que ya hemos diseñado.

Si se percatarón que al ejecutar el reporte desde la vista de diseño, automáticamente se genero un archivo con el mismo nombre que el reporte pero bajo la extensión .jasper. Este archivo es el que deberemos mandar a llamar desde nuestra aplicación java.

Existen varias clases que nos serviran para ejecutar al reporte desde nuestra aplicación, por ejemplo la clase JasperPrint, JasperReport, etc.

Todas estas clases se encuentran en el paquete net.sf.jasperreports y dicho paquete esta en la libreria jasperreports-2.0.3.jar.

Aqui hay algo importante que señalar, cuando se descarga el programa de iReport trae consigo mismo a la libreria de JasperReport (recordemos que la que genera en si los reportes es JasperReport, iReport es solo la herramienta visual para diseñar los reportes y hace uso de JasperReport), además tambien trae algunas otras librerias que son necesarias para poder ejecutar los reportes y además algunas otras librerias que serán utiles por ejemplo cuando se desee generar reportes con gráficos, histogramas, exportar a excel, etc.

Entonces, lo que se hace cuando se trabaja con el programa de iReport, es propiamente diseñar el reporte ahi, una vez compilado, el archivo .jasper que nos genera lo copiamos a nuestra carpeta del proyecto, luego abrimos NetBeans, se escribe el código pero obtendremos algunos errores pues NetBeans no sabrá en que paquetes se encuentran las clases que arriba mencione (JasperPrint, JasperReport, etc). Entonces lo que se hace es agregar la libreria jasperreports-2.0.3.jar (panel izquierdo, click derecho en Libraries–add Jar/Folder) y con esto ya no obtendremos errores.

Ahora bien, no solo era necesario agregar esa libreria, también es necesario agregar otras más que como ya comentaba son necesarias al momento de ejecutar el reporte. Una vez que se tienen tales librerias, ahora si se proseguia a escribir el código y listo!!

¿A donde voy con todo esto?… Resulta que ahora no estamos usando el programa de iReport de forma independiente! Estamos usando el plugin de iReport para NetBeans. Por lo cuál era de suponerse ó al menos yo lo supuse, que al instalar dicho plugin, me agregaria esas librerias al path donde NetBeans busca los paquetes necesarios a importar y por lo cuál ya no iba a ser necesario agregar esas librerias en cada aplicación que generará reportes.

Sin embargo, esto no fué así. Al momento de escribir el código, obtuve errores precisamente porque no encontraba la localización de las clases JasperReport, JasperPrint, etc., clases que se encuentran como ya comenté en la libreria jasperreports-2.0.3.jar.

Entonces lo que tuve que hacer, fué copiar esas librerias que vienen al bajar el programa de iReport (ojo! dije programa de iReport, NO el plugin para NetBeans) y agregarlas a mi proyecto. Ahora bien, no estoy seguro de que esto deba ser así, sigo pensando que al instalar el dichoso plugin debe venir ya todo preparado para evitar la molestia de tener que estar agregando al proyecto esas librerias, sin embargo si no se hace así, se obtienen errores, desconozco en este momento si existe algún truco o alguna opción para evitar esto, por lo cuál tuve que agregar manualmente tales librerias.

Ahora bien, lo anterior no fué ningún problema, de hecho al momento que obtuve el error supe de inmediato que faltaba la libreria de jasperReport, sin embargo lo comentó aqui para que ustedes sepan.

En el proyecto que bajaron, existe una carpeta llamada misClases, dentro de dicha carpeta se encuentran las librerias. Si han abierto el proyecto, seguro se han percatado que en la clase ReporteAgenda hay errores:

errores_libreria.png

Entonces, lo que deben hacer es copiar la carpeta misClases a C:\ ó a la carpeta de Java ó a algun otro lado donde ustedes deseen y entonces agregar todas las librerias de dicha carpeta al proyecto de NetBeans.

agrega_libreria

Al hacer esto, ya no obtendremos los errores y podremos ejecutar el reporte desde la aplicación Java. Bastará con introducir el número de ID del contacto que se desea visualizar y presionar el Botón.

aplicacion_reporte.png

Nuevamente pongo el link de descarga del proyecto:

http://www.mediafire.com/?dz9cxgtigzt

http://www.mundobyte.net/archivos/Java_2007/Ejemplo_Reportes.zip

El archivo de llama Ejemplo_Reportes.zip

Por último les comento que para crear el ejecutable, como saben, NetBeans generá la carpeta llamada “dist ” dentro de dist es donde deberan copiar la carpeta que contiene los reportes con su extensión .jasper, en este ejemplo, la carpeta es llamada “reportes”. Si dicha carpeta “reportes” no esta dentro de la carpeta “dist” el programa no se ejecutará, no funcionará sencillamente por que el programa no encontrará en el path al archivo .jasper.

Esperando este tutorial les sea útil como iniciación para aquellos que recien se inician en Java y llegado al tema de Bases de Datos, reportes, impresiones, etc. Si te ha servido la información, quizá puedas tomarte la molestia de dejar algún comentario y así saber si ha sido de interés para alguien.

Saludos!!

41 Responses to “Creación de Reportes en Java - Parte III”

  1. Perfecto amigo justo lo q estaba buscando..
    pero me puedes explicar como abrir tu proyecto directamente..

  2. Hola Hugo!

    Pues simplemente tienes que descargar el archivo, descomprimirlo, abrir netbeans y desde ahi abrir la carpeta!

    Recuerda que antes debes ejecutar el script sql para crear la BD en MySQL y agregar las librerias a NetBeans. Todo esto se explica a lo largo de este tutorial.

    Saludos!!

  3. Estimado compañero en el ejecutable no me ejecuta el reporte hago la consulta pero sigo trabajando en ello creo que es porque no logra identificar la ruta del reporte

  4. Hola amigo, no puedo descargar el proyecto, intente varias veces y me descarga fraccionado. Lo que estoy necesitando es el codigo del boton para llamar el reporte creado.
    Desde ya muchas gracias.

  5. Actualmente estoy intentando hacer funcionar el ejemplo.Pero igualmente creo que es fantastico que hayan paginas como esta que explican de una manera didactica paso a paso el desarrollo sobre todo del jasper report.

  6. Ya lo compilo he creado varios reportes utilizando jasper y llamando a netbeans el problema se me da cuando utlizar el ejecutable de programa no encuentra el archivo especifico

  7. HOLA!

    Referente al problema del link de descarga, estoy teniendo unos problemas con ello y en estos momentos ya voy de salida, he estado un poco ocupado en estos dias y por ello tampoco he actualizado el blog.

    Agradezco a ustedes sus comentarios, les pido me den 1 dia más, a más tardar el día de mañana MARTES 15 de ENERO arreglo el link de descarga.

    REFERENTE AL PROBLEMA DE NO PODER CORRER EL EJECUTABLE ES DEBIDO A QUE NO ENCUENTRA LAS LIBRERIAS EN EL PATH. RECUERDEN NO SOLO CARGAR LA LIBRERIA jasperreport.jar SINO TAMBIEN LAS DEMÁS QUE MENCIONO, TODAS CARGUELAS EN NETBEANS Y AL INTENTAR GENERAR EL EJECUTABLE JAR LES AGREGARA TALES LIBRERIAS AUTOMÁTICAMENTE,.

    SALUDOS!!

  8. Buen aporte, gracias por el tiempo que dedicaste en eso.

    Se espera el link de descarga del codigo.

  9. Esta excelente esta pagina pero sigo con el problema el ejecutable no levanta el reporte en netbeans 6.0 si lo levanta cuando le doy f6 o run ejecutando la ventana creada pero cuando utilizo el .jar ejecutable no lo hace ya agregue las liberias de la carpeta que trae el proyecto pero aun asi no lo hace dice que la ruta del archivo no fue encontrada segun la excepcion que me lanza pero en netbeans es perfecto lo encuentra

  10. si alguien que bajo el ejemplo, me podria enviar a mi mail mrotela81@gmail.com, les estaria muy agradecido.

  11. HOLA A TODOS!

    Si alguien de las anteriores personas que escribio antes a este mensaje visita el blog, les pido una disculpa, estuve muy ocupado y no tuve tiempo de corregir los links de descarga.

    FInalmente estan solucionados. Cambie de host gratuito:
    http://usuarios.lycos.es/mundobyte/Java/

    El archivo de llama Ejemplo_Reportes.zip

    Ya pueden descargar el proyecto, y el código. Recuerden seguir los pasos indicados en el tutorial para poder ejecutarlo.

    Referente a lo que una persona comentaba de no poder correr el EJECUTABLE. lo único que necesita es COPIAR LA CARPETA DE LOS REPORTES DONDE ESTA EL FICHERO CON EXTENSIÓN .jasper A LA CARPETA “dist”. EN EL EJEMPLO, DICHA CARPETA SE LLAMA “reportes”, COPIE ESA CARPETA A “dist” Y CON ESTO EL PROGRAMA YA ENCONTRARÁ EL FICHERO .jasper

    Saludos!!

  12. Buenas compañeros primero que todo felicitar lo por esta pagina tan excelente, segundo ya se porque no podía levantar el reporte desde el dist el problema era la dirección yo lo digitaba asi dist/reportes/contactos.jasper cuando era asi “/reportes/contactos.jasper” el error era que no encontraba el directorio gracias por todo mi proyecto de bases datos ya genera los reportes y ahora con esta modificación esta casi completo pronto lo voy a subir para que lo vean los demas y me puedan jusgar

  13. Felicidades, por su dedicaciòn y gran aporte. Quisiera preguntar si es posible incorporar clases ya compiladas (arhivos .class) de java a mis proyectos de NetBeans 6.0 y cual es el procedimiento a seguir.

    Muchas gracias.

  14. Hola Fernando:

    SI es posible hacerlo. Solo coloque dichas clases en la carpeta “build” que es donde se guardan los bytecodes compilados (.class) de los ficheros .java

    COn esto solo será necesario importar dicha clase, pero como sabe, netbeans le da la sugerencia de importar los paquetes. Por ejemplo si tiene el .class llamado Eemplo.class dentro del paquete prueba, deberia importar de esta forma:

    import prueba.ejemplo.*;

    y de esta forma ya puede hacer uso de la clase “Ejemplo”:

    Ejemplo objeto = new Ejemplo();
    objeto.metodo();

    Reciba un cordial saludo!!

  15. hey saludos
    disculpa tengo un problemita al momento de llamar mi reporte desde netbeans, me manda que no puede ejecutarse la sentencia SQL de reporte, desde el modulo de iReporte al hacer el preview si hace bien la consulta netbeansme genera bien el reporte y todo bien pero ya cuando quiero llamarlo desde netbeans me marca ese error y nose que hacer que me recomiendas o como podria solucionar este problema.;

  16. SI pudiera dar mas detalles o ser un poco mas entendido. Tambien seria bueno pusiera al menos las primeras lineas del error que le arroja.

    Saludos!!

  17. Saludos, tengo poco tiempo desarrollando en java, y el asunto es este, segun lo explicado para q funcione los reportes esta todo okey, pero esto solo funciona cuando la aplicacion funciona en windows, acabo de probar una aplicacion usando los mismo criterios para hacer andar los reportes y en windows XP funciono normal, pero en ubuntu, kubuntu y xubuntu no ubica a los reportes y manda una exception de que no encuentra el archivo.jasper, alguien le sucedio lo mismo?, alguna solucion?, gracias por el time

  18. HOLA:

    No es cosa de Windows o Linux, solo tiene que establecer bien en el código la ruta en donde se localiza el archivo .jasper.

    No debe haber mayor problema en ello.

    Intente cambiar la ruta, en caso de que no pueda, mandeme un correo a windoctor@mexico.com y trataré de responderle a la brevedad posible.

    saludos!!

  19. En respuesta a que no se ven los reporte en linux talves te funcione si pones la direccion completa te recuerdo que linux tiene que ser especifico sobre las direcciones por ejemple en tu carpeta home lo tienes todo intenta escribir asi home/Reportes/reportes.jasper para que encuentre la ubicacion o si no solo escribre reportes/reportes.jasper ya que en el ejecutable entra de esta manera al reporte

  20. Esta muy bueno el material, ahora quisiera hacerte una pregunta, yo necesito realizar reportes con este estilo me viene muy bien, pero yo no utilizo bases de datos, los datos lo genero en el tiempo y no tienen persistencia, es decir crees que se pueda utilizar para hacer reportes sin base de datos.

  21. Gracias por la data, el manualcito es realmente util para Net Beans..Soy de Argentina

  22. lo maximo esta ayuda sobre ireport y net beans. ahora puedo avanzar sólo gracias a los primeros pasos que aprendi de este tutorial :D.

  23. Hola buen aporte lo que queria pregunarte es lo siguiente estoy haciendo un pequeño sistema de facturacion pero al generar la vista previa de una factura “x” no puedo porque aun no se guardan en la base de datos y no puedo hacer la consulta sql(”select * from factura” ;) , te agradeceria de antemano si me podrias ayudar gracias

  24. Hola buenas noche, lei todo el tutorial y pues solo lo manejas con NetBeans, sabras como le puedo hacer para hacerlo con JSP y en dreamweaver

  25. hola
    esta super bueno el tutorial, pero tengo un gran problema, hace una semana que estoy tratando de hacer un reporte que contenga dos paginas, he tratado con subreportes y saltos de pagina pero siempre estan limitados al tamaño de la hoja. si alguien sabe como hacer esto me ayudaria bastante.

    Luis

  26. tengo problemas a la hora de importar las librerias no se como hacerle, ya me desesperé, y no encuentro la manera de jalar las clases..alguno de tus consejos me haria bien.. :-(

  27. Hola, fijate k tengo un problema… esta muy kageta tu pagina… jaajaja pero bien kalabaza… weno almenos les kitas las orejas de burro a unos kuantos… oye x cierto… le voy a dar matarile a tu UBUNTU.. jaja saludos!!
    atte. KM_CORP!
    p.d. felices vacaciones…

  28. HOla KM_Corp

    La idea original del sitio no era publicarla, solo era para referencias personales. Después lo kgta del sitio es por que no me gusta diseñar y por que no tengo tiempo para hacerlo.

    Por otro lado, actualmente no uso mucho la distro de ubuntu, fue la primera que use, estoy usando mandriva y gentoo.

    Por último, reciba un cordial saludo xD

  29. por cierto, ya supe quien es. Póngase mejor a estudiar sus temas de labview.

  30. Hola, soy novata programando; me gustaria saber si podrias ayudame orientandome en como crear un reporte desde un programita desarrollado en netbeans el cual almacena un conjunto de datos de unos habitante, lo que necesito es desarrollar un modulo que permita al usuario , elegir los campos que quiere que se visualicen en el reporte y por cuales campos quiere filtrar la informacion, yo he creado unos reportes en ireports que trabajan con parametros , pero esto igual me restringue un poco.
    Conoceran algun componente que cubra estas caracteristicas que yo pueda reutizar??
    Agaradezco de antemano su pronto colaboracion

  31. Estiamdo, excelente tuto, va directo a favoritos.

    Muy didáctico y claro. Como dicen arriba sería genial poder contar con una pequeña reseña del código Java necesario para la ejecución del reporte y una explicacioncilla del mismo. Pero ya es quejarse de lleno :-D

    Gracias nuevamente y Sludos desde Argentina,

  32. Muy buen aporte, espero que me funcioné y si asi es me has ganado el cielo

    Muchas gracias y es muy importante tu aporte

  33. Una consulta si quiero consultar fechas debo de crear dos parametros de la mima manera como se crea para los obtenga java?

  34. hola que tal, excelente aporte, pero sigo sin poder ver los reportes cuando ejecuto el .jar ya copie los reportes a la carpeta dist y no me los muestra, cabe mensionar que no los mando a llamar com lo haces tu, sin embargo en netbeans me funciona perfecto pero en el ejecutable no…
    este es el codigo que uso para llamarlo
    String reportName=”SOLCAA/”+reporte+”.jasper”;

    Map parametro = new HashMap();
    parametro.put(”fech_ini”, fecha1);
    parametro.put(”fech_fin”, fecha2);
    parametro.put(”Total”, total);

    InputStream fis=this.getClass().getClassLoader().getResourceAsStream(reportName);

    JasperPrint print=JasperFillManager.fillReport(fis, parametro, conex.con );

    JasperViewer jv=new JasperViewer(print,false);

    jv.setTitle(”SOLCAA REPORTES”);
    jv.setVisible(true);

  35. Hola!!!

    gracias me sirvio mucho

    ta chido k alla gente como tu pa yudarnos jiji

    tks

  36. Perfecto! manual dumb-proof…

    Por cierto, sabes como agregar una imagen (la tengo en la base de datos en bytes[ ]) a un reporte sin necesidad de crear el archivo en un directorio… ?

    Agradecería mucho tu respuesta…
    te antemano arigatoo!

  37. Buenisimo, la verdad que te mereces 100 puntos loco.
    Me sirvio mucho.
    Mucha Gracias!!!!!!!!!!!!!!!!!

  38. saludos para los que le salia el error “master …..” no se que mas copien la carpeta reportes del ejemplo al pero no lo hagan en dist sino ponganlo al costado de las carpetas principales (src, buid, dist, etc) y eso es todo

  39. Saludos,

    Como puedo colocarle una fotografia en el reporte usando este plugin?

    Gracias

  40. Que buen material este buscaba como conectar a Cryatal Report y encontre ireport es una buena herrmienta descgue el Pluing y sin problemas desde el princiop feliciades de verdad he guadado este sito entre los favoritos uno nunca sabe cuando puede necesitar estas cosas

  41. hola… era para preguntar si existe algun tutorial para conectar el ireport con el hibernate ya que estamos haciendo una tesis y estamos utilizando estas herramientas que son fantasticas pero se nos presento este problema… queremos hacer reportes y queremos que el ireport se conecte con la persistencia que estamos manejando y no directamente con la base de datos.. desde ya muchisimas gracias…

Leave a Reply