Ayuda sobre pistola lectora de codigos de barra

Post Reply
Vladimir Zorrilla
Posts: 225
Joined: Tue Feb 28, 2006 4:25 pm
Location: PERU

Ayuda sobre pistola lectora de codigos de barra

Post 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
ME INTERESA FW Y XHB POR SER OPEN SOURCE
User avatar
Willi Quintana
Posts: 859
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

Re: Ayuda sobre pistola lectora de codigos de barra

Post 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
User avatar
cmsoft
Posts: 653
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Ayuda sobre pistola lectora de codigos de barra

Post 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.
Vladimir Zorrilla
Posts: 225
Joined: Tue Feb 28, 2006 4:25 pm
Location: PERU

Re: Ayuda sobre pistola lectora de codigos de barra

Post 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
ME INTERESA FW Y XHB POR SER OPEN SOURCE
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Ayuda sobre pistola lectora de codigos de barra

Post 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
Last edited by FranciscoA on Tue Jun 02, 2009 9:38 pm, edited 2 times in total.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
User avatar
rogerio
Posts: 83
Joined: Wed Nov 09, 2005 11:22 pm
Location: São Lourenço da Serra - SP - Brasil
Contact:

Re: Ayuda sobre pistola lectora de codigos de barra

Post 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
Vladimir Zorrilla
Posts: 225
Joined: Tue Feb 28, 2006 4:25 pm
Location: PERU

Re: Ayuda sobre pistola lectora de codigos de barra

Post 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
ME INTERESA FW Y XHB POR SER OPEN SOURCE
User avatar
cmsoft
Posts: 653
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Ayuda sobre pistola lectora de codigos de barra

Post 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.
Vladimir Zorrilla
Posts: 225
Joined: Tue Feb 28, 2006 4:25 pm
Location: PERU

Re: Ayuda sobre pistola lectora de codigos de barra

Post 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
ME INTERESA FW Y XHB POR SER OPEN SOURCE
User avatar
rogerio
Posts: 83
Joined: Wed Nov 09, 2005 11:22 pm
Location: São Lourenço da Serra - SP - Brasil
Contact:

Re: Ayuda sobre pistola lectora de codigos de barra

Post 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
angelcv
Posts: 2
Joined: Tue Jul 08, 2008 1:58 pm

Re: Ayuda sobre pistola lectora de codigos de barra

Post 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.
>
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Ayuda sobre pistola lectora de codigos de barra

Post 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
regards, saludos

Antonio Linares
www.fivetechsoft.com
AndresRomero
Posts: 11
Joined: Fri Nov 20, 2009 11:07 am

Re: Ayuda sobre pistola lectora de codigos de barra

Post 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.
Post Reply