FoxPro/Visual FoxPro - Ayuda!! Ese bendito botón...!!

 
Vista:

Ayuda!! Ese bendito botón...!!

Publicado por Claudia (91 intervenciones) el 12/03/2007 03:30:08
Hola a todos.
Días pasado les consulté por un problema al leer con código de barra pero todavía NO pude solucionarlo ¿me ayudan?

Estoy haciendo un programa tipo supermercado y en este momento estoy armando el formulario que sería la carga de la factura o la futura carga de datos de las cajeras del "Super"

- La idea es que en un textbox, cargue el código del producto mediante un lector de código de barra (como en cualquier supermercado)

- Con el código ingresado, el programa lo busca en la tabla de productos y devuelve el nombre, el precio, etc
Por defecto la cantidad es 1 (uno), salvo que el cajero presione F12, con lo que le da la alternativa de cambiar la cantidad facturada.

- Luego, rellena un grid con todas las líneas de la factura mediante un INSERT INTO de SQL en una tabla temporal (en realidad el grid está vinculado a una tabla temporal donde se guardan todos los items facturados)

- Luego debería volver al textbox para seguir ingresando otro código de barra.

MI PROBLEMA ES QUE NO VUELVE AL TEXTBOX Y SIEMPRE QUEDA EN EL GRID, a pesar de que en el úlitmo paso, después de actualizar el grid le ponga:

THISFORM.mi_TEXTBOX.SETFOCUS

Si yo lo hago con el mouse (click en el el textbox) todo funciona bárbaro.

El otro día algunos de ustedes me sugirieron que ponga un botón para que la cajera confirme el renglón. Esto sí funciona, pero es poco práctico. Además he estado mirando varios programas de los "Super" y en todos la carga es automática (sin botón de confirmación)

¿Me pueden ayudar?

Muchas 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:Ayuda!! Ese bendito botón...!!

Publicado por Plinio (7841 intervenciones) el 12/03/2007 13:12:38
Si el codigo no es muy largo, puedes postearlo aqui, indicando en que evento lo tienes.
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
sin imagen de perfil

RE:Ayuda!! Ese bendito botón...!!

Publicado por neo (1604 intervenciones) el 12/03/2007 16:15:21
Ok. si el messagebox te parece un poco practico, pasa el enfoque a un
Wait Window y tu le asignas el tiempo en que aparecerá ese wait window.

Ejemplo:

al final de donde se guardan los datos en la tabla temporal.

Thisform.refresh
Wait window "Articulo Facturado" Timeout .4
Thisform.textbox1.setfocus()

ó, puedes hacer un Thisform.comando1.click()
en donde ahí puedes actualizar el codigo de manera que entraras en ese formulario y listo para ingresar un nuevo articulo

Thisform.text1.value=""
Thisform.text2.value=0

Thisform.textbox1.setfocus()
Thisform.refresh

Suerte►
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:Ayuda!! Ese bendito botón...!!

Publicado por Claudia (91 intervenciones) el 12/03/2007 23:04:31
Ok. Gracias a Neo por las ideas. Las voy a probar.

En cuanto al código, como es largo se los resumo así:

ThisForm.txtCod_Art > Cuadro de texto donde se guarda el código de barra
ThisForm.Grid1 > Grid que lleva el control de los items facturado

Articulos.dbf > Tabla donde se encuentran los datos de los artículos de stock
Item_Factura.dbf > Tabla donde se guarda cada item facturado

Los eventos utilizados son los siguientes.

* Thisform.txtCod_Art. Valid
> busco el código en la base Articulos.dbf.
> Si existe relleno todos los textbox correspondientes.
> Si no existe va un mensaje de error para que vuelvan a cargar el código

* Thisform.txtCod_Art . Lostfocus
> hago foco en el grid
> agrego un registro en la tabla Item_Factura.dbf (que muestra el grid) (ver NOTA)
> hago foco en txtCod_Art para que carguen otro código

NOTA:
Lo del foco al grid lo hice porque no actualizaba bien los datos mostrados (refresh) y alguien del foro me lo sugirió así y funcionó

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
sin imagen de perfil

RE:Ayuda!! Ese bendito botón...!!

Publicado por neo (1604 intervenciones) el 13/03/2007 15:03:05
Yo no veo el problema, solo hay que actualizar el grid. y que todos los objetos se vuelvan como al principio, con su valor a cero y limpiando los caracteres. para esto puedes usar varios eventos del form,boton, o inclusive donde recibe el enfoque el grid.

solo es cuestion de revisarlo bien.

suerte►
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:Ayuda!! Ese bendito botón...!!

Publicado por Claudia (91 intervenciones) el 13/03/2007 19:29:41
El único problema que tengo es que no vuelve al botón de código, obligando al operador a hacer click con el mouse en el textbox del código (poco práctico)

Ya sé que es una pavada pero no lo puedo resolver.

¿Qué se les ocurre?
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
sin imagen de perfil

RE:Ayuda!! Ese bendito botón...!!

Publicado por neo (1604 intervenciones) el 13/03/2007 19:44:03
Un Setfocus al objetoque deseas, es mas que suficiente...

Probablemente sea cosa de objetividad, ubicacion en eventos y propiedades de objetos.

Mira, haz un boton y en ese boton escribe:

Thisform.textbox1.Setfocus()
Thisform.refresh

Y en la ultima linea, especificamente cuando recibe el enfoque el grid. Me imagino que recibe el enfoque en el text1 de la columna1 del grid.

Entonces en el Evento GotFocus() del text1 de la columna1 del grid, escribe:

Thisform.comando1.click()
Thisform.refresh

Nota: Puedes escribir cualquier cantidad de codigo en ese boton, es decir, actualizar tus textbox y posicionar al textbox de codigo de barras.

Algo Sencillo, no crees?

suerte►
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
sin imagen de perfil
Val: 20
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

RE:Ayuda!! Ese bendito botón...!!

Publicado por marcelo (186 intervenciones) el 15/03/2007 12:05:53
hola, yo lo solucioné de esta manera: el lector de codigos de barras luego de leer al codigo genera el chr(13) como si se diera enter por lo tanto cuando vos pedis que el foco vuelva al textbox donde se ingresa el código el foco realmente va al textbox pero luego ejecuta el enter con lo cual el textbox pierde el foco, entonces en ves de pedir que el foco lo tenga el textbox donde se ingresa el código pasá el foco al textbox que esta inmediatamente antes asi cuando ejecuta ese enter pierde el foco y para en el textbox del ingreso del código.
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