Enlazar foto a Formulario VFP

Experto mi problema es el siguiente que cuando busco a un determinado trabajador se visualicen sus datos y ademas su Fotografía.
Lo de visualizar los datos lo tengo resuelto pero lo de la Fotografía no se como hacerlo.
Yo las fotos las tengo en una carpeta llamada FOTOS y cada foto esta guardado con el código de cada trabajador pero no se como enlazara a mi formulario.

5 Respuestas

Respuesta
3

Arrastra a tu formulario un control imagen desde la barra de herramientas del diseñador de formularios, ponle un botón debajo del control imagen cuyo caption sea Cambiar Foto o algo por el estilo, en el evento clic de este botón pon el siguiente código.

Mfile=GETFILE("JPG, BMP","Elija el archivo","Abrir", 0,"Guardar Foto")
IF !EMPTY(mfile)
SELECT empleados
IF RLOCK()
REPLACE foto WITH ALLTRIM(mfile)
UNLOCK
ELSE
RETRY
ENDIF
Thisform.Image1.Picture=foto3
ELSE
=MESSAGEBOX("Debe seleccionar un archivo",64,"Error")
RETURN
ENDIF

El código anterior es pare seleccionar la foto, pero si la foto ya esta guarda en el campo foto de tu tabla de empleados, debes poner el siguiente código en el evento refresh de tu formulario

If File(empleados.foto)
Thisform.Image1.Picture=empleados.foto
Else
Thisform.Image1.Picture=""
Endif

Saludos y espero te sirva, y que cierres y califiques la respuesta.

Respuesta
1

Si sabes la ruta y sabes que el nombre del archivo tiene relación con el código pues entonces en la parte donde muestras los datos puedes hacer lo siguiente :

nombreimagen = "c:\fotos\" + alltrim(str(thisform.txtcodigo.value)) + ".jpg"

thisform.image1.picture = nombreimagen

Y con eso te deberia mostrar la foto, obviamente debes ver cual es tu ruta y poner los nombres de los controles que tu estes usando, espero te sea de ayuda, cualquier inquietud me comentas, suerte

Respuesta
1

Bueno me imagino que la mostraras en un control de imagen... Bueno si es así haz lo siguiente:

Thisform.Nombredelcontroldeimagen.Picture=CarpetadondeestanlasFotos+'\'+Alltrim(Transform(Codigodeltrabajador))+'.ExtensiondelaFoto'

Un ejemplo Seria mas o menos así:

Supongamos que en el formulario tengo un control de imagen con el nombre "FOTO" y la carpeta donde tengo guardadas las fotos es "C:\Fotos" y el nombre del campo donde guardo el código del trabajador es "CODE" y que la extensión de las fotos son "JPG" entonces seria algo mas o menos así:

Thisform.FOTO.Picture="C:\Fotos\"+Alltrim(Transform(CODE))+'.Jpg"

Nota: El comando Transform solo lo utilizas si el tipo de campo es Numero si es tipo carácter no lo utilices porque te genera un error.


Espero te sirva.

Respuesta
1

Para eso debes proceder así (en mi opinión):

Imaginemos que la tabla donde guardaras las imágenes se llama tabla1 y el campo foto. EL campo debe ser tipo "carácter" y de longitud 60 mas o menos!

Para guardar la foto, debes colocar un código como este en un botón:

m.foto = GETFILE("Todos las imágenes soportadas:JPG,BMP,GIF", "Imagen: ","Abrir",0,"Busque la foto")
if empty(m.foto)=.t.
Wait window nowait'Nada seleccionado'
return 0
endif
SELECT tabla1
INSERT INTOtabla1VALUES (m.foto)

Inserta un control imagen! Cuando realizas la búsqueda, a tu código... agregale esto para mostrar la imagen:

thisform.iMAge1.Picture = tabla1.foto
Thisform. Refresh

Si tenes algún botón para desplazarte entre registros... entonces al hacer el desplazamiento (usando SKIP +1, SKIP -1) debes colocar

thisform.iMAge1.Picture = ima.foto
Thisform. Refresh

Para que así desplaces el registro y la foto! Ves! :)

Proba y me avisas!

Respuesta
1

Bueno lo único que debes hacer es poner un objeto imagen en el form i cada vez que cargues la información del empleado crear una variable con nombre del archivo que se va a llamar osea la foto y luego asociarlo a la imagen

fot='/fotos/'+allTrim(str(thisform.código.value))+'.jpg'

thisform.image1.picture=fot

Seria bueno considerar primero si el archivo existe con isfile() antes cragarlo para que no te genere error valora mi respuesta y finaliza tu pregunta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas