viernes, 1 de febrero de 2013

MOSTRAR IMAGEN EN FORMATO BLOB EN IREPORT

En esta oportunidad les mostrare como mostar una imagen guardada en una base de datos MySQL, en formato BLOB  o LONGBLOB.

La estructura de la tabla sera de la siguiente manera:



Expresado en  SQL:


CREATE  TABLE IF NOT EXISTS `bdsistemax`.`demo` (
  `id` INT(11) NOT NULL AUTO_INCREMENT ,
  `cadena` LONGBLOB NULL DEFAULT NULL ,
  PRIMARY KEY (`id`) )
ENGINE = InnoDB
AUTO_INCREMENT = 2
DEFAULT CHARACTER SET = latin1
COLLATE = latin1_swedish_ci


como podemos observar hay un registro en la base de datos


Una vez guardada la imagen no queda crear un reporte con la herramienta IREPORT, como se observa a continuación:


el objeto seleccionado corresponde a un Image:
En la propiedades del objeto Image ubicamos "Image Expression" y escribiremos las siguiente linea:

JRImageRenderer.getInstance((byte []) $F{demo_cadena})

como se muestra a continuación:


Luego de seguir los pasos nos queda compilar y probar la funcionalidad de nuestro reporte.


De esta manera se muestran en el Ireport las imágenes guardadas en formato blob en una base de datos MySQL.

No se olviden de comentar y cualquier consulta me pueden escribir al siguiente E-mail: camposvidallusmilo@gmail.com. Hasta la próxima oportunidad..

10 comentarios:

  1. excelente, justo lo que andaba buscando, muchas gracias por compartir

    ResponderEliminar
  2. Gracias Broder, estaba trabado con este tema desde sql server.
    Sos grande.!

    ResponderEliminar
  3. Buenas tardes alguna forma de mostrar imagen en irreport. sin conexion a mysql, y sin ponerle la direccion donde esta guardada la imagen fisica en la pc.
    yo quiero mostrar una imagen en mi reporte. la imagen lo recupero desde la base de datos. pero ocupo el modo cliente servidor usando tecnologia RMI, con peticiones remotas.. lo que hago es que si puedo insertar guardar y consultar la imagen..
    recuperar la imagen de la base de datos y la pongo en mi cliente.. de ahi quiero pasar esa imagen con unos datos al reporte.. irreport... de echo si puedo pasar datos mediante un datasour a mi reporte, pero no se como pasar la imagen a irrepor. porque la imagen que me retorna el servidor rmi, es mediante un vector de bytes..
    alguna forma o sugerencia...

    ResponderEliminar
  4. Buenos días , tengo un problema con este tema , tengo iReport 5.0.1 y postresql 9.2. Hice lo mismo de este post pero no funciona. ¿Hay alguna diferencia con postgresql?

    ResponderEliminar
  5. Buenos dias, en mi caso cuento con IReport y Oracle se guardan en blob las imagenes y en el IReport se muestran bien, sin embargo al momento de exportar en PDF en java me trae problemas. No se que puedo estar haciendo mal.

    ResponderEliminar
  6. Gracias eres un Crack Papuuu lo necesitaba

    ResponderEliminar
  7. No me funciona me un mensaje "error mostrando pagina del reporte. Vea la consola por detalles."

    ResponderEliminar
  8. Hola que tal, a mi no me muestra nada, podrias ayudarme?

    ResponderEliminar
  9. Como puedo hacer esa misma expresion en JavaSript??

    ResponderEliminar
  10. Gracias amigo, no encontraba ningun video en youtube sobre esto me haz ayudado mucho!!

    ResponderEliminar