Keypress No me funciona en un GRID

646 views
Skip to first unread message

CARLOS HERNANDEZ

unread,
Jun 28, 2015, 5:27:40 PM6/28/15
to publice...@googlegroups.com
Amigo porfavor aguien que pueda apoyarme:

Mi problema es que tengo un form, donde agrego por medio de un texbox datos de un curso que cargo de un consulta de una tabla de Mysql y que voy mostrando los datos en un grid. Mi Objetivo es que cada que agrego un articulo su cantidad es minimo 1 pero si se lleva mas de 1 de un determinado articulo yo preciono la tecla F8 para modificar la cantidad que esta en un texbox del grid,en la primera ves funciona perfecto, pero en la misma venta nueva mente al querer modificar la cantidad preciono F8 y ya no funciona...en otras palabras mi problema es que ya no manda el foco al grid....aguien me puede decir por que o como solucionarlo.

anexo imagen y el codigo del keypress del form y la funion que hace el F8

IF nKeyCode=-7

select csrventas
go bottom
thisform.grid1.column4.text1.setfocus()
ENDIF

 
 

 
 
ventana1.jpg
ventana2.jpg

integral

unread,
Jun 28, 2015, 7:28:07 PM6/28/15
to publice...@googlegroups.com, lic_ca...@hotmail.com

Estimado Amigo :

No indicas en que evento estas colocando el código que mencionas.

Para mi creo a no equivocarme seria mas fácil y sencillo poner el código en el Text1 de la columna que deseas llamar a la tecla de funcion F8

IF nKeyCode=-7
  select csrventas
  go bottom
ENDIF

Saludos,

INTEGRAL

CARLOS HERNANDEZ

unread,
Jun 28, 2015, 9:05:32 PM6/28/15
to publice...@googlegroups.com
ya lo hice amigo pero no me funciona


Date: Sun, 28 Jun 2015 16:28:06 -0700
From: gabriel_...@hotmail.com
To: publice...@googlegroups.com; lic_ca...@hotmail.com
Subject: [vfp] Re: Keypress No me funciona en un GRID

Ultraton500

unread,
Jun 28, 2015, 9:18:45 PM6/28/15
to publice...@googlegroups.com, gabriel_...@hotmail.com, lic_ca...@hotmail.com
Integral:
Si prestas atención verás que no solo en el título menciona el evento en cuestión sino que también en cuerpo del mensaje, y además indica en qué objeto.

Calichy:
Debes establecer a .T. la propiedad KeyPreview del form para que este intercepte los eventos KeyPress de sus controles.

Saludos,
Javier.

CARLOS HERNANDEZ

unread,
Jun 28, 2015, 9:24:40 PM6/28/15
to publice...@googlegroups.com
SI TENGO ACTIVADO EN EL FORM KEYPREVIW=.T., DE HECHO SI ME MANDA EL FOCO CUANDO PRECIONO POR PRIMERA VES EL F8 PERO EL KEYPRESS NO FUNCIONA CUANDO LO USO DENUEVO EN LA MISMA VENTA....ESPERO ME DE A EXPLICAR Y LEI EN UN FORO QUE NO TENGO QUE USAR EL THISFORM.GRID1.REFREHS PERO SI NO LO HAGO NO PUEDO VER AL INSTANTE LO QUE AGREGO EN EL GRID ....ESPERO ME PUEDAN AYUAR...SALUDOS


Subject: [vfp] Re: Keypress No me funciona en un GRID

Ultraton500

unread,
Jun 28, 2015, 10:56:07 PM6/28/15
to publice...@googlegroups.com, lic_ca...@hotmail.com
Ok, tranquilo... (lo digo por las mayúsculas).
No me queda claro de qué manera es que modificas la cantidad. Llamas a una ventana y ahí le ingresas la nueva cantidad o cómo es que lo haces? Esa es la parte del código KeyPress que no has mostrado y que podría ser de utilidad para recibir mejor ayuda.

Saludos,
Javier.

El domingo, 28 de junio de 2015, 22:24:40 (UTC-3), calichy escribió:
SI TENGO ACTIVADO EN EL FORM KEYPREVIW=.T., DE HECHO SI ME MANDA EL FOCO CUANDO PRECIONO POR PRIMERA VES EL F8 PERO EL KEYPRESS NO FUNCIONA CUANDO LO USO DENUEVO EN LA MISMA VENTA....ESPERO ME DE A EXPLICAR Y LEI EN UN FORO QUE NO TENGO QUE USAR EL THISFORM.GRID1.REFREHS PERO SI NO LO HAGO NO PUEDO VER AL INSTANTE LO QUE AGREGO EN EL GRID ....ESPERO ME PUEDAN AYUAR...SALUDOS


Date: Sun, 28 Jun 2015 18:18:45 -0700
From: ultra...@gmail.com

integral

unread,
Jun 28, 2015, 11:27:29 PM6/28/15
to publice...@googlegroups.com, lic_ca...@hotmail.com

Estimado ULTRATON500 :

Efectivamente lo esta indicando pero cometi un error de transcripcion al mencionarlo, pero tampoco atinaste con la solucion al problema..Como dicen en mi país

FUISTE  POR LANA Y SALISTE TRASQUILADO...

Retomando el tema principal luego de un analisis...

1) Debes utilizar el evento Keypress del GRID 

2) Para que no aparezca el símbolo "Ÿ" cuando el usuario presione cualquier tecla de funcion utiliza el siguiente codigo :

IF nKeyCode<1 OR INLIST(nKeycode,28,133,134)  && F1...F12
    nodefault
ENDIF 


Utilizar el evento Keypress pero el del Grid, no el del text1 de la columna4, para que funcione con la propiedad .ALLOWCELLSELECTION en .F. 

Por ultimo utiliza  poniendo en el BeforeRowColChange del grid.

Thisform.grid1.column4.text1.KeyPress

Espero ahora puedas encontrar la solución a tu problema...

atte.,

INTEGRAL
8Lima-Perú)

El domingo, 28 de junio de 2015, 23:27:40 (UTC+2), calichy escribió:

Ultraton500

unread,
Jun 29, 2015, 12:51:10 AM6/29/15
to publice...@googlegroups.com, gabriel_...@hotmail.com, lic_ca...@hotmail.com
Integral:
1- que mi aporte no haya contribuido a solucionar el problema no significa que no presto atención al leer. Al menos mi respuesta fue coherente.
2- no me interesa qué o cómo dicen los demás sean del país que sean.
3- si se programa en el evento KeyPress del grid, presionar F8 no hará nada si el foco está en otro control.
4- qué es eso de "Ÿ" ?... A mi no me pasa.

Fidel Charny

unread,
Jun 29, 2015, 9:04:15 AM6/29/15
to publice...@googlegroups.com, lic_ca...@hotmail.com
Cuando mueves el puntero de registro del cursor asociado a un control grid, tienes que hacer un refresh para el control. Y el foco es para la columna, no para el control incluido en la columna. Intenta lo siguiente.
IF nKeyCode=-7

        select csrventas
        go bottom
        with thisform.grid1
                .refresh
                .Column4.SetFocus
        endwith
**** thisform.grid1.column4.text1.setfocus()
ENDIF

CARLOS HERNANDEZ

unread,
Jun 29, 2015, 7:32:06 PM6/29/15
to publice...@googlegroups.com
ya probe todas las opciones pero no encuentro solucion o creo que no me doy a explicar help please


From: lic_ca...@hotmail.com
To: publice...@googlegroups.com
Subject: RE: [vfp] Re: Keypress No me funciona en un GRID
Date: Sun, 28 Jun 2015 20:05:28 -0500

Ultraton500

unread,
Jun 29, 2015, 8:13:02 PM6/29/15
to publice...@googlegroups.com, lic_ca...@hotmail.com
Sigamos intentando... me cuesta creer que no te funcione el keyPress del form. Prueba lo siguiente:
Con el objetivo de ir aislando el problema verifica con un Messagbox si el evento KeyPress del form está interceptando o no el F8 y cuéntanos si funciona:

IF nKeyCode=-7
    MESSAGEBOX("Presionaste F8")
ENDIF

Saludos,
Javier.

El lunes, 29 de junio de 2015, 20:32:06 (UTC-3), calichy escribió:
ya probe todas las opciones pero no encuentro solucion o creo que no me doy a explicar help please


Subject: RE: [vfp] Re: Keypress No me funciona en un GRID
Date: Sun, 28 Jun 2015 20:05:28 -0500

ya lo hice amigo pero no me funciona


Date: Sun, 28 Jun 2015 16:28:06 -0700
From: gabriel_...@hotmail.com

CARLOS HERNANDEZ

unread,
Jun 29, 2015, 10:17:54 PM6/29/15
to publice...@googlegroups.com
Mi estimado amigo Ultraton500  creo que no me he explicado bien....el F8 si me funciona pero solo una ves y lo utilizo para mandar el foco(setfocus) hacia un texbox que se encuentra dentro de un grid para modificar un dato que ante yo ingreso a un curso el cual lleno el grid. Segun lei en otro foro que el  evento keypress se pierde despues de un thisform.grid1.refresh por que segun debo de limpiar el thisform.grid1.recordsource="" pero si lo hago pues ya no miro los datos que estoy cargando en el grid pero 


Date: Mon, 29 Jun 2015 17:13:02 -0700
From: ultra...@gmail.com
To: publice...@googlegroups.com; lic_ca...@hotmail.com
Subject: Re: [vfp] Re: Keypress No me funciona en un GRID

CARLOS HERNANDEZ

unread,
Jun 29, 2015, 10:25:06 PM6/29/15
to publice...@googlegroups.com
Mi estimado amigo Ultraton500  creo que no me he explicado bien....el F8 si me funciona pero solo una ves miestras estoy ingresando datos al grid y lo utilizo para mandar el foco(setfocus) hacia un texbox que se encuentra en una columna dentro del grid para modificar un dato que antes yo ingrese a un curso el cual llena el grid. Segun lei en otro foro que el  evento keypress se pierde despues de un thisform.grid1.refresh por que segun debo de limpiar el thisform.grid1.recordsource="" pero si lo hago pues ya no miro los datos que estoy cargando en el grid .....espero haberme explicado.

el form donde estoy trabajando necesito agregar varios articulos que estoy vendiendo pero cuando alguno de esos articulo necesitan llevar mas de uno necesito llegar a la columna de la cantidad a modificar que esta en grid para modificar la cantidad de articulo que me estan comprando y esa fucnion es lo que quiero que haga el F8...

De antemando agradesco tu apoyo....saludos


Date: Mon, 29 Jun 2015 17:13:02 -0700
From: ultra...@gmail.com
To: publice...@googlegroups.com; lic_ca...@hotmail.com
Subject: Re: [vfp] Re: Keypress No me funciona en un GRID

integral

unread,
Jun 29, 2015, 10:58:01 PM6/29/15
to publice...@googlegroups.com, lic_ca...@hotmail.com

Estimado amigo Calichy :

Entonces sera posible que adjuntes el formulario con una data pequeña de prueba...

atte,

INTEGRAL


El domingo, 28 de junio de 2015, 23:27:40 (UTC+2), calichy escribió:

Víctor Hugo Espínola Domínguez

unread,
Jun 29, 2015, 11:31:07 PM6/29/15
to publice...@googlegroups.com
Hola Carlos

Dos preguntas:

1) Estás seguro de que la columna 4 es la que corresponde a Cantidad?

2) Ya probaste la sugerencia de Fidel?

Saludos,
Víctor.
Lambaré - Paraguay.


El 29 de junio de 2015, 10:24 p. m., CARLOS HERNANDEZ<lic_ca...@hotmail.com> escribió:
Mi estimado amigo Ultraton500  creo que no me he explicado bien....el F8 si me funciona pero solo una ves miestras estoy ingresando datos al grid y lo utilizo para mandar el foco(setfocus) hacia un texbox que se encuentra en una columna dentro del grid para modificar un dato que antes yo ingrese a un curso el cual llena el grid. Segun lei en otro foro que el  evento keypress se pierde despues de un thisform.grid1.refresh por que segun debo de limpiar el thisform.grid1.recordsource="" pero si lo hago pues ya no miro los datos que estoy cargando en el grid .....espero haberme explicado.

el form donde estoy trabajando necesito agregar varios articulos que estoy vendiendo pero cuando alguno de esos articulo necesitan llevar mas de uno necesito llegar a la columna de la cantidad a modificar que esta en grid para modificar la cantidad de articulo que me estan comprando y esa fucnion es lo que quiero que haga el F8...

De antemando agradesco tu apoyo....saludos


Date: Mon, 29 Jun 2015 17:13:02 -0700
From: ultra...@gmail.com
To: publice...@googlegroups.com; lic_ca...@hotmail.com
Subject: Re: [vfp] Re: Keypress No me funciona en un GRID
Sigamos intentando... me cuesta creer que no te funcione el keyPress del form. Prueba lo siguiente:
Con el objetivo de ir aislando el problema verifica con un Messagbox si el evento KeyPress del form está interceptando o no el F8 y cuéntanos si funciona:

IF nKeyCode=-7
    MESSAGEBOX("Presionaste F8")
ENDIF

Saludos,
Javier.

El lunes, 29 de junio de 2015, 20:32:06 (UTC-3), calichy escribió:
ya probe todas las opciones pero no encuentro solucion o creo que no me doy a explicar help please


Subject: RE: [vfp] Re: Keypress No me funciona en un GRID
Date: Sun, 28 Jun 2015 20:05:28 -0500

ya lo hice amigo pero no me funciona


Date: Sun, 28 Jun 2015 16:28:06 -0700
From: gabriel_...@hotmail.com

Víctor Hugo Espínola Domínguez

unread,
Jun 29, 2015, 11:37:46 PM6/29/15
to publice...@googlegroups.com
Complementando el mensaje anterior:

>thisform.grid1.column4.text1.setfocus()

Es mucho más legible así:

ThisForm.grdVenta.clmCantidad.SetFocus()

Ultraton500

unread,
Jun 30, 2015, 7:06:29 PM6/30/15
to publice...@googlegroups.com, lic_ca...@hotmail.com
Calichy, lo que me confundió es que yo entiendo que el F8 es una cosa y el código que el F8 debe ejecutar es otra, entonces cuando dices que el F8 te funciona solo una vez interpreté que lo que no te estaba funcionando era el evento KeyPress (por eso te sugerí que pusieras un Messagbox).
Si bien no explicas qué es lo que quieres ilustrar con cada imagen supongo que la 1ra. es cuando al presionar F8 la celda toma el foco y la 2da. es cuando no lo toma. Si no interpreté mal, lo que me llama la atención de la segunda imagen es que el foco está en el textbox del "Código del artículo", es decir, ni siquiera el grid toma el foco.
Estuve haciendo unas pequeñas pruebas y el código que pones en el F8 me funciona bien una y otra vez haciendo previamente THISFORM.grid1.RECORDSOURCE="", THISFORM.grid1.RECORDSOURCE="SELECT...." y "THISFORM.grid1.REFRESH". Por eso sería bueno que describas cuál es el código que se ejecuta entre la vez que funciona bien y la que ya no funciona como para que podamos tener mas idea de qué es lo que está pasando.

Saludos,
Javier.




El lunes, 29 de junio de 2015, 23:25:06 (UTC-3), calichy escribió:
Mi estimado amigo Ultraton500  creo que no me he explicado bien....el F8 si me funciona pero solo una ves miestras estoy ingresando datos al grid y lo utilizo para mandar el foco(setfocus) hacia un texbox que se encuentra en una columna dentro del grid para modificar un dato que antes yo ingrese a un curso el cual llena el grid. Segun lei en otro foro que el  evento keypress se pierde despues de un thisform.grid1.refresh por que segun debo de limpiar el thisform.grid1.recordsource="" pero si lo hago pues ya no miro los datos que estoy cargando en el grid .....espero haberme explicado.

el form donde estoy trabajando necesito agregar varios articulos que estoy vendiendo pero cuando alguno de esos articulo necesitan llevar mas de uno necesito llegar a la columna de la cantidad a modificar que esta en grid para modificar la cantidad de articulo que me estan comprando y esa fucnion es lo que quiero que haga el F8...

De antemando agradesco tu apoyo....saludos


Date: Mon, 29 Jun 2015 17:13:02 -0700
From: ultra...@gmail.com

CARLOS HERNANDEZ

unread,
Jul 2, 2015, 4:25:14 PM7/2/15
to publice...@googlegroups.com
gracias por sus comentario, les comento que ya resolví mi problema solo era cuestion que seleccionar el cursor y volverlo a cargar al grid....gracias y saludos a todos


Date: Mon, 29 Jun 2015 23:37:44 -0400

Subject: Re: [vfp] Re: Keypress No me funciona en un GRID

Antonio Meza

unread,
Jul 2, 2015, 6:12:18 PM7/2/15
to publice...@googlegroups.com, lic_ca...@hotmail.com
Que raro, en lo personal permito que capturen directamente del grid y tengo varias teclas definidas según el campo y nunca eh tenido que quitar y volver a poner el cursor al grid.por ejemplo

Si el grid tiene un ComboBox puedes presionar F3 para mostrar un catalogo, presionar F5 para refrescar el listado del combo, etc.

saludos
Antonio Meza


El jueves, 2 de julio de 2015, 15:25:14 (UTC-5), calichy escribió:
gracias por sus comentario, les comento que ya resolví mi problema solo era cuestion que seleccionar el cursor y volverlo a cargar al grid....gracias y saludos a todos
 


Reply all
Reply to author
Forward
0 new messages