Lector de Codigo Barras


(MiM) #1

Tengo un problemilla con el lector de codigo de barras.

he echo un proceso para buscar un articulo tanto por su codigo, como por su codigo de barras. Si lo hago manualmente funciona a la perfeccion, siempre calro que apreto el tabulador.

Cuando lo hago con la pistola pues pasa que al final le da al intro, con lo que me acepta el formulario y no me busca bien los codigos de barras.

 

La pregunta es:

1.- Es possible que al apretar el intro no acepte un formulario?

2.- Se puede comprovar al aceptar si el foco biene de un edit o otro, y hacer un proceso o otro?


([N2] huntergps) #2

Estimado,

 

Como dicen los expertos para encontrar las soluciones hay salir del cuadro mirar el "big picture", lo más factible sería que en el lector de códigos de barras se cambie el enter por tab.

 

saludos


(MiM) #3

Muchas Gracias

 

Si esta es una buena opcion si solo se tiene que configurar 1 lector, pero el problema es que quiero hacer un programa generico y no quiero tener que configurar todos los lectores de barras que se pongan con la complicacion que cada lector se configura de forma distinta.

 

Alguien tiene alguna opcion mas generica?








([N1] frueda) #4

Hola, ¿puedes pasarme un pantallazo de tu aplicación con el formulario que usa el lector de código de barras? quizás pueda ayudarte.
Gracias.


(MiM) #5

Aqui tienes.

Donde pongo Codigo tiene un localizador para hacerlo manual o puedes poner tanto el codigo como el codigo de barras y si tabulas perfecto, pero si paso el lector me acepta el formulario.

 

Espero noticias y muchas gracias

[attachment=11625,1088]


([N1] frueda) #6

Bien, según pones es un formulario modal a la aplicación, por tanto, podrías crear un evento que dispare el botón aceptar que averigue donde está el foco con "Interfaz: Tiene Foco" y mandes el foco al siguiente campo. Cuando todos sean correctos se podrá aceptar el formulario.

Para disparar el botón aceptar ponlo como botón por defecto, activando su propiedad a true.

OJO, si el formulario no es modal, tenemos que hacerlo de otra forma, de ahí que te haya pedido la imagen.

Pruébalo y me comentas, si falla dime que hace exactamente y le damos vueltas por otro lado.

Un saludo.

 


(MiM) #7

Perdona mi ignorancia, pero para hacer eso que me comentas tendria que al boton aceptar cambiarle el comadno por un proceso no? i en cuanto a lo del foco no lo he echo nunca, pero voy a mirar haber si me entero.

 

Una pregutna mas lo del boton por defecto que hace exactamente? mas que nada para saber.

 

Mucahs Gracias


([N1] frueda) #8

Hola, sin problema te explico:

El botón debes cambiarlo por ejecutar evento y crear un evento con:

+ Validación de campos

+ Enviar al foco al control correspondiente con "Interfaz: Activar foco objeto ()"

+ Y en caso de estar todos bien y tener que aceptar el formulario, puedes hacer un "Interfaz: Aceptar", que acepta los cambios del formulario y los guarda.

El botón por defecto, aunque en V7 aún no funciona muy bien, en teoría es el botón de un formulario que se ejecuta cuando el usuario pulsa la tecla Intro en cualquier parte del formulario. Se establece en la propiedad del botón "Botón por defecto", y solo un botón del formulario debe tenerlo activado.

Un saludo.

 


(MiM) #9

Despues de tus explicaciones el resultado para quien le interese, he hecho un evento que se ejecuta desde el boton aceptar del formulario, el codigo es el siguiente. 

Interfaz: Tiene foco (CONTROL, OK)

If (OK)

   Interfaz: Ejecutar otro evento-slot (ACTUALIZAR_CODIGO)

   Interfaz: Activar foco objeto (CONTROL2)

else

   Interfaz: Aceptar

 

El CONTROL es el codigo, el ACTUALIZAR_CODIGO es el evento que tengo al salir del codigo.

Espero quede Claro

 


(ame) #10

Hola,

 

De esa forma, te quitas un problema y te surge otro, que no sé realmente si te importará que te pase o no.

 

Lo que quiero decir es que, tal cual has implementado la solución, lo único que no puedes hacer es aceptar el formulario si el foco está en el control del código, ya que lo que haría sería pasar el foco al siguiente control, por lo que tendrías que realizar dos "aceptar" para verdaderamente aceptar el formulario. Repito, no se si esto te importará.

 

De todas formas, te comento otra posible solución, que es la que yo utilizo y creo que si buscas por el foro encontrarás mi tema donde lo explico. Es muy simple, creas un enganche a evento con la señal tecla pulsada y ejecutas un evento que compruebe qué tecla se ha pulsado, si es un INTRO y el foco está en CONTROL, ejecutas el IF que tienes ahí arriba, si es un INTRO PERO el foco no está en CONTROL, ejecutas el ELSE y, por último, si NO es un INTRO, simplemente no hagas nada.

 

Espero te que sirva de algo.

 

Saludos.


([N1] frueda) #11

Hola, creo que si haces lo que dice ame, debes anular la propiedad por defecto del botón.


(MiM) #12

Lo de dar dos intros es un pequeño peaje que no me importa pagar.

 

De todas formas si en un futuro me encuentro con problemas utilizare lo que me comentas.

 

Muchas Gracias