Desarrollo & Ideas & Trucos 13 dAmerica/Chicago Febrero dAmerica/Chicagol 2008 02:02 pm
Como imprimir imágenes almacenadas en tablas sin usar campo general en los reportes (VFP 9)
Bueno, hasta hace poco lo que hacáa al necesitar imprimir una imagen en un reporte era usar campo general para almacenarlas o sacarlas a un directorio temporal para así poder mandarlas a impresión.
Pero ahora con el campo BLOB en VFP9 podemos almacenar el contenido de una imagen y al mismo tiempo imprimirla en un reporte sin necesitar hacer conversión a un campo general.
Veamos un ejemplo
Create cursor qImagen (imagen blob)
append blank in qImagen
lcDir =FullPath(Curdir())
replace qImagen.imagen with filetostr(getfile([jpg;bmp;gif]))
cd (lcDir)
private oImg
oImg = newobject([image])
oImg.pictureVal = qImagen.imagen
Necesitamos también un reporte con un objeto Picture/OLE Bound establecido así:

Ahora corremos el reporte
report form "NuestroReporte" preview
Pero y que pasa si queremos imprimir imágenes que están almacenados en una tabla (en registros diferentes)?
Grabamos lo siguiente como GetImg.prg
*Function getImg
lParameters nId, cImgCont
oImg = newobj([image])
oImg.pictureval =cImgCont
return oImg
Creamos un reporte y le agregamos un objeto Picture/OLE Bound y le establecemos la propiedad así:

Ahora podemos probar la funcin en el reporte:
use in select([qImagen])
Create cursor qImagen (numero i,imagen blob)
append Blank in qImagen
append Blank in qImagen
append Blank in qImagen
append Blank in qImagen
lcDir =FullPath(Curdir())
lcFile = getfile([jpg;bmp;gif])
update qImagen set numero =recno(),imagen =filetostr(lcFile)
report form “MiReporte” preview
Bueno hasta la próxima!
blob, Desarrollo, getfile, Ideas, imagen, listener, olistener, picture, reporte, Trucos vfp
on 08 Abr 2008 at 17:37 1.Walkit Wow
dijo …
Que bien que tengamos un sitio así en Guate.
Los felicito, y éxitos. El código lo voy a probar.
on 08 Abr 2008 at 19:57 2.Jorge Mota
dijo …
@Walkit:
grcias, ojalá y te sirva.
on 10 Jun 2009 at 9:20 3.Leo Saldivar dijo …
en presentacion preliminar si muestra el reporte péro al envio a la impresora no, necesito ayuda me podrias enviar un ejemplo leosaldivar@hotmail.com
on 10 Jun 2009 at 15:24 4.TENGO UNA MEROR FORMA DE HACER LAS COSAS dijo …
tengo una forma mas facil de hacer eso y mucho más rápida.
on 08 Jul 2009 at 11:44 5.lizardo dijo …
saludos
ami a la hora de enviar la impresion me sale el grafico grande tapando el resultado del informe
en el preview se ve bien, en la matricial tambien pero en impresoras de tinta como hp,lexmar sale grande.
probe cambiando en las propiedades del campo general
y el que me mantiene el tamaño de imagen es la opcion clip contents, pero me lo imprime en el medio
cambie los lugares pero igual..
alguna idea??
GRACIAS
on 15 Sep 2009 at 16:09 6.DIEGO dijo …
EL programa funciona en vista preliminar pero al realizar la impresion en laser no se imprime nada y en matricial imprime agrandada por favor enviame una solucion al correo diegoyamaa@yahoo.com
on 25 Nov 2009 at 11:07 7.Luis Ruano
dijo …
Por favor enviar un ejemplo.
yo uso una tabla llamada Personal con los campos
Codigo c 10
nombre c 40
apellidospaterno c 25
apellidomaterno c 25
foto blob
En mi editor de reportes no aparece la opcion de:
Expression o variable nombre me podria decir por favor a que se debe.
Muchas gracias.