FoxPro/Visual FoxPro - COLOREAR MULTIPLES FILAS DE UN GRID

   
Vista:

COLOREAR MULTIPLES FILAS DE UN GRID

Publicado por Kevin Lopez (10 intervenciones) el 24/11/2015 23:13:21
Hola foxeros, desde ya muchas gracias por su ayuda, les comento tengo una consulta desde mysql que genero y la cual uso de recurso para llenar un grid, mi problema es que tengo 11 identificadores distintos para esos datos y quiero que por cada identificador me rellene de un color distinto, actualmente lo intente hacer de esta manera pero solo me rellena del color de la primera condición las demás no las toma en cuenta, me podrían ayudar por favor...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
SQLEXEC(CN,lcSQLcommandgen,'Tmpgen') 
GO top
 
 
IF  ALLTRIM(Tmpgen.tipo)='1' 
ThisForm.Grid1.SetAll("DynamicBackColor","ICASE(Tmpgen.tipo='1',RGB(255,255,128))","column")
ENDIF
IF  ALLTRIM(Tmpgen.tipo)='10' 
ThisForm.Grid1.SetAll("DynamicBackColor","ICASE(Tmpgen.tipo='10',RGB(128,255,128))","column")
ENDIF
IF  ALLTRIM(Tmpgen.tipo)='11' 
ThisForm.Grid1.SetAll("DynamicBackColor","ICASE(Tmpgen.tipo='11',RGB(255,128,0))","column")
ENDIF
IF  ALLTRIM(Tmpgen.tipo)='2' 
ThisForm.Grid1.SetAll("DynamicBackColor","ICASE(Tmpgen.tipo='2',RGB(47,151,255))","column")
ENDIF
IF  ALLTRIM(Tmpgen.tipo)='3'
ThisForm.Grid1.SetAll("DynamicBackColor","ICASE(Tmpgen.tipo='3',RGB(254,71,75))","column")
ENDIF
IF  ALLTRIM(Tmpgen.tipo)='4' 
ThisForm.Grid1.SetAll("DynamicBackColor","ICASE(Tmpgen.tipo='4',RGB(0,255,0))","column")
ENDIF
IF  ALLTRIM(Tmpgen.tipo)='5' 
ThisForm.Grid1.SetAll("DynamicBackColor","ICASE(Tmpgen.tipo='5',RGB(128,128,192))","column")
ENDIF
IF  ALLTRIM(Tmpgen.tipo)='6' 
ThisForm.Grid1.SetAll("DynamicBackColor","ICASE(Tmpgen.tipo='6',RGB(255,128,192))","column")
ENDIF
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

COLOREAR MULTIPLES FILAS DE UN GRID

Publicado por Fidel José (319 intervenciones) el 25/11/2015 00:21:49
Debes escribir una sola vez el DynamicBackColor con todos tus casos.
No tienes una buena idea de DynamicBackcolor ni tampoco del funcionamiento de ICASE().

Esto debería funcionar:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
TEXT TO lcDynamic NOSHOW PRETEXT 15
ICASE(Tmpgen.tipo='1',RGB(255,255,128),
	tmpgen.tipo='2',RGB(47,151,255),
	Tmpgen.tipo='3',RGB(254,71,75),
	Tmpgen.tipo='4',RGB(0,255,0),
	Tmpgen.tipo='5',RGB(128,128,192),
	Tmpgen.tipo='6',RGB(255,128,192),
	Tmpgen.tipo='10',RGB(128,255,128),
	Tmpgen.tipo='11',RGB(255,128,0))
ENDTEXT
ThisForm.Grid1.SetAll("DynamicBackColor",lcDynamic,"column")
 
Aunque, me parece más conveniente hacerlo de este modo:
 
TEXT TO lcDynamic NOSHOW PRETEXT 15
ICASE(VAL(Tmpgen.tipo)=1,RGB(255,255,128),
	VAL(tmpgen.tipo)=2,RGB(47,151,255),
	VAL(Tmpgen.tipo)=3,RGB(254,71,75),
	VAL(Tmpgen.tipo)=4,RGB(0,255,0),
	VAL(Tmpgen.tipo)=5,RGB(128,128,192),
	VAL(Tmpgen.tipo)=6,RGB(255,128,192),
	VAL(Tmpgen.tipo)=10,RGB(128,255,128),
	VAL(Tmpgen.tipo)=11,RGB(255,128,0))
ENDTEXT
ThisForm.Grid1.SetAll("DynamicBackColor",lcDynamic,"column")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

COLOREAR MULTIPLES FILAS DE UN GRID

Publicado por Kevin Lopez (10 intervenciones) el 25/11/2015 01:01:41
Muchas, gracias Fidel. Si la verdad soy nuevo en visual fox y lo que he logrado programar lo he aprendido acá.

Muchas gracias por tu tiempo, me funcionó a la perfección.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar