Problemas con una grid

Tengo un problema con actualizar una grilla esto es en visual fox, en esta grid, tengo información de una consulta, el problema es, que en al grid, tengo programación, que se ejm.
En la grid1, column1 y en el evento dblclick tengo lo siguiente
messagebox("Esta haciendo clieck")
bueno esto funciona pero si ago una consulta
select * from clientes where nombre="Juan" into cursor enero
thisform.grid1.recordsource="enero"
La programación que tenia en la grid desaparece y cuando hago click en el text1, de la grid de la column1, ya no sale el mensaje de debiera salir, como puedo solucionar esto o sea esto messagebox("Esta haciendo clieck")

1 Respuesta

Respuesta
1
Tu mismo tienes la respuesta, "pero si ago una consulta
select * from clientes where nombre="Juan" into cursor enero
thisform.grid1.recordsource="enero"
la programacion que tenia en la grid desaparece" y es que es lógico, al asignar un nuevo cursor, las columnas anteriores se destruyen, y se crean nuevas y sobre todo cuando la consulta no regresa resultados.
Te sugiero que utilices clases, y que las integres en tiempo de ejecución. Si recién comienzas a programar y no sabes hacer uso de las clases, entonces puedes utilizar el método afterrowcolchange del grid, en él escribe lo siguiente:
LPARAMETERS ncolindex
MessageBox("Usted hizo click en la columna"+ allt(Str(ncolindex)))
.
.
Yo creo que de aquí ya te diste idea.
Si se utilizar clases pero como la coloco la clase en tiempo de ejecución, ¿en la clase tendría que poner el código que desee?, gracias
Bueno en primera instancia, el código que te envió se mantiene: recuerda, es para el método AFTERROWCOLCHANGE.
Ahora en tiempo de ejecución (en donde hagas la asignación), puedes incluir las clases para todas las columnas o para una, ve el siguiente ejemplo:
*-- Asigno un cursor de resultados
Thisform.grid1.ColumnCount=-1
Thisform.grid1.Rowsource="MiCursor"
*-- Quito el objeto que está por default
Thisform.grid1.Column1.removeonject('Text1')
*-- Agrego mi clase
Thisform. Grid1. Column1. Addobject('Text1','mitext')
Y ahora como text1 es tu clase y trae las propiedades que deseas, el grid hereda las propiedades de mitext en la columna1
Bueno quizás te falte agregar la instrucción
SET CLASSLIB TO [x:]<Ruta><lib> additive
Para invocar a tu archivo de clase en donde radica la clase que quieres llamar, en este caso "mitext"
Por ejemplo
SET CLASSLIB TO h:\fuentes\sistema\libs\utileria additive

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas