SoloCodigo

Programación General => Visual FoxPro => Mensaje iniciado por: claudiorene en Jueves 28 de Septiembre de 2006, 19:17

Título: Grid
Publicado por: claudiorene en Jueves 28 de Septiembre de 2006, 19:17
Hola amigos. Necesitaria que me ayuden. El problema es que tengo un grid en un form donde voy agregando los articulos que pretenecen a la venta. El tema es que nose como capturar los eventos del teclado, por ejemplo con F3, invocar a otro formulario donde muestro en un grid todos los articulos con codigo, descripcion, precio unit, etc. Y asi al elegir un producto, presionar por ejemplo el boton Seleccionar y volver al formulario facturacion, en el que egregue en el grid correspondiente el articulo seleccionad, y asi sucesivamente.

El repoblema mas grande es como capturar el evento del teclado, la prop del formulario KeyPreview ya lo puse en .T., pero nose como capturar el evento.

Y lo otro seria como ir agregando los diferentes articulos seleccionados al grid del formulario facturacion.

Bueno espero una ayuda urgente, y muchas gracias amigos....
Título: Re: Grid
Publicado por: arielb en Jueves 28 de Septiembre de 2006, 21:25
con push key habilitas
ON KEY LABEL F3 DO FORM formulario.SCX
ON KEY LABEL ALT+F DO FORM formulario2.SCX
con pop key deshabilita
con push key clear limpias la pila creada para las teclas
Título: Re: Grid
Publicado por: Widark en Jueves 28 de Septiembre de 2006, 22:04
Que tal!

Pues la verdad la solucion que da Juez (ni idea, nunca lo he manejado así, es que vengo de vb y no se muchas cosas de fox), yo lo haria así:

Código: Text
  1. &&Este es el evento KeyPress del formulaio
  2. LPARAMETERS nKeyCode, nShiftAltCtrl
  3. Public gcCodigoProducto
  4.  
  5. gcCodigoProducto = ""
  6. If nKeyCode = -2 && F3 Adicionar
  7.     Do Form Formulario_Productos
  8.     if !Empty(gcCodigoProducto)
  9.          Replace codigoproducto With gcCodigoProducto In Tabla_Factura
  10.          ThisForm.Refresh()
  11.     EndIf
  12. EndIf
  13. Release gcCodigoProducto
  14. EndSelect
  15.  
Ahora en el formulario que llamas, estableceria la propiedad WindowType a (1)Modal y pondria el siguiente código
Código: Text
  1. &&Se supone que tienes un boton que se llama cmdSeleccionar y otro cmdSalir
  2. &&En el evento click del boton seleccionar
  3. gcCodigoProducto = Productos.codigo && Se supone esta es la tabla
  4. ThisForm.cmdSalir.Click
  5.  
  6. &&Evento Click del boton Salir
  7. ThisForm.Release
  8.  
Cualquier duda nos comentas.

 :), aahhh Juez, y lo de la firma te la puedo sostener, es que se trabaja muy duro
Título: Re: Grid
Publicado por: diegopocas en Sábado 30 de Septiembre de 2006, 00:16
No hagas caso....Yo personalmente trabajo de la misma manera q lo hace juez y me ha funcionado a la perfeccion en un sistema POS q estamos desarrollando (ten en cuenta q un sistema POS se debe manejar con el teclado).

para lkuego liberar las teclas debes darle

on key label esc
on key label alt+ctrl

eso depende de las teclas q estes usando.

Espero te sirva.
Título: Re: Grid
Publicado por: baltty en Martes 10 de Octubre de 2006, 20:35
Hola Juez y Diego Pocas, me gustaria que me expliquen porfavor lo del push key.
La verdad nunca lo he visto, expliquenme detalladamente como se usa y en que casos sirve...
Soy su amigo espero me ayuden...Si puedem envienme un ejemplo cortito a mi correo BALTYREYNALDO@HOTMAIL.COM

bytes , espero me ayuden
Título: Grid y funciones
Publicado por: cafe VI en Sábado 13 de Noviembre de 2010, 01:53
Hola Juez,

Esta solución a mi no me ha funcionado.
Mi caso es que al entrar por segunda vez a una grid sin salir del formulario esta se desconfigura completamente.
Bien, las caracteristicas de las columnas y el orígen de datos se parametrizan antes de cargar la grid nuevamente, pero en la columna 1
utilizo la función F2 para búsquedas, y no sé cómo habilitar de nuevo el F2 en el método que llamo para actualizar la grid.
no me funciona ni con ON KEY LABEL F2 thisform.actualiza_grid ni con set function F2 to thisform.actualiza_grid.

Podría por favor ayudarme a salir de este lio?

De antemano muchas gracias
cafe VI vfp 6