Filas de un Grid con más de dos colores

gabrield
14 de Octubre del 2005
Un procedimiento para colorear las filas de un grid según el contenido de un campo del registro es el siguiente:

thisform.Grilla.SetAll("DynamicBackColor","IIF(CONDICION), Color1, Color2)")

pero, ¿qué sucede si queremos colorear con más de dos colores diferentes? Por ejemplo, podría ser que deseemos colocar el fondo rojo a las facturas impagas, de verda a las pagadas y de amarillo a las parcialmente pagadas.
Esto puede lograrse de la siguiente manera:

Creamos un método en el formulario, llamado por ejemplo "Colores", el cual recibe un parámetro (al que se le enviará el contenido del campo que contendrá la condición múltiple) y elaboramos un Do Case:

Método "Colores()"

PARAMETERS Valor
DO CASE
CASE Valor = (impaga)
RETURN CodColorRojo
CASE Valor = (parcialmente_paga)
RETURN CodColorAmarillo
CASE Valor = (pagada)
RETURN CodColorVerde
OTHERWISE
RETURN CodOtroColor
ENDCASE

Luego, una vez que asignamos el RecordSource a la grilla podemos hacer lo siguiente

thisform.Grilla.SetAll("DynamicBackColor","thisform.colores(Cursor.CampoCondicion)")

y listo.

Ojalá que a alguien le sirva.
Saludos cordiales desde Argentina
Gabriel Dameñov
www.gdmsargentina.com.ar