Thisform::Init *** Alternar columnas entre blanco y verde *** Thisform.MyGrid.SetAll("DynamicBackColor", ; "IIF(MOD(RECNO( ), 2)=0, RGB(255,255,255), RGB(0,255,0))", ; "Column") Grid con múltiples colores Los Grids de Visual FoxPro tienen la capacidad de cambiar de color sus filas, aquí te presentamos una forma en que puede darle más capacidad. Los ejemplos que vienen con la documentación de la ayuda en el método SetAll muestran cómo hacer cambiar las filas basándose en la ejecución sencilla de un IIF (If inmediato) como por ejemplo: Hasta aqui puede ser sencillo, pero que tal si deseas tener mas de 2 o 3 colores?, o si es un número finito de posibles colores?, la solución es mandar a ejecutar una función o método que haga lo propio. Un ejemplo de uso, un form donde se colorean las lineas del grid de acuerdo a la edad de la persona: Public oForm oForm = Createobject("myForm") oForm.Show() Define Class myForm As Form DataSession = 2 Height = 400 Width = 600 Add Object myGrid As Grid With ; Height = 400, Width = 600, RecordSource="employee" Procedure Load OPEN DATABASE (HOME(2)+"\data\testdata.DBC") Use employee Endproc Procedure Init This.MyGrid.SetAll("DynamicBackColor","Thisform.MyColorByYear(birth_d ate)","Column") Endproc PROCEDURE myColorbyYear LPARAMETERS tdBirthDate lnColor = 0xFFFFFF && Blanco por default lnAnnios = YEAR(DATE())-YEAR(tdBirthDate) DO CASE CASE BETWEEN(lnAnnios,20,40) lnColor = RGB(100,100,150) CASE BETWEEN(lnAnnios,41,45) lnColor = RGB(255,255,0) CASE BETWEEN(lnAnnios,46,50) lnColor = RGB(255,100,0) CASE BETWEEN(lnAnnios,51,60) lnColor = RGB(255,0,0) CASE BETWEEN(lnAnnios,61,90) lnColor = RGB(0,255,0) ENDCASE RETURN lnColor ENDPROC PROCEDURE Unload CLOSE TABLES ALL CLOSE DATABASES ALL ENDPROC Enddefine