FoxPro/Visual FoxPro - Keypress en Grid

 
Vista:

Keypress en Grid

Publicado por Edwin (1 intervención) el 18/02/2009 22:58:36
Gracias de antemano. El asunto es que lleno mediante un cursor un grid en la que uno de los campos es editable. En dicho campo editable cuando el usuario presiona ENTER se abre un popup con algunas opciones para escoger. El caso es que la primera vez que lleno el grid funciona bien, pero si genero una nueva consulta de datos y lleno nuevamente el grid ya no me hace lo del evento keypress de hecho probe el modo debug y ni siquiera entra al evento. Solo me funciona cuando acabo de abrir el form.

Alguna idea, gracias.
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

RE:Keypress en Grid

Publicado por jose camilo (805 intervenciones) el 19/02/2009 00:01:23
lo primero es entender como funciona el grid

al hacer una consulta en te asigna unos eventos hasta ahora esta ok
pero al recargar esa consulta el entiende k debe limpiar todos los eventos ya k entiende k es una nueva tabla. esa es la logica de grid

personalmente

uso un cursor k tiene todos los controles
si necesito recargarlo borro los datos del cursor con un delete all cargo en un cursor diferente y en un bucle do while paso los datos del cursor nuevo al de trabajo asi logro k no me limpie los eventos
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

RE:Keypress en Grid

Publicado por Mario (199 intervenciones) el 19/02/2009 13:17:36
Esto sucede porque no refrescas correctamente los ControlSource de las columnas.

WITH THISFORM.Grid1
.RECORDSOURCE=""
.Column1.CONTROLSOURCE=""
.Column2.CONTROLSOURCE=""
.column3.CONTROLSOURCE=""
.column4.CONTROLSOURCE=""

SELECT ....... INTO CURSOR MiCursor

.RECORDSOURCE=Micursor
.Column1.CONTROLSOURCE="MiCursor.Campo1"
.Column2.CONTROLSOURCE="MiCursor.Campo2"
.column3.CONTROLSOURCE="MiCursor.Campo3"
.column4.CONTROLSOURCE="MiCursor.Campo4"
ENDWITH

Este código "limpia" los ControlSource de cada objeto column, genera el cursor y asigna a cada ControlSource el campo correspondiente.
Si solo cambias el RecordSource de la grilla, el grid genera nuevamente todos los objetos column y, por lo tanto, se eliminan los métodos.
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

RE:Keypress en Grid

Publicado por Ramon (2 intervenciones) el 11/12/2011 18:34:24
Mario: muy buena solución, gracias :)
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