Hola que tal, quería preguntar si me puedes explicar como capturo el código que lee el scanner de código de barras conectado a la pc. Cual es la rutina que se debe usar, para capturar el valor leído por el scanner, muchas gracias
El escáner conectado al com1 del pc, y el código de barras están listos para leer, es decir el escáner lo hace todo y código de barras al fina tiene un enter... para probar haremos una captura sencilla en vfp (fp26) en un programa nuevo escribe ... Clear m.codigobarr=space(13) @10,10 'ingrese codigo' get m.codigobarr Read Bien lo ejecutas Y colcas algo con código de barras para leer, disparas el escáner y veras que en la pantalla aparece los números del código ... Debes tener en cuenta la longitud del código de barras... Algo sencillo, bien .. ahora te explico algo más ... Pero antes recuerda ... todo lo hace el escáner ... ok ... Ahora ... lee este articulo de internet ... Buen día ! Para lograr esto, aparte de las fuentes True Type, se necesitan funciones definidas por el usuario en VFP, que conviertan el texto a codificar en el formato adecuado según cada código y cada fuente True Type. Las fuentes True Type y las funciones se encuentran mas abajo y pueden ser descargadas. Códigos de Barra Solo haremos una breve descripción de cada uno de los posibles códigos, para elegir el más adecuado para la aplicación que vamos a implementar. Código 39 Este código es de longitud variable, cuya limitación en el largo la da el espacio disponible para imprimir y la capacidad del lector de código de barra que usaremos. El juego de caracteres del código 39 incluye 43 caracteres: los dígitos 0-9, las letras A-Z (mayúscula solamente), el espacio y los siguientes símbolos: - + . $ / *. El "*" es el carácter de inicio y final del código, por lo que no deberá usarse en un texto a codificar. Cada carácter se compone de 5 barras y 4 espacios. 3 de estos 9 elementos son anchos (de allí el nombre "3 de 9") y 6 angostos. El código 39 se forma de la siguiente manera: Start + Cadena + End Código 128 Este también es un código de longitud variable, y menos largo que el código 39. El código 128 incluye los dígito 0-9, letras A-Z (mayúsculas y minúsculas), y todos los caracteres estándares ASCII (en total 128 caracteres, de allí su nombre). El código 128 se divide en tres subconjuntos A, B, y C. El subconjunto A incluye: los dígitos, las letras mayúsculas, y los códigos de control. El subconjunto B incluye: los dígitos, las letras mayúsculas y minúsculas, y los códigos de control. El subconjunto C incluye: solo los dígitos y comprime dos dígitos numéricos en cada carácter, proporcionando una densidad excelente. Este código tiene un dígito de control que ofrece más seguridad en la lectura. Dicho dígito de control se calcula con el siguiente algoritmo: * Valor de inicio del subconjunto A = 203 * Valor de inicio del subconjunto B = 204 * Valor de inicio del subconjunto C = 205 * Valor de final de todos los subconjuntos = 206 Suma = valor del caracter de inicio del subconjunto Por cada caracter a codificar Suma = Suma + (valor de cada caracter * posicion) Final de los caracteres Dígito de control = módulo 103 de Suma Los códigos 128 se forman de la siguiente manera: Start + Cadena + Check_Digit + End Código EAN-13 y EAN-8 (European Article Numbering) El EAN-13 se utiliza por todo el mundo para las mercaderías de venta al por menor. Es de longitud fija (13 caracteres). El EAN-8 es una versión acortada del código EAN-13 e incluye solo 8 caracteres. Estos códigos los asigna y controla EAN International (http://www.ean.be) y las entidades autorizadas por EAN en cada país. En el código Ean-13, los primeros 6 dígitos representan el país y la empresa, los siguientes 6 dígitos representan el producto, y el restante es el dígito de control. Aparte del país, los primeros dos o tres dígitos pueden representar por ejemplo: libros (ISBN), periódicos (ISSN), usos internos, etc. En el código Ean-8, los primeros 4 dígitos representan el país y la empresa, los siguientes 3 dígitos representan el producto, y el restante es el dígito de control. El dígito de control se calcula con el siguiente algoritmo: Suma = 0 Por cada uno de los 12 ó 7 dígitos a codificar Valor corrector = 1 si la posición del dígito es impar = 3 si la posición es par Suma = Suma + Valor del dígito * Valor corrector Final de los dígitos Digito de control = 10 - módulo 10 de Suma Si Digito de control = 10 Digito de control = 0 Final Si Los códigos EAN se forman de la siguiente manera: Código_País + Código_Empresa + Codigo_Artículo + Check_Digit Código Interleaved 2 of 5 Este es un código de longitud variable, al igual que los códigos 39 y 128. El Interleaved 2 of 5 incluye solamente los dígitos numéricos [0..9] y comprime dos dígitos numéricos en cada carácter, proporcionando una muy buena densidad. Todos los códigos Interleaved 2 of 5 tienen una cantidad par de dígitos. Cada par de dígitos, se codifica en un carácter formado por una serie de 5 barras y 5 espacios. 2 de cada 5 barras son anchas, de allí el nombre "2 of 5". Este código tiene un dígito de control que ofrece más seguridad en la lectura. Dicho dígito de control se calcula con el siguiente algoritmo: Suma = 0 Por cada uno de los dígitos a codificar Valor corrector = 1 si la posición del dígito es impar = 3 si la posición es par Suma = Suma + Valor del dígito * Valor corrector Final de los dígitos Digito de control = 10 - módulo 10 de Suma Si Digito de control = 10 Digito de control = 0 Final Si Los códigos Interleaved 2 of 5 se forman de la siguiente manera: Start + Cadena + Check_Digit + End Fuentes True Type Las fuentes True Type que se usan en estos ejemplo, son archivos freeware y funcionan perfectamente con las funciones para VFP descritas más abajo. A las fuentes utilizadas se las puede descargar de: fuentes.zip (30,9 Kb.) Para una mejor impresión y lectura de los códigos, se aconseja utilizar los tamaños de fuentes que a continuación se detallan: Fuente True Type Archivo Tamaño PF Barcode 39 PF_C39.ttf 20 ó 22 PF Barcode 128 PF_C128.ttf 22, 24, 26 ó 28 PF EAN P36 PF_EAN_P36.ttf 36 PF EAN P72 PF_EAN_P72. Ttf 72 PF Interleaved 2 of 5 PF_I2OF5. Ttf 36 ó 48 PF Interleaved 2 of 5 Wide PF_I2OF5_W. Ttf 28 ó 36 PF Interleavev 2 of 5 Text PF_I2OF5_Text.ttf 28 ó 36