Cambiar Colores a una Fila en un Grid de Visual FoxPro

Tengo una tabla temporal, en la que vuelco datos filtrados de una tabla maestra, para poder mostrarlos más eficientemente en un grid. Allí solo tengo habilitado un campo, el primero, para hacerle modificaciones, luego con un botón grabo todo en la tabla maestra y listo.
Hasta ahí bien, ahora, quiero cambiar de color a las filas que hayan sido modificadas, osea, por defecto el valor del campo modificable es 0, y cuando ese valor cambie, quiero que el color de la fila también lo haga.
Hice lo que todos los ejemplos dicen, pero no pasa nada, cuando cambio el primer registro del grid, todas las filas empiezan a cambiar de color, independientemente de su valor.
Te paso el código que tengo así me dices que te parece.
**************************************************************
&& propiedades del grid 
thisform.grid1.allowheadersizing = .f. 
thisform.grid1.allowrowsizing = .f. 
thisform.grid1.columncount = 14 && cantidad de columnas 
thisform.grid1.deletemark = .f. 
thisform.grid1.fontname = "tahoma" 
thisform.grid1.fontsize = 9
thisform.grid1.headerheight = 24
*thisform.grID1.HighlightRow = .t. 
thisform.grid1.recordmark = .t. 
thisform.grid1.scrollbars = 2
thisform.grid1.GridLines = 1
*thisform.grid1.HighlightStyle = 1 
thisform.grid1.recordsourcetype = 0 && tipo de datos para llenar el grid 
thisform.grid1.recordsource = "tmp_gui" && nombre de la tabla a abrir en el grid 
*** ACA ES DONDE CREO ESTA EL PROBLEMA
Thisform.Grid1.setall("DynamicBackColor","IIF(tmp_gui.h_r_gui <> 0,RGB(255,0,0),RGB(255,255,255))" , "Column")
***
&& propiedades de la primer columna 
thisform.grid1.column1.width = 50 
thisform.grid1.column1.movable = .f. 
thisform.grid1.column1.readonly = .F. 
thisform.grid1.column1.resizable = .f.
thisform.grid1.column1.fontbold = .T. 
thisform.grid1.column1.header1.alignment = 2 
thisform.grid1.column1.header1.backcolor = rgb(192,192,192) 
thisform.grid1.column1.header1.caption = "H.R." 
thisform.grid1.column1.text1.readonly = .f. 
thisform.grid1.column1.text1.enabled = .t. 
thisform.grid1.column1.text1.alignment = 2

1 Respuesta

Respuesta
1
Por lo que me dices, presumo que la tabla a la que realizas los cambios no los guardas con TableUpdate(), pues el código que me envías está correcto, y debes llamar al evento refresh() del formulario para que se actualice el control grid, ¿utilizas la función tableupdate() para actualizar la tabla?
Gracias alonso197 por tu pronta respuesta.
No utilizo TableUpdate() debido a que tengo procesos intermedios dependiendo del valor que haya cambiado.
Si, al final del código refresco el Grid1
&& refresco el grid y le doy el foco 
thisform.grid1.refresh 
thisform.grid1.setfocus
El código que te envié lo tengo puesto en el Init del Form1, y en el form tengo un objeto grid que responde a los parámetros del init.
No se como hacer para mostrarte lo que me sucede... quisiera grabar una demo, pero no se como... si lo deseas, puedo enviarte los archivos para que los corras en tu pc.
Desde ya agradezco enormemente tu interés. Muchas Gracias.
Claro eso era lo que te iba a decir, mi correo es [email protected].
Listo amigo, te envié los archivos a tu correo [email protected], es un rar con 2 carpetas.
Espero que puedas ayudarme.
Un abrazo, y nuevamente, MUCHAS GRACIAS.
Te reenvié el programa con un formulario nuevo corregido.
Gracias por tu tiempo, me ha sido de increíble ayuda.
Con respecto a tu consejo, es verdad, no estoy muy familiarizado con el lenguaje visual, soy de la vieja época.
Un saludo enorme y muchísimas gracias nuevamente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas