Drama con setall

Hola: tengo una aplicación de control de stock, donde cada registro, cuya fecha de venta sea mayor a un año, lo pinto todo de rojo(ya no tiene garantía) en un grid y lo hago de esta manera:
thisform.grid1.setall("dynamicbackcolor",;
"iif(date()-tabla.fecha>365, rgb(255,150,150), rgb(255,255,255))","column")
El problema es que cuando hago una búsqueda sobre la misma tabla, el cliente quiere también que si lo encuentra, lo pinte de amarillo. Lo hice así:
thisform.grid1.setall("dynamicbackcolor",;
"iif(ThisForm.Grid1.nfila=recno(),rgb(255,250,0),rgb(255,255,255))","column")
Lo cual me elimina el color rojo de los registros que no tienen garantía. Es como si al primer setall lo pisara con el segundo..
Pregunta: como puedo hacer para pintar un registro de amarillo (o cualquier color), ¿sin qué me deshabilite el rojo de la garantía?
¿Se entiende?
Muchas gracias
Marcelo Andino

2 respuestas

Respuesta
1
En efecto, lo que en realidad haces es "pisar" una combinación con la otra, pues solo te aceptará una comando SETALL para la activación de coplores de fondo.. lo que te recomiendo hacer es reingeniar tu condición de color:
iif(ThisForm.Grid1.nfila=recno(),rgb(255,250,0),iif(date()-tabla.fecha>365,rgb(255,150,150),rgb(255,255,255)))","column")
Suerte!
Respuesta
1
En el init de la grilla
this.Setall('dynamicbackcolor','thisform.ColorLinea(condiciones)','column')
Luego creas un método para el formulario llamando ColorLinea que lleva el siguiente código
lparameters tcEstado
local lnColor, lcrgb
lnColor=rgb(255,255,255)
do case
case tcEstado='IB'
lcrgb="rgb("+thisform.ccolorib+")"
lnColor=&lcrgb
case tcEstado='L'
lcrgb="rgb("+thisform.ccolorl+")"
lnColor=&lcrgb
case tcEstado='I'
lcrgb="rgb("+thisform.ccolori+")"
lnColor=&lcrgb
endcase
return lnColor
En tu caso en particular, deberías enviar uno o más parámetros, que son los valores que quieres verificar, y a partir de dichos valores, devolver el cursor
Mil gracias, funcionó bien.. pero pude descular el problema y me resulto esto... espero te sirva...
thisform.grid1.setall("dynamicbackcolor","iif(ThisForm.Grid1.nfila=recno(),rgb(255,250,0),iif(date()-tabla.fecha>365,rgb(255,150,150),rgb(255,255,255)))","column")
Muchas gracias de nuevo
Marcelo Andino - Mendoza - Argentina
[email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas