VB-MUNDO 2.0 - Programacion Visual


/
Inicio   |  Quienes Somos  | Contactenos 



 
Web Foro Portal
 

 20 Ultimos Tutoriales (1015)

Introduccion Rapida a LinQ

Base de Datos en Delphi 7

Java 3D

Algoritmos en Borland C++

Programacion en PHP

Pseudo Codigo

Patron de Distribucion de Aspectos

Ordenamiento de Burbuja

Introduccion Expresiones Regulares

Descomposición LU y método de Gauss-Seidel

Algoritmos Propuestos

Windows Vista - Internet

Windows Vista - Impresion

Manual Completo Crystal Reports 11 - XI

Programación en BASH Shell

Apache - Configuracion

SCORM RunTime Environment

Tablas Basicas por Modulos de SAP

Manual de SAPSCRIPT

Manual de Instalación de MINISAP


ver Todos...


 Enlaces Premium





Links Relacionados
 elguille
 BuscoAfiliados
 SoloTuWeb
 ElQuintero
 DotNetSolidario

Patrocinados por...



 

Estructura de Códigos de Barra

Comprendiendo la Estructura

Tuve la necesidad de migrar de una aplicación especializada en la impresión de etiquetas como WinLabel a un reporte de Crystal Reports.

La única dificultad que encontré fue descubrir, que a diferencia del WinLabel, el Crystal Reports carecía de soporte para generar códigos de barra automáticos, o sea que dependía del uso de una font especifica para lograr dicha imagen.

A pesar de haber usado miles de veces estos códigos, no sabia que su estructura era bastante compleja, simplemente pensé que con escribir un numero (por ejemplo : "9900100726019" y seleccionar la fuente EAN-13.TTF estaría todo resuelto. Muy lejos estaba de la verdad.

En primer lugar (tomando como ejemplo para esta nota el EAN-13) el código de barras se divide en varias partes.



Entonces ya sabemos que un código EAN-13 se compone por :

un comienzo (chr(5))
un código de 2 dígitos identificando al país del producto (no necesariamente debe respetarse)
un primer grupo de 5 dígitos
un separador (chr(124) que representa el caracter "|" pipe)
un segundo grupo de 5 dígitos
un Dígito verificador
una marca de finalización (chr(5))

Ahora bien.... parece que queda un solo misterio por resolver... como se puede calcular el dígito verificador. Sin embargo estamos muy lejos de comprender todo.
En primer lugar cada caracter numérico deberá ser reemplazado de acuerdo a la siguiente tabla.



Tomaremos nuestro numero de ejemplo (9900100726019) y comenzaremos a codificarlo.

CODIGO DE PAIS

Comenzaremos con el código de País (99), para codificar al pais, tomaremos las columnas de First Flag y Second Flag en este caso al reemplazar cada dígito por su caracter correspondiente nos da como resultado que 99=*i (asterisco, i latina)

PRIMER GRUPO

Para nuestro primer grupo de 5 dígitos (00100) tomaremos las 2 primeras columnas de la tabla Left Hand A y Left Hand B. Pero porque tomamos 2 columnas ? (respuesta : Porque algunos de estos 5 dígitos responderan a la columna A y otros a la B)
El formato usado en EAN-13 dice que para el primer grupo se deberá seguir esta regla (ABABB).

Esto significa que para el primer dígito del primer grupo se usará la columna LEFT HAND A y para el segundo la de LEFT HAND B y así sucesivamente.
Como resultado, (si hacemos bien los deberes) notaremos que la representación codificada de nuestro primer grupo (00100) = (0@1@@) ( cero - arroba - uno - arroba - arroba )

SEGUNDO GRUPO

La codificación del segundo grupo (72601) es mas simple que la del primero, ya que se basa en una sola columna de referencia. Esa columna es la identificada como Right Hand.
De acuerdo con esa columna, nuestro código (72601) = (WRVPQ)

DIGITO VERIFICADOR

Una vez obtenido el dígito verificador del código de Barras (cosa que veremos mas adelante) deberemos tomar la columna Check. Como en nuestro ejemplo el dígito verificador era (9), nuestro codigo terminará con (y)

String Formado

Como resultado de la codificación para nuestro código de ejemplo (9900100726019) obtendremos el siguiente String.

*i0@1@@WRVPQy

Como ademas del código hay caracteres especiales intercalados entre el String, el resultado final deberá ser el siguiente.

chr(5) + *i0@1@@ + chr(124) + WRVPQy + chr(5)

Esta secuencia debe ser mostrada con la font EAN-13.TTF y obtendrán el códigos de barra necesario.

Generando el Dígito Verificador

Ya vimos como codificar nuestra secuencia numérica, ahora, en caso de desconocer el dígito verificador, conoceremos en profundidad el algoritmo que lo genera.
Realmente es muy simple. vamos a volver a mostrar nuestro numero de ejemplo pero esta vez sin el dígito verificador.

990010072601

En primer lugar deberemos sumar estos dígitos comenzando desde el último y salteando de a 1.

1 + 6 + 7 + 0 + 0 + 9 = 23

El resultado se debe multiplicar por 3 y luego adicionar la suma del siguiente grupo de dígito.

1 + 6 + 7 + 0 + 0 + 9 = 23 * 3 = 69 + ( 0 + 2 + 0 + 1 + 0 + 9 ) = 81

Se debera restar 81 a 100 para ver cuanto queda, en este caso 19
Se tomará el último dígito (9) como dígito verificador.

Como podrán deducir, tiene sus secretos pero una vez conocido el algoritmo y teniendo las tablas de referencia todo puede lograrse.

He tomado para esta nota, el formato EAN-13 pero pude ver que para cada formato hay otros algoritmos e inclusive otras tablas de referencia.

Espero que esta nota sea útil para mucha gente, realmente la escribo porque cuando necesite alguna explicación de este tipo, no la he conseguido y quiero alivianar el camino de otros.


 

Datos del Autor

 Nombre
     Pablo Gustavo Tilotta
 Ubicación
     Buenos Aires - Argentina

Si quieres conocer más sobre Chiaravel haz clic aquí
Si quieres acceder a nuestros foros haz clic aquí
 

 Explosión de Dinero (El segundo libro de Javier Buckenmeyer)

VISUAL BASIC - GOOGLETESTAD - ASP - ASP.NET - MANEJO DE FECHAS SQL SERVERDescubre el libro que esta cambiando la forma de ver a los sitios web. Descubre como optimizar tu sitio de forma de obtener así gran cantidad de ingresos desde Google AdSense.

Escrito por Javier Buckenmeyer (SEO de VB-MUNDO) y traductor del libro "Secretos de ADSense".

El manual explica todo lo que hay que saber antes de hacer una página Web con AdSense. Mi libro te explica cómo se gana dinero con AdSense desde el principio (No después de horas y horas de trabajo cuando ya es demasiado tarde y hay que empezar de nuevo).

ver detalles...

 Llegó el Software de Google para manejo de Fotografias e Imágenes !!!

Google no descanza y ha lanzado el Software para manejo de imágenes digitales que dará que hablar a la NET. Descarga desde aquí tu copia y comienza a disfrutar de la magia.

 La novedad del 2006

submit, directorio web, direcotiro web, submit websitesSin dudas la novedad fue la creación del directorio Yatzoom.com uno de los directorios web más simples de utilizar y el mas completo (+ de 600 categorias).
Un sitio que promete dar pelea a los principales directorios de la NET.

3 Grandes Webmasters unieron sus fuerzas para crear este directorio y VB-MUNDO no quiere quedar al margen de este hito, por la cual ya hemos incorporado nuestro link en dicho directorio. Se calcula que se subirán aproximadamente mas de 1000 sitios en los primeros días.

Otro aspecto a favor en este sitio es la falta de publicidad, lo cual lo hace mas amigable y cálido para el usuario.

 ir a Directorio web

 Más de 900 Tutoriales

TUTORIALES SQL SERVER - TUTORIALES ASP.NET - TUTORIALES VB.NETSolo escoge el lenguaje o tema que quieras aprender y busca en nuestra colección de más de 630 tutoriales el que se ajuste a tus necesidades. Lograrás así acceder a material académico por excelencia y aumenta tus conocimientos. Poseemos tutoriales de VB.NET, VB 6.00, C++, Delphi, SQL Server, Linux, ASP, ASP.NET y muchas más categorias.

ver sección Tutoriales...

Utilitarios & Herramientas de Software

UTILITARIOS DESCARGA - DOWNLOAD SOFTWARE - SOFTWARE DOWNLOAD FREE - DESCARGAS GRATIS SOFTWAREPoseemos una gran variedad de utilitarios y herramientas de software que complementarán tu trabajo de desarrollador profesional y que sin dudas te ahorrarán tiempo y esfuerzo. Herramientas para manejo de Componentes, Documentadores de tu aplicación, Sistemas de Backup, Editores Hexadecimales, y una gama completa de complementos para Visual Basic 6.00.

ver sección de Utilitarios...


Copyright © 2005-2007 VB-MUNDO. Todos los derechos reservados.
Foro Programacion | Foro Visual Basic | Foro Visual Basic.NET

Mi Foro Espiritual