Página 1 de 1

Imagen en un tdbbowse

Publicado: Lun Jul 08, 2024 4:14 am
por ddupre
Hola Foro,
Espero se encuentren bien.
Necesito poner una imagen en una columna (que tiene un campo lógico) de un tdbbrwse y he buscado algún ejemplo para lograrlo pero no encuentro.
Solo encontré una publicación del sr. Ignacio (viewtopic.php?p=56240#p56240), que indica cómo hacerlo, pero me veo incapaz de poder seguir lo propuesto, solo alcancé a cargar las dos imágenes necesarias en el oImageList del browse.
Si alguien tuviera un ejemplo se lo agradecería mucho.

Saludos
Daniel

Re: Imagen en un tdbbowse

Publicado: Lun Jul 08, 2024 9:45 am
por Alfonso
Buenos días Daniel:

Y hago lo siguiente.

1. En el browse donde deseas poner la imagen, en la propiedad oImageList, carga las posibles imagenes a visualizar.
Captura de pantalla 2024-07-08 093407.png
Captura de pantalla 2024-07-08 093407.png (38.03 KiB) Visto 16168 veces
2. En la columna donde deseas poner la imagen, elige el Evento OnGetData, y crea el metodo BrwBmp.
Captura de pantalla 2024-07-08 091150.png
Captura de pantalla 2024-07-08 091150.png (24.19 KiB) Visto 16168 veces
//------------------------------------------------------------------------------
// Muestra imagen
//------------------------------------------------------------------------------

METHOD BrwBmp( oSender, Value, nImage ) CLASS TFrmPedidoVenta

Local nOpcion:= 1 // Opcion en la funcion

WITH OBJECT ::oDbCabPedVenta // Tabla de datos
IF !:Eof()
nImage:= FVerBmp(nOpcion,!Empty(Value))
ENDIF
END WITH

RETURN "" // Evita que se pinte el valor del campo al lado de la imagen

3. El metodo BrwBmp llama a la funcion FVerBmp()

//------------------------------------------------------------------------------
// Asigna Imagen
//------------------------------------------------------------------------------
// nOpcion==0 -> Numerico; nOpcion==1 -> Bolean; nOpcion==2 -> Texto

FUNCTION FVerBmp(nOpcion,nValor)

Local nBmp

DO CASE

CASE nOpcion==0 // Numerico
nBmp:=IIF(nValor<0, 1,2) // Contienen el valor de la imagen previamente cargada en la propiedad oImagenList

CASE nOpcion==1 // .f. ó .t.
nBmp:=IIF(nValor,3,4) // Contienen el valor de la imagen previamente cargada en la propiedad oImagenList

CASE nOpcion==2 // S ó N
nBmp:=IIF(nValor=="S",5,6) // Contienen el valor de la imagen previamente cargada en la propiedad oImagenList

OTHERWISE

ENDCASE

RETURN nBmp

Espero que te sirva.

Re: Imagen en un tdbbowse

Publicado: Lun Jul 08, 2024 4:54 pm
por ddupre
Alfonso,
Buen día,
Excelente tu ayuda!!, me sirvió perfecto.
Quedó funcionando muy bien.

Muchas gracias
Saludos