Como puedo hacer reportes de inventario con fotos de cada item (las fotos están en otra carpeta)

Expertos en VisualFox... Como puedo elaborar un reporte de Inventarios incluyendo la foto de cada item (las fotos las tengo grabadas en otra carpeta con formato jpg y el nombre está relacionado con el código del producto).

1 respuesta

Respuesta
1

Es sencillo, puedes hacerlo con cualquier formato de imagen, lo primero es cargar tus fotografías a tu tabla inventario, pero para guardar el contenido de la imagen debes de utilizar un campo del tipo MEMO.
Luego para cargar esta imagen en tu tabla, lo único que tienes que hacer es utilizar el comando
APPEND MEMO nombredelcampomemo FROM "C:\MIRUTA\codigo1.jpg" (por ejemplo)
Bien ahora, que ya tenemos la imagen misma(claro que en un otro formato), solo nos queda realizar un artificio para presentarla en nuestros formularios
En el evento LOAD de tu Formulario debes escribir lo siguiente
primero copia el contenido de la imagen de la tabla a tu disco duro local o cualquier otra ruta :
COPY MEMO nombredelcampomemo TO "C:\OTRARUTA\codigo1.JPG"

Luego de haber hecho esto, levanta esta nueva imagen recién creada, a tu control image (qués e llame por ejemplo 'micontrol' ) de tu formulario de la siguiente manera :
THISFORM.MICONTROL.PICTURE="C:\OTRARUTA\codigo1.JPG"
Y .. Listo, veras como la imagen se carga en tu control sin problemas, no olvides de darle la propiedad Strecht a TRUE, sino sale recortada
Nota : colocar el SET SAFETY en OFF, para que no te salga el mensaje de alert cada vez que chancas el archivo de imagen temporal

Muchas gracias por tu respuesta, pero me queda una duda, no se hace muy pesado cargar las fotos a una tabla???

Gracias

OK, es correcto, el termino "pesado" en TI es muy relativo, y depende mucho de la magnitud de tu proyecto si es cliente servidor o escritorio y los recursos con los que dispone:

Si en el lado servidor tienes algunos teras de capacidad de disco y un motor de datos como ORACLE o POSTGRES el termino "pesado" carece de sentido

Si por el contrario tus datos residen en una PC con pocos recursos (quizás instalaste un POSTGRES o MSSQLSERVER ) o simplemente trabajas con tablas locales nativas de FOX, ahí si hay que optar por otra alternativa simplemente porque tu Base de datos crecerá en tamaño rápidamente y los backups y replicas pueden afectar el rendimiento del servidor . Y es separar los archivos de imágenes de la Base de datos y trabajarlo por separado de la siguiente manera :

1) Crear un campo tipo memo en tu tabla a mostrar ejemplo :

Tabla : mitabla

Campo: miruta (Del tipo memo)

Campo2: codigoproducto (Del tipo c)

2) En el campo miruta, almacena la ruta de la carpeta de donde guardas las fotos

Ejemplo:

"\\192.168.26.114\misfotos\productos\"

3) En mitabla, ubicate en el registro a mostrar, (Con el comadno SEEK, o con REQUERY(), si trabajas con vistas remotas o locales), o con Filter o lo que uses ..

4) Luego en el evento LOAD de tu formulario :

select mitabla

THISFORM.MICONTROL.PICTURE=alltrim(miruta )+alltrim(codigoproducto)+".jpg"

Recordar que las fotos que guardas, debes de nombrarlas igual que el código del producto que corresponde por ejemplo :

CÓDIGO DESCRIPCIÓN PRECIO RUTA

AE012345 LAPICERO AZUL TIPO BILLA 34.5 \\192.168.26.114\misfotos\productos\

El archivo de imagen en disco seria :

\\192.168.26.114\misfotos\productos\AE012345.JPG

. Listo, veras como la imagen se carga en tu control sin problemas,

5) Cada que actualizas el registro o te mueves de un registro a otro, en tu fomaulario debes de ejecutar este código, si quieres puedes guardarlo como un evento de tu form

Puedes usar las funciones, GETFILE(), GETDIR(), FILE() para validar los valores ingresados y mostrados del campo miruta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas