viernes, 21 de octubre de 2011

Insertar imágenes en Oracle Reports

Existen varias maneras de incluir imágenes en nuestros reports. En este artículo os hablaré de algunas de esas  posibilidades.

La primera consiste en incrustar directamente la imagen. Para ello nos vamos al diseño del informe y desde el menú Insertar → Imagen seleccionamos la imagen que deseemos. Esta manera es la más sencilla, pero tiene dos inconvenientes, sobre todo si utilizamos una misma imagen (como un logotipo) en muchos reports diferentes: el tamaño del fichero del report aumenta puesto que la imagen va incrustada, y si en un momento dado hubiera que sustituir la imagen por otra habría que modificar los reports uno a uno.



Otra posibilidad es insertar la imagen como un enlace a un archivo de tipo imagen, opción que tenemos disponible en el menú Insertar → Enlace de Archivo. La ventaja en este caso es que las imágenes van vinculadas, por lo que no tendríamos los problemas mencionados antes. En cambio, tenemos algunos inconvenientes:

- Si el Formato de Archivo es “Imagen” (en las propiedades del enlace), tendremos que indicarle cuál es el archivo de imagen con su ruta completa en tiempo de diseño.


- Si es “Imagen URL” tenemos más flexibilidad puesto que podemos utilizar parámetros de usuario para conformar la URL. Estos parámetros se deben encerrar entre los caracteres &< y > para que Reports haga la sustitución en tiempo de ejecución. Un ejemplo de ruta sería: &<P_PATH>/logo.gif. Eso sí, vuestro report tiene que encargarse de obtener el valor adecuado para el parámetro antes de visualizar el informe (dicho valor debe tener formato de URL), por ejemplo dándole valor en el trigger BEFORE REPORT. El inconveniente de este sistema es que si visualizáis el report en formato PDF, no se mostrará la imagen, sino un hiperenlace a la misma.

Una tercera posibilidad consiste en insertar un campo en el diseño del informe. Dicho campo debe estar basado en una columna de nuestro modelo de datos, como puede ser un campo de una consulta o un campo fórmula. Está columna deberá contener la ruta (local al servidor) del lugar donde se encuentra la imagen. Por último, hay que cambiarle un par de propiedades al campo en el diseño: Leer archivo con valor "Sí" y Formato de Archivo con valor "Imagen".


De esta manera tenemos la flexibilidad de poder obtener la ruta de las imágenes en tiempo de ejecución y además la imagen se mostrará aunque el tipo de salida sea PDF. Otra posibilidad es especificar el Formato de Archivo como “Imagen URL”, pero en este caso tendremos el mismo problema que en el caso anterior al intentar mostrar la imagen en un report de tipo PDF.

1 comentario:

  1. Hola, en mi trabajo usan una version muy vieja de reports back, quiero cargar una imagen desde un url, de mi servidor que dara respuesta con un http:sitio/cual.asp?idImagen=10, y que el reporte tome el url generado en run y me devuelva impresion de dicha bmp jpg ... Muchas gracias de antemano si tienes alguna idea de como hacerlo

    ResponderEliminar