Consulta sobre Grid

Mi pregunta es doble, aunque creo que están relacionadas entre si
la Primera es como puedo hacer que en un grid haciendo click sobre una linea-columna me de los datos correspondientes a las otras columnas de la misma linea.
La segunda es como puedo hacer que al hacer clic en cualquier linea-columna, me cambie el color de la linea que he cliclado
-------------
Tengo un grid de prueba con solo dos columnas i quiero que me cambie el color de la linea y al mismo tiempo que me de los datos del segundo campo, yo lo he codificado como sigue
with thisform.grid1
.column1.text1.selectedbackcolor=RGB(255,0,0)
.column1.text1.selectedforecolor=RGB(0,0,255)
.column2.text1.selectedbackcolor=RGB(255,0,0)
.column2.text1.selectedforecolor=RGB(0,0,255)
endwith
? Thisform.grid1.column1.text1.text
? Thisform.grid1.column2.text1.text
wait
Soy un viejo programador con nuevo lenguaje el cual quiere daros las gracias por vuestra colaboración.

1 respuesta

Respuesta
1
Permíteme Responder a Esas Preguntas:
1. Sabemos que la única forma de llenar un grid, es con una tabla directamente o a través de una consulta sql. Bueno a partir de allí tenemos muchas ventajas. Suponiendo que tenemos la tabla clientes asignada al grid.
Por poner un ejemplo:
clientes.dbf
id c(4)
Nombre c(20)
Apellido c(21)
Esto no da un grid de tres columnas.
Lo bueno del grid y que a mi me gusta es que a medida que te mueves en las filas o columnas, estás moviendo el puntero de la tabla directamente. De esa forma si te colocas en la segunda fila estás en el segundo registro, si te mueves a la fila 10, el puntero está en el registro nº 10. Ahora es fácil obtener el valor de cualquier columna, haciendo referencia a los nombres de los campos de las tablas, no a los nombres de los campos de textos de las columnas.
Por ejemplo:
Si hacemos clic en la segunda fila columna 1 (ó 2 ó 3). Podemos almacenar los valores de las columnas así:
variable1=id
variable2=nombre
variable3=apellido
Espero me hayas entendido.
2. Con lo de colorear una fila. Lo puedes obtener con este truco:
Creas un nuevo método en el formulario. Le pones como nombre por ejemplo color_fila.
En ese método colocas un código como este:
*Devilzito*
*--------------------------
local lcRetorno
do case
case id_1 = id
lcRetorno=rgb(245,138,148)
otherwise
lcRetorno=rgb(255,255,255)
endcase
return lcRetorno
*--------------------------
En el evento clic de cada textbox de cada columna:
Store id to id_1
Thisform. Grid1. SetAll('DynamicBackColor', 'thisform.color_fila()', 'Column')
Cualquier cosa me avisas!
PD: Respeto para usted. Yo solo tengo dos años en esto de la programación
--Devilzito--
Muchas gracias, aunque solo he podido probar la primera de las dos preguntas, me has ayudado mucho, no solo con tu respuesta, sino en la forma de trabajar del Grid en General

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas