FoxPro/Visual FoxPro - problema al colorear grilla

   
Vista:

problema al colorear grilla

Publicado por carlos carlitosmartinez63@gmail.com (4 intervenciones) el 10/07/2013 07:07:51
Buenas! queria hacerles una consulta... tengo una grilla (de productos) en mi formulario, esta colorea sus filas segun su cantidad de stock... si es mayor a 10 pinta verde, si es mayor que 3 y menor que 9 amarillo y si es menor a 3 pinta rojo, hasta ahi todo bien, en el formulario tambien tengo para realizar busqueda por codigo, modelo, marca, descripcion, esto tambien funciona de 10, el problema esta cuando yo quiero refrescar la grilla luego de una consulta por ejemplo si tengo una fila roja seleccionada al momento de actualizar la grilla y muestre todos los productos, me muestra todas las filas de color rojo osea ya no respeta las condiciones..
Espero puedan ayudarme desde ya muchas gracias
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

problema al colorear grilla

Publicado por Fidel (558 intervenciones) el 10/07/2013 16:23:39
Una de las formas que encuentro práctica para utilizar un set de colores en un control grid es crear una función de usuario en un prg y asociar la función al Dynamicbackcolor
Pongo un ejemplo. En tu caso, seguramente tendrás que utilizar Between(xnStatus,nVal1,nVal2) en reemplazo del código de calificación del ejemplo. Y los colores que te gusten, claro.

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
xcFile="alias de la tabla o cursor"
* Proxim es el campo del cursor asociado a la column1 && Cantidad ó como se llame, en tu caso
 
with thisform.grilla.Column1
	.DynamicBackcolor=[DevColor(&xcfile..PROXIM)]
 
endwith
 
 
Function DEvColor(xnStatus)
****************************
local rgbDev
* Protocolo RgbDev
* 0 - Sin Datos
* 1 - Exelente
* 2 - Bueno
* 3 - Aviso
* 4 - Advertencia
* 5 - Deficiente
* 6 - Horrible
DO CASE
	case xnStatus=0
		* Sin DAtos
		rgbDev=rgb(189,200,202)
	case xnStatus=1
		* Excelente	Azul Claro
		rgbDev=rgb(0,128,255)
	case xnStatus=2
		* Bueno / Correcto (Verde)
		rgbDev=rgb(0,255,128)
 
	case xnStatus=3
		* Aviso (Amarillo)
		rgbDev=rgb(255,255,0)
	case xnStatus=4
		* Advertencia (rojo suave)
		rgbDev=rgb(255,128,128)
	case xnStatus=5
		* Problema (rojo neto)
		rgbDev=rgb(255,0,0)
	case xnStatus=6
		* Horrible
		rgbDev=rgb(255,0,255)
endcase
return rgbDev
ENDFUNC
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

problema al colorear grilla

Publicado por carlos (4 intervenciones) el 10/07/2013 17:09:57
Hola!... muchas gracias por responder, algo similar a lo que me recomendas estoy usando, cree un metodo donde tiene el do case..
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

problema al colorear grilla

Publicado por Fidel (558 intervenciones) el 10/07/2013 17:39:05
Si no te funciona correctamente, fíjate que la columna sea Sparse=.T. (Default). Ve también que si recreas la asociación del control grid, también tienes que reponer el DynamicBackColor
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

problema al colorear grilla

Publicado por carlos (4 intervenciones) el 10/07/2013 17:43:36
Cuando dices reponerl el DynamicBackColor te refieres a que cada vez que realize la consulta se ejecute el DynamicBackColor?? si es eso ya lo hice y me sigue pasando lo mismo. Gracias!! por responder
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

problema al colorear grilla

Publicado por Fidel (558 intervenciones) el 10/07/2013 23:34:38
En el ejemplo que envié antes, funciona lo siguiente: (ahora para todas las columnas, pero es lo mismo)
* Comando de configuración del control Grid (Grilla)
* Luego
with thisform.grilla
.Setall("DynamicBackColor" , "DevColor(&xcfile..PROXIM)" , "Column")
endwith

Si no se modifica la configuración del control Grid (cambio de cursor, PACK en una tabla temporal asociada, uso del comando ALTER TABLE en la tabla o cursor asociado, etc.. ), tras modificar algún valor , va:
with thisform.grilla
.refresh
.setfocus
endwith
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

problema al colorear grilla

Publicado por carlos (4 intervenciones) el 11/07/2013 04:27:00
muuchas gracias por la ayuda ya lo solucione!!!! mi error estaba en el metodo.. yo ponia CASE productos.stock >= 10 y era CASE stock >= 10 ASI jejejje... gracias nuevamente!!
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