Sunteți pe pagina 1din 3

Generacin de Codigo de Barras EAN 128:

En terminos generales la estructura del cdigo EAN128 a la vista es:


IA+DATOS+IA+DATOS...
Donde los IA son identificadores de aplicacin colocados para estandarizar el cdigo, son caracteres
fijos y cada uno tiene un significado para indicar dato que antecede.
En terminos generales el codigo EAN128 tiene una forma de:
(IA)+DATOS+(IA)+DATOS....
Donde los Parentesis no deben estar escritos en el cdigo sino que solamente se debe visualizar en
el mismo.
Entonces para generar el codigo EAN128 con el estandar de Colombia para facturas que no son
pblicas es obligatorio que el cdigo sea como el siguiente:
(415)+EANUCC13+(8020)+ReferenciadePago+(3900)+Monto
apagar+(96)+AAAAMMDD
- Identificadores de Aplicacin que anteceden a los datos de la orden de consignacin:
* 415: Antecede al codigo EAN UCC 13 de la intitucin se sabe que este dato debe contener 13
difitos.
* 8020: Identifica a la referencia de pago, en nuestro caso esta referencia de pago es el nmero de la
orden de consignacin y es de 16 digitos.
* Funcin 1: indica que se ha terminado de leer un dato variable y que viene otro IA. No se ve en el
codigo
* 3900: Identifica el monto del pago, monto de la orden. Adems que el nmero de digitos de este
monto debe ser par.
* Funcin 1: indica que se ha terminado de leer un dato variable y que viene otro IA. No se en el
codigo.
* 96: Identifica la fecha de vencimiento de la orden con formato AoMesDia (AAAAMMDD).
Luego el codigo con la Funcin1:
(415)+EANUCC13+(8020)+ReferenciadePago+Funcion1+
(3900)+Montoapagar+Funcin1+(96)+AAAAMMDD
Para generar este tipo de cdigo en el reporte de Orden de Consignacin se usa en Ireport la librera
Barcode4J, la cul contiene este tipo de cdigo de barras para generar.

Los pasos para realizarlo son los siguientes:


Inserta un Barcode de la libreria Barcode4J de tipo EAN128 y en la propiedad Code Expression del
Barcode se debe colocar el codigo de la siguiente manera:

Cdigo extraido:
"415"+$F{numlocint}+"8020"+
String.format("%016d",$F{oconsnro})
+$V{GROUP_SEPARATOR}+"3900"
+((($F{monto1}.toString()).length()%2)==0?$F{monto1}:"0"+$F{monto1})
+$V{GROUP_SEPARATOR}+"96"+
(($F{fchvence1}==null||
$F{fchvence1}.equals("")||
$F{fchvence1}.length()<10)
?""
:($F{fchvence1}).substring(8,10)+
($F{fchvence1}).substring(5,7)+
($F{fchvence1}).substring(0,4))

Donde se observa que toda la expresin es la concatenacin de los IA's y los datos, sin parentesis e
incluyendo la funcin1.
Los datos que se trae la consulta del reporte son los verdes, el azul es una variable que contiene la
Funcin1.
Las dems son funciones son para acomodar los datos a como lo exige el Cdigo EAN128.
Se describe a continuacin cada uno:
Datos traidos de la consulta:
$F{numlocint} = Es EAN UCC de la institucin buscada en la consulta.
$F{oconsnro}= es el nmero de consignacin.
$F{monto1}= es el monto de la orden de consignacon.
$F{fchvence1}= es la primera fecha de vencimiento de la orden. Para cada cdigo se
coloca su respectiva fecha y monto.
Variable:
$V{GROUP_SEPARATOR}= es la variable que contiene a la Funcin 1 del cdigo EAN128,
dentro de esa variable esta una cadena que es la letra , la cul es la letra que usa la librera para

colocar la funcin1, esto no se ve en el cdigo de barras.


Dems expresiones:
String.format("%016d",$F{oconsnro})= es el numero de consignacin con 16
digitos, esta de esa manera porque en caso de que este nmero de consignacin traido en la consulta
sea menor a 16 digitos lo complete con ceros a la izquierda.
((($F{monto1}.toString()).length()%2)==0?$F{monto1}:"0"+
$F{monto1})= es la cadena que pertenece al monto de la orden de consignacin, esa
expresin lo que hace es colocar el monto que es un nmero real a string cuenta la cantidad de
caracteres que tiene la cifra y si esa cantidad no es divisible entre dos antecede a la cadena un cero
0, ya que la cantidad de caracteres de esta cifra debe ser par.
La ltima parte pertenece a la cadena de la fecha, esa expresin esta asi porque la fecha de la
orden viene en formato Ao/Mes/Dia entonces esta funcin lo que hace es quitarle el simbolo de /
a la cadena.
Con respecto a las dems propiedades del Cdigo de Barras como lo es el tamao y el espacio entre
las barras del simbolo estos tienen los siguientes valores:
Largo: 20.5 mm
Ancho: Tiene un mximo de 112 mm
Ancho de Modulos: 0.211666666 mm o 0.8 pixeles.
Zona de Silencio: 2.6 mm
Zona de Silencio Vertical: 0.000238125 mm.
Cdigo EAN128 generado en el sistema: