Para poder imprimir el Blob, hay que primero convertirlo a un archivo JPG para ello hay que utilizar el strtofile(), y en el reporte pones insertas un objeto OLE y pones el nombre del objeto, adjunto te envío el código del botón que utilizo para imprimir los documentos del archivo de personal que tengo en Mysql, cabe señalar que para hacer la recuperación de los datos utilizó un cursoradapter
SET SAFETY OFF
STRTOFILE(documentos.imagen,"documento.jpg",0)
REPORT FORM documento NEXT 1 TO PRINTER PREVIEW
Espero te sirva el dato
Saludos
LSCI Carlos A. Lara Plascencia
Pienso que deberias guardar en una columna el nombre de la imagen para el logo incluyendo extencion y seguir las instrucciones de los companeros
De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] En nombre de Víctor Hugo Espínola Domínguez
Enviado el: lunes, 29 de abril de 2013 03:10 p.m.
Para: publicesvfoxpro
Perdón por lo escueto del correo anterior Juan Pablo, permíteme explicar un poco más el ejemplo, el código que te envíe es de una pantalla que utilizó para capturar la documentación del archivo de personal de la fábrica donde laboro, el motor de la base de datos es MySQL en un servidor Ubuntu, para crear el cursor utilizo el siguiente query:
select documento, empleados.id, id_row, imagen,nombre
from docto_personal,empleados
where docto_personal.id=empleados.id
and empleados.id=?thisform.empleado order by document
donde empleados es la tabla con los datos generales del empleado y docto_personal es la tabla que contiene los documentos, esto me genera un cursor con la siguiente estructura:
DOCUMENTO C(45), ID I, ID_ROW I, IMAGEN G, NOMBRE C(45)
En el caso de la variable imagen, está definida en la base de datos como LONGBLOB, al recuperarla información tengo un campo binario, por lo que el reporteador no sabe qué hacer con él y es necesario transformarlo en un archivo que es cuando utilizo el strtofile(), en mi reporte lo doy de alta como un objeto ole, para que no me marque error el diseñador de formas, primero genero un archivo “documento.jpg” en blanco utilizando el paint, esto es nada más para que el diseñador me permita la creación del reporte, ya que este archivo se sustituye cada vez que se ejecuta el código, es importante que en el proyecto marques este archivo como “exclude”, para que no lo incluya en el código y que cada vez que se invoque lo busque.
Espero esto te ayude un poco en tus proyecto, si gustas te puedo enviar por correo esta y otras 2 pantallas del mismo sistema que utilizan también imágenes almacenadas en la base de datos
lcStrImagen = LogoEmpresa- funcion no valida para campo tipo general