SoloCodigo
Programación General => Visual FoxPro => Mensaje iniciado por: claudiorene en Jueves 2 de Noviembre de 2006, 18:57
-
Hola amigos, toy diseñando , todavia, el sistemita de facturacion y lo que deseo hacer es poder leer eventos del teclado, uso el PUSH KEY y ON KEY LABEL F3, pero el tema que con esa tecla quiero llamar a otro formulario, por ejemplo ON KEY LABEL F3 do form Articulos.scx, pero me captura cualquier tecla del telcado, ademas me ejecuta tos del codigo que esta dentro del metodo KeyPress.
Espero me eyuden, y i hay otra maneramas facila de leer los ventos del telcado, mejor, pero simpre con la idea de utilizar una determinada tecla para invocar al formulario en cuestion.
Ha y otra cosa, cuando creamos un cursor con la sentencia CREATE CURSOR DATOS (campo1 tipo1,campo2, tipo2...etc), osea en el voy agregando lops datos del detalle de la factura, es mejor hacerlo en el metodo LOAD del formulario o en el metodo INIT, nada mas, gracias y espero una mano amiga....
-
Buenas tardes,
para el manejo del teclado usa el evento keypress preguntando el resultado a la variable NKEYCODE=-2 asi:
if nkeycode=-2
do form articulos
endif
para lo del curosr es mejor en el load, la instruccion sería así:
en el evento load del formulario
CLOSE TABLES ALL
CREATE CURSOR <NOMBRE DEL CURSOR> (CAMPO1,...CAMPOn)
*--si vas a asociar el cursor a un listbox sería así:
THISFORM.LISTBOX.ROWSOURCE=<NOMBRE DEL CURSOR>
THISFORM.LISTBOX.ROWSOURCETYPE=2
Y en el diseño del formulario le colocas al objeto listbox en numero de columnas que quieres mostrar
hasta pronto
-
pero me captura cualquier tecla del telcado, ademas me ejecuta tos del codigo que esta dentro del metodo KeyPress.
Recuerda que cada ves que presionas una tecla se activa el evento keyPress de la ventana cualquiera que sea la tecla. lo que puedes hacer es dividir tu codigo
el push key y el on key label lo colocas en el init del formulario para que al iniciar el formulario cree la pila de las teclas que vas a usar durante que se mantenga abierta la sesion de ese form o desde que destrullas la pila de teclas. y
ademas me ejecuta tos del codigo que esta dentro del metodo KeyPress
y el codigo extra puedes crearte un metodo y para usarlo y llmarlo en donde lo necesites.
cuando creamos un cursor con la sentencia CREATE CURSOR DATOS (campo1 tipo1,campo2, tipo2...etc), osea en el voy agregando lops datos del detalle de la factura, es mejor hacerlo en el metodo LOAD del formulario o en el metodo INIT
el metodo load se es implementado primero que el init. El load al implementarse todavia no se han cargado los objetos del form y el init se ejecuta cuando ya están todos los objetos cargados del form. Asi que si durante la creacion del tabla temporal no necesitas ni un valor o algo asi que reposa en algun objeto quedaria bien en el load, aunque tambien seria bueno considerar las especificaciones de la maquina para el cual vas hacer la aplicacion, debido a que si cargas mucho el metodo load en procesos puede demorar un poco en aparecer la forma y un usuario inexperto o tambien con conocimiento puede desesperarse y empezar a dar clic a lo loco porque no le sale la pantalla. :blink:
Otra cosa que podrias hacer para no estar creando siempre el cursor seria verificar si existe, si no existe entonces lo creas y si existe lo rellenas.
seria algo asi.
if file('datos')
&&rellenar con los datos
else
&&crearlo
endif
bueno espero te sirva de algo
saludos,