Page 1 of 1

Ayuda sobre pistola lectora de codigos de barra

Posted: Mon Jun 01, 2009 7:27 pm
by Vladimir Zorrilla
Amigos

Tengo una pistola para scanear codigos de barra

Modelo Dyna Pos

se puede programar la lectura e impresion de codigos de
barra desde fw

los codigos son standares para todos lkos idiomas

Agradecesco informacion al respecto

Mil gracias

Re: Ayuda sobre pistola lectora de codigos de barra

Posted: Mon Jun 01, 2009 9:27 pm
by Willi Quintana
Hola
Solo tienes que conectar el lector y tu aplicacion debe tener un GET activo en el momento de la captura del codigo,,, en otras palabras, en ve< de que escribas el codigo,activas el lectos,,

Salu2

Re: Ayuda sobre pistola lectora de codigos de barra

Posted: Tue Jun 02, 2009 12:46 am
by cmsoft
Hola Vladimir:
Como dice Willi, y siempre y cuando la pistola lectora de códigos de barras permita emulación de teclado, solo debes conectarla a la pc, y poner en tu aplicacion un get para recolectar los datos que envia el lector de barras, igual que si tipearas los numeros desde un teclado.
Generalmente, cuando lee desde el lector, escribe los numero (o letras segun la codificacion del codigo de barras) y envia un ENTER al final. Por lo tanto en la clausula VALID del get puedes llamar a la funcion que busca en tu base de datos el codigo correspondiente para, por ejemplo, traer el precio del producto y la descripción del mismo.
El único inconveniente es si la comunicación con el lector, es por medio del puerto serie, ahí ya tienes que tener el protocolo de comunicacion del lector o un driver que decodifique el codigo enviado.
Cualquier consulta que quieras hacer, estoy a tu disposicion. Tengo varias aplicaciones corriendo con lectores de barra.

Re: Ayuda sobre pistola lectora de codigos de barra

Posted: Tue Jun 02, 2009 7:30 pm
by Vladimir Zorrilla
GRACIAS POR CONTESTAR

El problema que tengo ahora es que la pistola llena el get con el codigo pero
el valid no se ejecuta.

El get lo declaro con space(12) y el codigo se llena con 12 pero nada de ejecutarse el valid

Recorto el space a 10 llena los 10 e igual no se ejecuta el valid

Alguna idea de que evento puedo usar para procesar el codigo de barras correctamente decodificado


Gracias

Re: Ayuda sobre pistola lectora de codigos de barra

Posted: Tue Jun 02, 2009 9:26 pm
by FranciscoA
Vladimir:
El lector te devuelve y coloca en el correspondiente get, el codigo de barras decodificado. Es decir, _ devueltos por supuesto deben coincidir con _ del codigo del producto que tienes en tu tabla, para validar .t..

A continuación te dejo como lo hago yo. (puedes adaptarlo a tus necesidades)

La primera parte es la validacion del codigo devuelto por el lector, y la segunda es donde se introduce la cantidad (que por defecto en mi programa es 1), y graba el registro en la tabla.

nNumPart := space(len(field->numpart)) ; uVar := {"", 0, "",""}
REDEFINE GET oNumPart VAR nNumPart ID 111 OF oDlg PICTURE "@!" ;
VALID IF(!Empty(nNumPart), Existe(nNumPart,@uVar,oUnd,@cUnd), .t.) //.t. es porque tengo otras opciones en mi programa,

REDEFINE GET oCanti VAR nCanti ID 112 OF oDlg PICTURE "999,999.99" ;
VALID Grabelo(oDlg,oLbx,oNumPart,@nNumPart,@uVar,nDesct,lProforma,dFecha,oUnd,cUnd,@nCanti,oCanti) ;
WHEN !Empty(nNumPart)

Espero te sea de utilidad
Saludos

Re: Ayuda sobre pistola lectora de codigos de barra

Posted: Tue Jun 02, 2009 9:30 pm
by rogerio
Olá Vladimir

como disse o companheiro da cmsoft acima, falta o Enter ao final.
Normalmente esses leitores de codigos de barra permitem uma configuração, eles devem ter um cartão de códigos de configuração. Uma das configurações é o envio de CR+LF ao final do código.
Verifique isso.

Em antigos programas em clipper eu usava o SET CONFIRM OFF para evitar a necessidade do CR+LF.

[]'s

Rogerio

Re: Ayuda sobre pistola lectora de codigos de barra

Posted: Tue Jun 02, 2009 10:53 pm
by Vladimir Zorrilla
Gracias por la Ayuda amigos

De momento lo he resuelto poniendo un get mas y en el evento bgotfocus de este segundo get proceso la validacion en la base de datos.

DEFINE DIALOG oDlg TITLE "CAPTURA DE BARCODE " + FWDESCRIPTION

@ 1, 2 SAY "Code.:" OF oDlg
@ 1, 6 GET oGet VAR cCad VALID MSGYESNO("ESTE NO SE EVALUA NUNCA") OF oDlg SIZE 60, 10 COLOR "W/G" PICTURE "@K"
@ 1.8, 2 SAY "ACA LO CAPTURO:" OF oDlg
@ 2, 6 GET oGet2 VAR AQUI OF oDlg SIZE 60, 10 PICTURE "9999999.99"

oGet2:bGotFocus:={ || CAPTURANDOEVENTODESPUESDELECTOR()}

@ 3, 7 BUTTON "&Ok" OF oDlg SIZE 30, 12 ACTION oDlg:End()
@ 3, 16 BUTTON "&Cancel" SIZE 30, 12 OF oDlg ACTION oDlg:End() CANCEL

ACTIVATE DIALOG oDlg CENTERED

Saludos

Re: Ayuda sobre pistola lectora de codigos de barra

Posted: Wed Jun 03, 2009 1:21 am
by cmsoft
Hola Vladimir:
Como dice Rogerio, tenes que tener en cuenta si el lector está configurado para enviar CR+LF (o Sea un enter) despues de leer el codigo. Eso tendría que hacer salir del oGet y ejecutar la clausula VALID.
Esto tendría que funcionar perfectamente:
DEFINE DIALOG oDlg TITLE "CAPTURA DE BARCODE " + FWDESCRIPTION
cCad := SPACE(13) // Suponiendo que los codigos de barras que lees son EAN13, los de productos de supermercado
@ 1, 2 SAY "Code.:" OF oDlg
@ 1, 6 GET oGet VAR cCad VALID CAPTURANDOEVENTODESPUESDELECTOR(oGet:cText)OF oDlg SIZE 60, 10 COLOR "W/G" PICTURE "@K"
@ 3, 7 BUTTON "&Ok" OF oDlg SIZE 30, 12 ACTION oDlg:End()
@ 3, 16 BUTTON "&Cancel" SIZE 30, 12 OF oDlg ACTION oDlg:End() CANCEL
ACTIVATE DIALOG oDlg CENTERED

STATIC FUNCTION CAPTURANDOEVENTODESPUESDELECTOR(cVar)
MsgInfo(cVar)
RETURN nil

Este ejemplo, perfectamente tendría que mostrarte la el codigo leido en un mensaje.
Espero que te sirva.

Re: Ayuda sobre pistola lectora de codigos de barra

Posted: Wed Jun 03, 2009 2:45 am
by Vladimir Zorrilla
Ese es el problema amigo
que no esta devolviendo el CRLF y no se como configurarlo para que
devuelva este caracter

EL Lector es un Dyna Pos y no tengo ni idea de como configurarlo

Ahora si imprimo el control CRLF en la impresion del codigo de barras no reconoce
el codigo el lector

El sistema de codigo de barras que uso es code 128

Gracias por la ayuda

Re: Ayuda sobre pistola lectora de codigos de barra

Posted: Wed Jun 03, 2009 11:44 am
by rogerio
Vladimir
normalmente esses equipamentos são vendidos com um manual impresso e no proprio manual existem impressos os códigos de barras com a configuração.
Então veja no manual desse aparelho.
Ele deve ter algumas páginas impressas com códigos de barra de configuração.
E uma das configurações possíveis é o envio de CR+LF ao final da leitura do código.
Essa é uma configuração necessária para todos equipamentos.

[]'s

Rogerio

Re: Ayuda sobre pistola lectora de codigos de barra

Posted: Wed Oct 05, 2011 8:42 am
by angelcv
> Tengo el siguiente codigo , donde el cliente introduce el lector de codigo
> de barras y mete un codigo de 13 numeros
>
> mcodart=space(len(ticket->codart1))
> lSalvar:=.F.
> lCancelar:=.F.
> DEFINE DIALOG tic_diaCodigo FROM 40,20 TO 45,70
> SET FONT OF tic_diaCodigo TO tic_Font
>
> @0,0 say "CODIGO ARTICULO:" OF tic_diaCodigo
> @0,10 GET mcodart picture "!!!!!!!!!!!!!" OF
> tic_diaCodigo
> VALID(tic_RevisaCodigo(tic_diaCodigo,mcodart),.T.)
> @1,9 BUTTON "&A_Aceptar" OF tic_diaCodigo SIZE 50, 12 ;
> ACTION ( lSalvar := .T. , tic_diaCodigo:End() )
> @1,19 BUTTON "&C_Cancelar" OF tic_diaCodigo SIZE 50, 12 ;
> ACTION (lCancelar:=.T.,tic_diaCodigo:End());
> CANCEL
> ACTIVATE DIALOG tic_diaCodigo
> if (lCancelar)
> tkey=12 /*orden de salida*/
> return nil
> endif
> Cuando el cliente con su pistola de codigo de barras mete un codigo , el
> cursor aparece dentro del contenido de mcodart y lo coge bien,
>
> Pero la segunda vez, el cursor esta en el boton <aceptar>
> y no coge el codigo porque el campo de codigo no esta activo (el cursor no
> aparece en campo de mcodart)
>
> COMO SOLUCIONO ESTO.
>

Re: Ayuda sobre pistola lectora de codigos de barra

Posted: Wed Oct 05, 2011 4:31 pm
by Antonio Linares
Angel,

Una solución sería que no se cumpla la validación:

VALID (tic_RevisaCodigo(tic_diaCodigo,mcodart), .F.)

Pruébalo

Re: Ayuda sobre pistola lectora de codigos de barra

Posted: Sat Oct 15, 2011 1:43 am
by AndresRomero
Angel, no se si has solucionado tu problema. Supondré que no.

No entiendo cual es el problema. Realmente se le esta diciendo al programa que DESPUES de leer hay que pinchar en aceptar o cancelar y es lo que hace.
Una vez leido hace falta la acción del usuario para pinchar en uno o en otro ANTES de leer el siguiente código.

Como dice Antonio, no saldría de la lectura de barras.

En fin, no lo entiendo, perdona. Quiero ayudarte pero no se lo suficiente de tu caso.