Color de fondo de un grid

Hola,
Estoy haciendo un sistema medico.
En una pantalla tengo un grid que lo cargo con los datos de un cursor.
El cursor tiene:
Fecha, cod_laboratorio, descripción, valor, unidad
Este cursor me trae todos los laboratorio (análisis que le hago a un paciente) y los muestro en un grid. Por cuestión de comodidad visual necesito agrupar los laboratorios con la misma fecha dándole un mismo color de fondo a las filas.
Es decir... Si un paciente vino 4 veces... Los laboratorios que cargue la primera vez estarán con fondo gris, los de la 2da semana en blanco, los de la 3era en gris y los de la 4ta en blanco... Es decir que en la grilla me quedarían bloques de filas grices y blancos.
Espero me puedas ayudar
Gracias

3 respuestas

Respuesta
1
Lo que necesitas hacer lo puedes hacer usando la propiedad DYNAMICBACKCOLOR del grid en la cual puedes especificar una condición según lo cual se asignara el color al fondo de cada linea del grid, el ejemplo que te adjunto es el que esta en la ayuda de vfp :
frmMyForm.grdGrid1.SetAll("DynamicBackColor","IIF(MOD(RECNO( ), 2)=0, RGB(255,255,255), RGB(0,255,0))", "Column")  && Alternate white and green records
Respuesta
1
Prueba colocando en el método init del grid lo siguiente:
This.SetAll("DynamicBackColor","ICASE(asiste=4,RGB(192,192,192),asiste=3,RGB(255,255,230),RGB(255,255,128))", "Column")
Gracias por la respuesta
No entiendo que es el asiste=4, asiste =3....que pones en el setall
Lo que no se como hacer es la condición dentro del setall.
El cursor esta ordenado por fecha descendente.
Digamos que el grid comienza a llenarse con las filas en fondo blanco y cuando la nueva fila tenga una fecha distinta quiero que cambie el color del fondo de esta y de las próximas filas que tengan las misma fecha
12/12/2009<span style="white-space: pre;"> </span>AAAA
12/12/2009<span style="white-space: pre;"> </span>ABC<span style="white-space: pre;"> </span>
12/12/2009<span style="white-space: pre;"> </span>TTTT-----------hasta aca en color blanco
10/12/2009<span style="white-space: pre;"> </span>DDD
10/12/2009<span style="white-space: pre;"> </span>AAA------------hasta aca color gris
05/12/2009<span style="white-space: pre;"> </span>AAA
05/12/2009<span style="white-space: pre;"> </span>DDD-----------hasta aca color blanco
Es decir que cambia el fonde de las filas cuando cambia la fecha
No se como poner esa condición dentro del setall
gracias
Asumía que "asiste" era una variable de tu archivo que contiene las veces que asisitio el paciente.
Puedes probar colocando un color a cada día de la semana
This.SetAll("DynamicBackColor","ICASE(DOW(fecha)=2,RGB(192,192,192),DOW(fecha)=3,RGB(255,255,230),RGB(255,255,128))", "Column")
Asumo "fecha" como un campo existente en tu archivo
Respuesta
1
Puedes tratar de configurar los colores en el INIT del grid miar este ejemplo espero te ayude.
this.column5.dynamicforecolor= 'iif(nota1<36,  rgb(255,0,0), rgb(0,0,0))'
Cualquier cosa me avisas.
Gracias por la respuesta.
El problema es que no se como armar la condición del if.
Lo que tendría que hacer es preguntar si la fecha del registro actual es distinta a la anterior y si es verdadero que cambie de color de fondo... Pero no se como armarla
Gracias nuevamente
Solo se me ocurre si tienes un código o id en la tabla preguntar si es par o impar
if int(codigo/2)=codigo/2
   Es par cambiar el color
Endif
No se me ocurre otra cosa.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas