Una solución podría ser la siguiente.
En el formulario donde tenes el grid pones en el método INIT:
ThisForm.Grid1.SetAll("DynamicBackColor", ;
"Thisform.setColor()" ,;
"Column")
Y creas en ese formulario un método con el nombre setColor con el siguiente código:
LOCAL lcRet, lnSCL
lcRet = RGB(255,255,255)
lnSCL = miTabla.scl
DO CASE
CASE lnSCL = 1
lcRet = RGB(255,255,255)
CASE lnSCL = 2
lcRet = RGB(0,0,255)
CASE lnSCL = 3
lcRet = RGB(255,0,0)
CASE lnSCL = 4
lcRet = RGB(255,128,0)
ENDCASE
RETURN lcRet
>Compañeros; en una Tabla tengo un campo SCL númerico que van del 1 al 4, donde cada número representa un color para la leyenda de los articulos, por ejemplo: 1 = blanco, 2 = azul, 3 = rojo, 4 = anaranjado.
>
>DO CASE
> CASE scl = 1 && blanco
> cDynamicCL1='IIF(RECNO()=ThisForm.HitRow,RGB(105,251,255),IIF(scl=1,RGB(255,255,255),RGB(255,255,255)))'
> Thisform.SetAll('DynamicBackColor',cDynamicCL1,'Column')
>
> CASE scl = 2 && azul
> cDynamicCL2='IIF(RECNO()=ThisForm.HitRow,RGB(105,251,255),IIF(scl=2,RGB(0,0,255),RGB(255,255,255)))'
> Thisform.SetAll('DynamicBackColor',cDynamicCL2,'Column')
>
> CASE scl = 3 && rojo
> cDynamicCL3='IIF(RECNO()=ThisForm.HitRow,RGB(105,251,255),IIF(scl=3,RGB(255,0,0),RGB(255,255,255)))'
> Thisform.SetAll('DynamicBackColor',cDynamicCL3,'Column')
>
> CASE scl = 4 && anaranjado
> cDynamicCL4='IIF(RECNO()=ThisForm.HitRow,RGB(105,251,255),IIF(scl=4,RGB(255,149,43),RGB(255,255,255)))'
> Thisform.SetAll('DynamicBackColor',cDynamicCL4,'Column')
>ENDCASE
>
>Pero solo me está tomando la condición CASE scl = 4 && anaranjado
>
>¿Cómo hago para que en el grid los datos adopten los colores de acuerdo al campo SCL?