FoxPro/Visual FoxPro - COLOREAR MULTIPLES FILAS DE UN GRID

 
Vista:

COLOREAR MULTIPLES FILAS DE UN GRID

Publicado por Kevin Lopez (11 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
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

COLOREAR MULTIPLES FILAS DE UN GRID

Publicado por Fidel José (657 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 (11 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
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

COLOREAR MULTIPLES FILAS DE UN GRID

Publicado por José (166 intervenciones) el 24/08/2018 20:18:27
HOLA, NECESITO COLOREAR TODAS LAS LINEAS DEL GRID A LA VEZ QUE SE MUESTRA EL GRID PERO DE ACUERDO A LAS SIGUIENTES CONDICIONES:


if xconsu.estado = "programada"

else

if xconsu.estado = "En Ejecución"

else


if xconsu.estado = "Finalizada"


xconsu es el alias de la tabla del grid5

ESPERO RESPUESTA
GRACIAS
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
Imágen de perfil de Abel
Val: 642
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

COLOREAR MULTIPLES FILAS DE UN GRID

Publicado por Abel (286 intervenciones) el 25/08/2018 15:48:26
Bueno ya te lo he respondido en otra de tus consultas, pero aquí va otra vez...
carga lo siguiente en el método "DynamicBackColor" de la columna que desees aparezca con diferente color:

icase(xconsu.estado = "Programadas",RGB(240,240,240), xconsu.estado = "En ejecución",RGB(250,0,0), xconsu.estado = "Finalizada",RGB(0,255,0), RGB(255,255,255))
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
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

COLOREAR MULTIPLES FILAS DE UN GRID

Publicado por Jose Francisco (166 intervenciones) el 25/08/2018 16:24:38
Es cada fila que necesito de color ,NO la columna.-
PROBÉ CON:
this.setall("DynamicbackColor","IIF(estado = 'Programada',RGB(192,192,192),RGB(255,255,0))","Column")

this.setall("DynamicbackColor","IIF(estado = 'En Ejecución',RGB(255,0,0),RGB(255,255,0))","Column")

this.setall("DynamicbackColor","IIF(estado = 'Finalizada',RGB(0,128,0),RGB(255,255,0))","Column")

PERO SÓLO ME MUESTRA EL COLOR VERDE DE LA ÚLTIMA INSTRUCCIÓN.-
TAMBIÉN UTILICÉ TRES IF CON ELSE PERO S LO MISMO.-
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
Imágen de perfil de Abel
Val: 642
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

COLOREAR MULTIPLES FILAS DE UN GRID

Publicado por Abel (286 intervenciones) el 26/08/2018 16:31:56
Te he dado la respuesta correcta, para cambiar de color la fila de acuerdo al parámetro de "estado"; POR FILA, aunque para ser preciso no es por fila sino de acuerdo al valor del campo... para cambiar de color toda la fila debes usar el mismo valor en cada columna del grid.

Pero por lo que dices sigues intentando a tu modo; pues adelante, éxitos, ya lo lograrás.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

COLOREAR MULTIPLES FILAS DE UN GRID

Publicado por Jose Francisco (166 intervenciones) el 29/08/2018 20:45:46
Muchas Gracias Abel , (lo continúe por el otro foro) funcionó correctamente de acuerdo a vuestras instrucciones y también gracias a la ayuda de Fidel José y Fernando.-
Todos unos verdaderos maestros.-
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