Imagen dinámica en un reporte de vfp

Quisiera saber si me pudiera ayudar con el siguiente problema
que me surgió
Estoy usando vfp 9.0 Hago un reporte con los datos de unos
productos básicamente “clave” “descripcion” “precio” y “foto” la foto la tengo
guardada con el nombre de la clave por ejemplo en articulo con la clave “1” su
foto está guardada con el nombre “1.jpg” lo que quisiera hacer es poner en el
reporte la fotos de varios artículos
Por ejemplo

|clave|                |descripción|                   |precio|                  |foto|
1 11111111 11.11 1.jpg
2 22222222 22.22 2.jpg
3 33333333 33.33 3.jpg
Mi problema es como hacer que en el reporte se muestre una
imagen diferente para cada registro, no sé si mi explicación haya sido lo
suficiente mente clara como para exponer mi problema.
Espero me pueda ayudar a encontrar la solución a mi problema
de antemano le agradezco su tiempo y su ayuda

2

2 respuestas

Respuesta
1

Como estas para hacer esto tenes que guardar la imagen en un campo general en la tabla y poner un objeto imagen que en vez de buscar un archivo busque en la tabla y l campo general. En fox 6 reconoce BMP en el 9 creo que ya jpg, gif, png.

Suerte .

no hay alguna forma de declarar variables en el reporte? Porque en un form tengo el siguiente código
cveimg1=RTRIM(ccveprod.cveprod)
cveimg=cveimg1+".jpg"
IF FILE("..\inventario\imagenes\"+cveimg)
thisform.image1.Picture="..\inventario\imagenes\"+cveimg

hay alguna forma de hacer esto en el report?
Agradezco su tiempo y su ayuda!
Saludos

Mm declarado variable en el reporte no se si tendrás el resultado que tenes, lo que podrías hacer también es renombrar el archivo de imagen de acuerdo a lo que necesites ver en el reporte, de todas formas voy a investigar un poco a ver si se puede sacar por variable la imagen.

IUn abrazo

Respuesta
1

Pones un control imagen en la banda detalle en la parte donde dice origen de la imagen seleccionas archivo y escribes IIF(FILE(clave), clave,"")

Hola que tal primero que nada muchas gracias por su ayuda, pero quisiera comentarle que no pude hacer que funcionara con la instrucción que me indico, me sale el siguiente error “El campo debe ser de tipo general
Quisiera saber si me puede explicar un poco de cuales son los parámetros de esta instrucción, mi campo clave en mi tabla se llama "cveprod" así que lo puse de la siguiente manera
IIF(FILE(cveprod),cveprod,"")

Lo estoy aplicando mal?

En ningún lado le tengo que poner .jpg? eso me lo detecta automáticamente?
O hay alguna forma de declarar variables en el reporte? Porque en un form tengo el siguiente código
cveimg1=RTRIM(ccveprod.cveprod)
cveimg=cveimg1+".jpg"
IF FILE("..\inventario\imágenes\"+cveimg)
thisform.image1.Picture="..\inventario\imágenes\"+cveimg
hay alguna forma de hacer esto en el report?
Agradezco su tiempo y su ayuda!
Saludos

Puedes declara una variable publica y utilizar en el report, en el reporte debes seleccionar el obieto OLE, doble clic y seleccionar archivo y dentro de archivo escribir

IIF(FILE(&cveprod),&cveprod,"") Prueba y me cuentas..

Otra opción seria crear un cursor temporal:

Create Cursor articulos_tmp (código C(10), descripción C(30), imagen G)

select artículos

do while !eof()

mFile = alltrim(str(clave))+".bmp"

select articulos_tmp

appen blan

replace código with articulo.código

replace descripción with artículos.descripción

append general imagen from (mfile)

select artículos

Skip

Enddo

Y creas el reporte con este cursor.. o tabla si lo deseas, lo único es que en reporte el campo OLE debe ser campo y no archivo.

Hola! Otra vez muchas gracias por su ayuda y por su tiempo, estuve intentando hacer los que usted me indico, en el primer caso me sale un error que dice “falta ) a la función”, no lo pude corregir ya que los paréntesis están bien, no sé si usted me pueda decir dónde está el error.


El segundo caso no me queda muy claro lo que quiere que haga, estuve intentando adaptarlo a mi código pero no me sale, yo ya tengo un cursor con el cual muestro los datos en el report, el código simplificado es el siguiente


SELECT cveprod, descripción, precio FROM productos;
WHERE UPPER(ALLTRIM(cveprod)) == UPPER(ALLTRIM(Thisform.Text1.Value))
ORDER BY cveprod ASC;
into cursor curConsultap
SELECT * FROM curConsultap INTO TABLE consulta_productos.dbf
REPORT FORM "Reporte_productos.frx" PREVIEW

Intente agregarle a mi cursor el cursor que me dijo pero no encuentro la forma
No se si hay alguna manera de que en el OLE le diga que la imagen que tiene que mostrar es el campo cveprod del cursor curConsultap y agregarle el .jpg algo así como (curConsultap.cveprod)+.jpg


O como podría agregarle a mi cursor el campo “imagen G” que usted me indica.
Espero me pueda ayudar en mi problema! De antemano muchas gracias y espero haber sido claro en mi explicación
Saludos

Consulta el comando ALTER TABLE

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas