Tendrías que hacer algo como esto:
1. en la columna en la que va la foto, agregá un control image
2. a esa columna sacale el text1, porque no hace falta
3. también ponele una etiqueta que diga 'No hay foto'
4. a esa columna ponele en la propiedad DynamicFontBold (o en cualquier
propiedad dynamic) una llamada a un método, por ejemplo,
thisform.getphoto()
5. en el form, creá un método llamado getphoto con este código:
En mi ejemplo, el cursor con los códigos de los articulos a mostrar se
llama lositems
Cada una de las fotos lleva como nombre el mismo código que el artículo
con la extensión jpg
** GETPHOTO METHOD
local cCodigo,cImagen
cCodigo = alltrim(lositems.articulo)
cImagen = cCodigo + ".jpg"
if file ('&cImagen')
with ThisForm.grdArticulo
with .column4
.Label1.Visible = .f.
.currentcontrol = "Image1"
with .image1
.picture = cImagen
.visible = .t.
endwith
endwith
endwith
else
with ThisForm.grdArticulo
with .column4
.currentcontrol = "Label1"
.Label1.Visible = .t.
with .image1
.picture = ""
.visible = .f.
endwith
endwith
endwith
endif
Entonces, en el afterrowcolchange event de la grilla poné esto:
this.column4.CurrentControl = "Image1" && supongo que la foto va en
columna 4
Al recorrer el cursor, se va disparando el método getphoto. Si hay una
foto que tenga el mismo código que el artículo que vas a mostrar, se
muestra esa foto, si no existe la imagen, se muestra la etiqueta que
dice "no hay foto"
Asegurate que la foto sea chiquita, para que se vea bien y agrandá el
espacio entre las filas de la grilla para que quepa la foto.
Rafael Copquin