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

Responder a