El grupo al cual envías entradas es un grupo Usenet. Si envías mensajes a este grupo, cualquier usuario de Internet podrá ver tu dirección de correo electrónico
Tengo que leer un código de barras en una aplicación web. Sencillo, el código se mete en un campo de texto y el propio scanner al finalizar pasa un enter.
Pero el escanner no pasa enters, ni tabs, ni nada mas que los números y necesito saber cuando se ha terminado de leer el código de barras.
Ya intenté con el tamaño del codigo, pero hay códigos de diferentes tamaños asi que no se puede. Ya intenté con un código que pase al final (me metí a event y le di un dump) y nada todo igual, lo que cambia es el codigo ascii del caracter nada mas, incluso al final todo es igual. Ya intenté ver si con keypress, keyup y keydown, pero el lector hace como si se estuvieran apachando teclas del teclado y hace los 3 eventos en su secuencia habitual.
Y se me acabaron las ideas y/o estoy bloqueado. ¿Alguna idea que la comunidad pueda aportarme?
no te entiendo... si pasa una serie de numeros, osea algo como 43578943675893465894658936589736598747, eso no lo podes recibir en una variable y luego manipularlo a tu antojo???
o el problema es q lee, sigue leyendo, no para de leer???
Algo asi. Lo que leo lo cargo a un textbox que al entrar y después de cada operación le doy un focus. La cosa es que el escaner es como si estuvieras apachando las teclas del teclado. De hecho yo creia que cuando terminaba de leer insertaba un enter automático, y preparé para que cuando el textbox recibiera un ascii 13 procesara la info. Ahora tengo que encontrar que es lo que debo hacer en lugar del enter.
El día 22 de julio de 2010 18:05, Attakinsky <attakin...@gmail.com> escribió:
> no te entiendo... si pasa una serie de numeros, osea algo como > 43578943675893465894658936589736598747, eso no lo podes recibir en una > variable y luego manipularlo a tu antojo???
> o el problema es q lee, sigue leyendo, no para de leer???
y luego en el key release o como se llame en js if(a!=-1) cleartimeout(a); a = timeout ... con el codigo que vas a ejecutar y unos 200 ms o lo que consideres
perdon si no tiene ni sintaxis ni nada pero hace tiempo que no toco js, pero esa es la idea basica xD
El 22 de julio de 2010 20:33, Mario Soto <canc...@gmail.com> escribió:
> Algo asi. Lo que leo lo cargo a un textbox que al entrar y después de > cada operación le doy un focus. La cosa es que el escaner es como si > estuvieras apachando las teclas del teclado. De hecho yo creia que > cuando terminaba de leer insertaba un enter automático, y preparé para > que cuando el textbox recibiera un ascii 13 procesara la info. Ahora > tengo que encontrar que es lo que debo hacer en lugar del enter.
> El día 22 de julio de 2010 18:05, Attakinsky <attakin...@gmail.com> > escribió: > > no te entiendo... si pasa una serie de numeros, osea algo como > > 43578943675893465894658936589736598747, eso no lo podes recibir en una > > variable y luego manipularlo a tu antojo???
> > o el problema es q lee, sigue leyendo, no para de leer???
Que no envie el enter al final depende del lector. Hay que configurarlo para que lo haga. Normalmente en el manual vienen varios codigos para configurar el lector.
Saludos
Francisco Nieves "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning. " - Rich Cook
> y luego en el key release o como se llame en js > if(a!=-1) cleartimeout(a); > a = timeout ... con el codigo que vas a ejecutar y unos 200 ms o lo que > consideres
> perdon si no tiene ni sintaxis ni nada pero hace tiempo que no toco js, pero > esa es la idea basica xD
> El 22 de julio de 2010 20:33, Mario Soto <canc...@gmail.com> escribió:
>> Algo asi. Lo que leo lo cargo a un textbox que al entrar y después de >> cada operación le doy un focus. La cosa es que el escaner es como si >> estuvieras apachando las teclas del teclado. De hecho yo creia que >> cuando terminaba de leer insertaba un enter automático, y preparé para >> que cuando el textbox recibiera un ascii 13 procesara la info. Ahora >> tengo que encontrar que es lo que debo hacer en lugar del enter.
>> El día 22 de julio de 2010 18:05, Attakinsky <attakin...@gmail.com> >> escribió: >> > no te entiendo... si pasa una serie de numeros, osea algo como >> > 43578943675893465894658936589736598747, eso no lo podes recibir en una >> > variable y luego manipularlo a tu antojo???
>> > o el problema es q lee, sigue leyendo, no para de leer???
> Que no envie el enter al final depende del lector. Hay que > configurarlo para que lo haga. Normalmente en el manual vienen varios > codigos para configurar el lector.
> Saludos
> Francisco Nieves > "Programming today is a race between software engineers striving to > build bigger and better idiot-proof programs, and the Universe trying > to produce bigger and better idiots. So far, the Universe is winning. > " - Rich Cook
> > y luego en el key release o como se llame en js > > if(a!=-1) cleartimeout(a); > > a = timeout ... con el codigo que vas a ejecutar y unos 200 ms o lo que > > consideres
> > perdon si no tiene ni sintaxis ni nada pero hace tiempo que no toco js, > pero > > esa es la idea basica xD
> > El 22 de julio de 2010 20:33, Mario Soto <canc...@gmail.com> escribió:
> >> Algo asi. Lo que leo lo cargo a un textbox que al entrar y después de > >> cada operación le doy un focus. La cosa es que el escaner es como si > >> estuvieras apachando las teclas del teclado. De hecho yo creia que > >> cuando terminaba de leer insertaba un enter automático, y preparé para > >> que cuando el textbox recibiera un ascii 13 procesara la info. Ahora > >> tengo que encontrar que es lo que debo hacer en lugar del enter.
> >> El día 22 de julio de 2010 18:05, Attakinsky <attakin...@gmail.com> > >> escribió: > >> > no te entiendo... si pasa una serie de numeros, osea algo como > >> > 43578943675893465894658936589736598747, eso no lo podes recibir en una > >> > variable y luego manipularlo a tu antojo???
> >> > o el problema es q lee, sigue leyendo, no para de leer???
Coincido con Mauricio, los lectores de barras leen el código a una velocidad promedio, calculala con el código mas grande y pone timeouts, si es q leer el manual no funce..... jeje....
> Tengo que leer un código de barras en una aplicación web. Sencillo, el > código se mete en un campo de texto y el propio scanner al finalizar > pasa un enter.
> Pero el escanner no pasa enters, ni tabs, ni nada mas que los números > y necesito saber cuando se ha terminado de leer el código de barras.
> Ya intenté con el tamaño del codigo, pero hay códigos de diferentes > tamaños asi que no se puede. > Ya intenté con un código que pase al final (me metí a event y le di un > dump) y nada todo igual, lo que cambia es el codigo ascii del caracter > nada mas, incluso al final todo es igual. > Ya intenté ver si con keypress, keyup y keydown, pero el lector hace > como si se estuvieran apachando teclas del teclado y hace los 3 > eventos en su secuencia habitual.
> Y se me acabaron las ideas y/o estoy bloqueado. ¿Alguna idea que la > comunidad pueda aportarme?
Configura un carácter especial, digamos | como final de código en la lectora y te pegas al evento change del combo y cuando detectes ese carácter pues ya.
-- Enviado desde mi Gmail
El 23 de julio de 2010 03:26, JAM <jac...@gmail.com> escribió:
> Coincido con Mauricio, los lectores de barras leen el código a una > velocidad promedio, calculala con el código mas grande y pone timeouts, si > es q leer el manual no funce..... jeje....
> El 22/07/2010, a las 17:49, Mario Soto escribió:
> Jóvenes tengo el siguiente problema:
> Tengo que leer un código de barras en una aplicación web. Sencillo, el > código se mete en un campo de texto y el propio scanner al finalizar > pasa un enter.
> Pero el escanner no pasa enters, ni tabs, ni nada mas que los números > y necesito saber cuando se ha terminado de leer el código de barras.
> Ya intenté con el tamaño del codigo, pero hay códigos de diferentes > tamaños asi que no se puede. > Ya intenté con un código que pase al final (me metí a event y le di un > dump) y nada todo igual, lo que cambia es el codigo ascii del caracter > nada mas, incluso al final todo es igual. > Ya intenté ver si con keypress, keyup y keydown, pero el lector hace > como si se estuvieran apachando teclas del teclado y hace los 3 > eventos en su secuencia habitual.
> Y se me acabaron las ideas y/o estoy bloqueado. ¿Alguna idea que la > comunidad pueda aportarme?
> Configura un carácter especial, digamos | como final de código en la > lectora y te pegas al evento change del combo y cuando detectes > ese carácter pues ya.
> -- > Enviado desde mi Gmail
> El 23 de julio de 2010 03:26, JAM <jac...@gmail.com> escribió:
> Coincido con Mauricio, los lectores de barras leen el código a una >> velocidad promedio, calculala con el código mas grande y pone timeouts, si >> es q leer el manual no funce..... jeje....
>> El 22/07/2010, a las 17:49, Mario Soto escribió:
>> Jóvenes tengo el siguiente problema:
>> Tengo que leer un código de barras en una aplicación web. Sencillo, el >> código se mete en un campo de texto y el propio scanner al finalizar >> pasa un enter.
>> Pero el escanner no pasa enters, ni tabs, ni nada mas que los números >> y necesito saber cuando se ha terminado de leer el código de barras.
>> Ya intenté con el tamaño del codigo, pero hay códigos de diferentes >> tamaños asi que no se puede. >> Ya intenté con un código que pase al final (me metí a event y le di un >> dump) y nada todo igual, lo que cambia es el codigo ascii del caracter >> nada mas, incluso al final todo es igual. >> Ya intenté ver si con keypress, keyup y keydown, pero el lector hace >> como si se estuvieran apachando teclas del teclado y hace los 3 >> eventos en su secuencia habitual.
>> Y se me acabaron las ideas y/o estoy bloqueado. ¿Alguna idea que la >> comunidad pueda aportarme?
Terrible pero debo confesarlo. Anoche estuve soñando con esa babosada y también se me ocurrió poner un timeout como me sugirió Mauricio. Como dice Jam estaba pensando dejalo mas de 200ms, o talvez hacer un conteo cada 200ms y cuando llegue a 5 por ejemplo (1seg) ó a 10 (2seg) tirarlo automáticamente.
El problema con la configuración del lector y el RTFM es que no tengo acceso a configurarlo en cada máquina.... (suspiro) pues esa es la idea de que se haga web... (suspiro).
Igual voy a dejar el enter por si ocurre que tengo algún lector bien configurado :)
Douglas: El problema es que no tengo el control de todos los códigos, sino que ya vienen impresos y pegados en los productos.
Estudardo: No, los codigos de barras no vienen de un solo tamaño, aunque la mayoría tiene 12 dígitos y solo números, algunos códigos tiene 8 dígitos y otros tienen letras.
Además, el hecho que lo estén haciendo con código de barras implica que van a querer que yo genere los códigos de barras de los pedidos, órdenes etc (cosa que ya me sugirieron que investigue) y eso es fácil, consigo un ttf con esa fuente y creo una imagen, la pego en pdf o etc. Alli si voy a poner un caracter de control.
> Terrible pero debo confesarlo. Anoche estuve soñando con esa babosada y > también se me ocurrió poner un timeout como me sugirió Mauricio. > Como dice Jam estaba pensando dejalo mas de 200ms, o talvez hacer un conteo > cada 200ms y cuando llegue a 5 por ejemplo (1seg) ó a 10 (2seg) tirarlo > automáticamente.
> El problema con la configuración del lector y el RTFM es que no tengo > acceso a configurarlo en cada máquina.... (suspiro) pues esa es la idea de > que se haga web... (suspiro).
> Igual voy a dejar el enter por si ocurre que tengo algún lector bien > configurado :)
> Douglas: El problema es que no tengo el control de todos los códigos, sino > que ya vienen impresos y pegados en los productos.
> Estudardo: No, los codigos de barras no vienen de un solo tamaño, aunque la > mayoría tiene 12 dígitos y solo números, algunos códigos tiene 8 dígitos y > otros tienen letras.
> Además, el hecho que lo estén haciendo con código de barras implica que van > a querer que yo genere los códigos de barras de los pedidos, órdenes etc > (cosa que ya me sugirieron que investigue) y eso es fácil, consigo un ttf > con esa fuente y creo una imagen, la pego en pdf o etc. Alli si voy a poner > un caracter de control.
me no comprender porque tu usar interval xD me.logic(chucho) not found xD
si tenes un contador y un intervalo cada t pero siempre subis el contador y la unica vez que se activa una logica dentro del intervalo es hasta que el contador llega a un numero x, entonces te es lo mismo que hacer setTimeout(funcion,x*t);
aparte veo que segun tu logica podes tener un intervalo y si se presiona enter, no se detiene el intervalo. Que raro programas mario ^_^
El 28 de julio de 2010 11:17, Mario Soto <canc...@gmail.com> escribió:
Cuando el lector de código de barras lee algo lo hace en secuencia rápida. Calcula el tiempo desde que se presionó la ultima tecla y si el tiempo que pasa es X (intervalo x veces) activa la búsqueda. Ahora lo que me decis del enter es un bug que se me había pasado por alto. Hay que agregar clearInterval(timer); iniciado = false; dentro del area donde se lee el enter. Luego limpio el intervalo para que no siga haciendo busquedas cada vez que el intervalo sin presionar la tecla suceda.
La diferencia entre el setInterval y setTimeOut es que el primero se ejecuta hasta que se cierre la página o hasta el primer clearInterval. El segundo se ejecuta una vez en el tiempo establecido. Si pusiera un timeout cada vez que se presiona la tecla activaria la busqueda cada vez que se cumpliera el tiempo para cada letra. La otra opcion sería limpiar el timeout cada vez, pero esto puede tomar tiempo y si es en una misma variable puede obstruir el clearTimeOut. En las pruebas que hice me sucedió que no limpiaba correctamente y si escribia 5 caracteres me realizaba hasta 4 busquedas porque no limpiaba el timeout. Es mas fácil trabajarlo con una variable porque hay tiempo entre que se presiona una tecla y ejecuta la acción.
Hice ensayos y estuve a prueba y error. Hay varias formas de hacer las cosas muchas veces y que no le mirés lógica no quiere decir que no funciones. Mi explicación del porqué lo hice así alli está.
Gracias por el bug que encontraste y que ahora corrijo.
El día 28 de julio de 2010 11:33, Mauricio Deleon <lmdbl...@gmail.com> escribió:
> me no comprender porque tu usar interval xD > me.logic(chucho) not found xD
> si tenes un contador y un intervalo cada t pero siempre subis el contador y > la unica vez que se activa una logica dentro del intervalo es hasta que el > contador llega a un numero x, entonces te es lo mismo que hacer > setTimeout(funcion,x*t);
> aparte veo que segun tu logica podes tener un intervalo y si se presiona > enter, no se detiene el intervalo. > Que raro programas mario ^_^
> El 28 de julio de 2010 11:17, Mario Soto <canc...@gmail.com> escribió:
>> Resolví el clavo con un setInterval. Mando el código por si a alguien >> le sirve. Solo busquen las variables globales. No uso objetos en esto.
> Cuando el lector de código de barras lee algo lo hace en secuencia > rápida. Calcula el tiempo desde que se presionó la ultima tecla y si > el tiempo que pasa es X (intervalo x veces) activa la búsqueda. Ahora > lo que me decis del enter es un bug que se me había pasado por alto. > Hay que agregar > clearInterval(timer); > iniciado = false; > dentro del area donde se lee el enter. Luego limpio el intervalo para > que no siga haciendo busquedas cada vez que el intervalo sin presionar > la tecla suceda.
> La diferencia entre el setInterval y setTimeOut es que el primero se > ejecuta hasta que se cierre la página o hasta el primer clearInterval. > El segundo se ejecuta una vez en el tiempo establecido. Si pusiera un > timeout cada vez que se presiona la tecla activaria la busqueda cada > vez que se cumpliera el tiempo para cada letra. La otra opcion sería > limpiar el timeout cada vez, pero esto puede tomar tiempo y si es en > una misma variable puede obstruir el clearTimeOut. En las pruebas que > hice me sucedió que no limpiaba correctamente y si escribia 5 > caracteres me realizaba hasta 4 busquedas porque no limpiaba el > timeout. Es mas fácil trabajarlo con una variable porque hay tiempo > entre que se presiona una tecla y ejecuta la acción.
> Hice ensayos y estuve a prueba y error. Hay varias formas de hacer las > cosas muchas veces y que no le mirés lógica no quiere decir que no > funciones. Mi explicación del porqué lo hice así alli está.
> Gracias por el bug que encontraste y que ahora corrijo.
> El día 28 de julio de 2010 11:33, Mauricio Deleon <lmdbl...@gmail.com> escribió: >> me no comprender porque tu usar interval xD >> me.logic(chucho) not found xD
>> si tenes un contador y un intervalo cada t pero siempre subis el contador y >> la unica vez que se activa una logica dentro del intervalo es hasta que el >> contador llega a un numero x, entonces te es lo mismo que hacer >> setTimeout(funcion,x*t);
>> aparte veo que segun tu logica podes tener un intervalo y si se presiona >> enter, no se detiene el intervalo. >> Que raro programas mario ^_^
>> El 28 de julio de 2010 11:17, Mario Soto <canc...@gmail.com> escribió:
>>> Resolví el clavo con un setInterval. Mando el código por si a alguien >>> le sirve. Solo busquen las variables globales. No uso objetos en esto.
no os ahueveis, la lista no es para espiritus debiles ademas con cada ayudita que le dan a uno se tiene que acostumbrar a que siempre va cierta tiradera de popo fino aunque no en todos los casos
> no os ahueveis, > la lista no es para espiritus debiles > ademas con cada ayudita que le dan a uno se tiene que acostumbrar a que > siempre > va cierta tiradera de popo fino aunque no en todos los casos