23 de agosto de 2015

Informes con imágenes variables

Introducción

Muchas veces necesitamos realizar un informe que contengan imágenes variables cuya ruta y nombre están contenidas en un campo de una tabla. En este breve ejemplo demostraremos lo fácil que es hacerlo con Visual FoxPro.

Manos a la obra

Lo primero que vamos a realizar es creación de una tabla llamada "Alumnos" con los campos necesarios para guardar la ruta y el nombre completo del archivo de la imagen (Figura 1).

 
Figura 1: Tabla de Alumnos

Las imágenes las tomaremos de la carpeta Samples\Data\Graphics ubicada en el directorio raíz de la instalación de Visual FoxPro en las versiones 7, 8 y 9 (Figura 2).


Figura 2: Imagenes de la carpeta "Samples\Data\Graphics\"

Para la crear la tabla y completar los campos utilizamos el siguiente código. Los nombres de cada alumno será el mismo nombre de la imagen sin la extensión.

LOCAL lcRuta, lcFoto, ln
*-- Creo una tabla de Alumnos
CREATE TABLE Alumnos (Numero i, Nombre c(10), Foto c(128))
*-- Recorro las imágenes de SAMPLES\DATA\GRAPHICS
lcRuta = HOME(2)+"DATA\GRAPHICS\"
lcFoto = SYS(2000,lcRuta + "*.GIF")
ln = 1
DO WHILE NOT EMPTY(lcFoto)
  INSERT INTO Alumnos (Numero, Nombre, Foto) ;
    VALUES (ln, JUSTSTEM(lcFoto), lcRuta + lcFoto)
  lcFoto = SYS(2000, lcRuta + "*.GIF", 1)
  ln = ln + 1
ENDDO

Diseñando el informe

El ejemplo de informe que vamos a elaborar es de un carnet (credencial, tarjeta de identificación) con el nombre y la imagen de cada alumno. Incluimos en el informe un control Imagen que escogemos del Menú -> Informe  -> Insertar control -> Imagen/ActiveX dependiente (Figura 3).


Figura 3: Control Imagen

En las propiedades del control Imagen seleccionamos el origen de la imagen como "Archivo" y escribimos el nombre de la tabla y campo que contiene la ruta y nombre de la imagen (Figura 4).


Figura 4: Propiedades del control Imagen

Una vez completados todos los campos que deseamos mostrar en el carnet, la vista previa del informe nos mostrará la imagen correspondiente de cada alumno (Figura 5).

REPORT FORM Carnet.frx NOCONSOLE PREVIEW


Figura 5: Vista previa del informe

El código de este pequeño ejemplo lo pueden descargar desde el siguiente enlace: Carnet.zip (3,41 KB)

Con esta simple técnica podemos insertar en nuestros informes logotipos de distintas empresas, firmas digitalizadas, fotografías, catálogos de productos, etc., cuyas rutas y nombres de archivo se encuentran almacenados en un campo de una tabla.

Hasta la próxima.

Luis María Guayán

3 comentarios :

  1. si este codigo es muy bien pero si quiero solo poner una foto y no todas

    ResponderBorrar
  2. Una pregunta... se puede girar 90 grados el Nombre?

    ResponderBorrar
  3. Excelente. Sencillo y efectivo. Gracias.

    ResponderBorrar

Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.