FoxPro/Visual FoxPro - intercalar color en la grilla

   
Vista:

intercalar color en la grilla

Publicado por Paola (4 intervenciones) el 26/07/2013 15:31:35
Hola foro.
Tengo una consulta... tengo una grilla (de productos) en mi formulario, esta colorea los datos segun su cantidad de stock... si es mayor a un minimo ya definido de un color, y si es menor, de otro color, Y lo que quisiera es poner color de fondo intercalando las filas, por ejemplo las pares sin color y las impares de un color sin tocar el color del texto.
Agradezco cualquier ayuda.
Saludos Paola
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

intercalar color en la grilla

Publicado por Fidel (558 intervenciones) el 26/07/2013 15:48:48
keDynDark="Rgb(217,220,212)"
keDynClear="Rgb(233,232,228)"
Thisform.GRid1.SetAll("DynamicBackColor","IIF(MOD(RECNO( ), 2)=0, &keDynClear,&keDynDark)", "Column")
Elige los colores que más te gusten.
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

intercalar color en la grilla

Publicado por Paola (4 intervenciones) el 26/07/2013 17:34:30
Gracias por contestar.
En realidad yo utilizo genexus con generador visual fox pro, y muchas veces he utilizado comandos y hecho programas de VFP y funcionan perfecto, en este caso en el evento genexus llamo a un programa donde puse lo que me pasaste, y me da un mensaje " Thisform solo puede utilizarse en un metodo", Te agradezco si me guias como o donde utilizarlos.
Gracias y 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

intercalar color en la grilla

Publicado por Fidel (558 intervenciones) el 26/07/2013 22:06:22
No tengo idea de genexus, pero ese mensaje lo arroja Visual Fox cuando pones Thisform en un procedure (prg). Si estás indicando la coloración de la cuadrícula, el tema es pasarle el objeto al procedimiento PRG.
Supongamos que hay un procedure llamado ColorGRid.

1
2
3
4
5
6
7
8
PROCEDURE ColorGrid(xobjGrid)
 
keDynDark="Rgb(217,220,212)"  && los colores pueden pasarse como parámertro también
keDynClear="Rgb(233,232,228)"
 
xobjGrid.SetAll("DynamicBackColor","IIF(MOD(RECNO( ), 2)=0, &keDynClear,&keDynDark)", "Column")
xobjGrid.Refresh
ENDPROC



Desde el formulario que necesita colorear, suponiendo que el control grid se llama GRID1:
ColorGrid(thisform.Grid1) && no lleva comillas

Si es un ExecScrip, las consideraciones son las mismas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
* Este código puede recidir en cualquier archivo (texto, campo memo, etc). El único tema es saber cómo se lo levanta.
 
LOCAL ARRAY gaSCript(5)
gaScript[1]="LPARAMETERS xobjGrid"
gascript[2]=[keDynDark="Rgb(217,220,212)"]
gascript[3]=[keDynClear="Rgb(233,232,228)"]
gascript[4]=[xobjGrid.SetAll("DynamicBackColor","IIF(MOD(RECNO( ), 2)=0, &keDynClear,&keDynDark)", "Column") ]
gascript[5]=[xobjGrid.refresh]
 
* Crear la Sentencia de ejecución - Chr(13) separador de líneas.
lcScript=""
for i=1 to alen(gascript)
	lcScript=lcScript + gascript[i]+chr(13)
next
 
* Esta función se debe ejecutar desde el formulario, o desde una clase custom adherida.
ExecScript(lcScript, thisform.grid1)
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