Colores en Grid

Hola quisiera preguntarte como hacer para colocarle distintos colores a distintas celdas de un grid. Estuve usando dynamicbackcolor y solo pude darle color a toda una columna o usando Grid.Columns(4).dynamicbackcolor = "IIF(RECNO()= 2, RGB(0,255,255), RGB(255,255,255))" solo le di color a la celda de la columna 4 y registro 4 y no puedo darle color a otra celda.
Bueno espero me puedan ayudar, es para mi tesis, desde ya muchas gracias.
Un amigo desde JUJUY Argentina

2 respuestas

Respuesta
Querido amigo JUJUY de Argentina, por lo pronto puedes colorear todas celdas
Con el siguiente comando en el init del Grid:
THIS.SetAll("DynamicBackColor", "IIF(MOD(RECNO( ), 2)=0, RGB(255,255,255), RGB(0,255,0))", "Column")
Con este ejemplo alternas registros blancos y verdes, la instrucción que te permite esto es:
IIF(MOD(RECNO( ), 2)=0
Lo que aquí se hace es preguntar si el registro es par, si lo es entonces con el RGB(255,255,255), sino entonces el RGB(0,255,0) que es el color verde, lo que de pronto podrías hacer para dar otro tipo de colores seria jugar con la numeración del RGB como aparece en el siguiente ejemplo:
THIS.SetAll("DynamicBackColor", "IIF(MOD(RECNO( ), 2)=0, RGB(255,255,255), RGB(155+((recno()/reccount())*100),255-((recno()/reccount())*100),0))", "Column")
Este ejemplo lo probé con una tabal de 1000000 de registros y lo que hace es ir colocando colores y aumentando la tonalidad poco a poco dejendo los registros impares en blanco.
Hola lo que me contestaste ya lo aplique, en realidad lo que necesito es saber como colorear solo algunas celdas, por ejemplo un grid de 5 columnas y 10 filas, para ese grid tengo que colorear solo las celdas (fila, columna), (2,3), (3,3), (10,1) y (10,2). Hasta ahora no lo logre ya que solo puedo hacerlo para toda una fila o toda una columna.
Desde ya muchas gracias
Bueno así las cosas cambian pues debes colorear exactamente las celdas una a una por lo que deberías hacer lo siguiente para colorear las celdas que sugieres (2,3), (3,3), (10,1) y (10,2) :
ThisForm.WMALLA.Columns(3).dynamicbackcolor = "IIF(RECNO() = 2, RGB(255,0,0), RGB(255,255,255))"
ThisForm.WMALLA.Columns(3).dynamicbackcolor = "IIF(RECNO() = 3, RGB(255,0,0), RGB(255,255,255))"
ThisForm.WMALLA.Columns(1).dynamicbackcolor = "IIF(RECNO() = 10, RGB(255,0,0), RGB(255,255,255))"
ThisForm.WMALLA.Columns(2).dynamicbackcolor = "IIF(RECNO() = 10, RGB(255,0,0), RGB(255,255,255))"
Donde la propiedad Columns(2) especifica la columna y RECNO() = 10 la fila de tal forma que la celda será la (2,3) y WMALLA es el nombre de la malla o grid, bueno espero que esto satisfaga tu necesidad, de no ser así espero poder ayudarte.
Respuesta
Espero esto resuelva tu pregunta:
**debes colocarlo en el evento "INIT" del grid
DODEFAULT()
WITH This
thisform.Grid1.SetAll("DynamicBackColor", ;
"IIF(EXIART>minart, RGB(255,255,255) ;
, RGB(255,0,0))", "Column")
ENDWITH
**Recuerda que debes especificar el nombre del grid al cual hace referencia.
** Ejemplo en mi formulario se llama GRID1
Suerte!
Debe Cambiar a:
EXIART>minart
Por
RECNO()= 2

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas