Iniciar Sesión

Ver la Versión Completa : [Componente] Codigo de barras


Roger
24 de abril de 2015, 17:59
Amigos de foro

Tengo una rutina de codigo de barras echa para cobview con font CODE39 hasta ahi todo bien pero este solo ejecuta si es numeros ejem 105654646 si le envio con letras aborta el programa porque me indica que solo puedo usar numeros.

Necesito enviar alfanumerico para generar mis etiquetas, alguien tendra otra rutina o talvez un .exe donde solo le pase el codigo?

Rapinto
24 de abril de 2015, 19:05
Roger,

O PowerForm imprime etiquetas code 3 of 9 sem problemas.

Eu utilizo para etiquetas industriais há muito tempo.

Saludos,
Rui

Kuk
24 de abril de 2015, 19:37
Roger, como dice Rui, con PowerFORM puedes generar varios tipos de Barcode, incluido EAN13 que es el mas comun si no me equivoco y permite tambien letras.

JulioBenitez9470
24 de abril de 2015, 23:05
Yo uso mucho codigo de barras de todo tipo, basta con que instales los font adecuados en el windows, y luego le asignas el que quieras al campo de tu form, teniendo en cuenta que estos font, obviamente debes instalarlo en tu cliente.

Saludos Julio

Roger
13 de mayo de 2015, 03:42
Amigos del Foro
Imprimo las barras con el powerform, pero el lector no los lee intente con varios
fonts, diferentes lectoras y nada.

Pero las que genero con el cobview si los lee cual es el problema, he revisado la internet
y varias personas tienen el mismo problema.

:agres:

Añadido despues de 24 minutos
Buscando encontre esto

Para imprimir códigos de barra (al menos en formato EAN-13) y que el mismo pueda ser reconocido por un lector, deberá tener una nomenclatura específica ya que el último número, llamado dígito de control, se obtiene de unos cálculos de los primeros 12 dígitos. Esto lo hacen automáticamente los programas generadores de códigos de barra y también están contenidos en la programación de los dispositivos lectores, de modo que si uno coloca cualquier código, el lector efectúa la confirmación del número de control internamente y si no corresponde simplemente "no lee" el código de barras. Te ilustro cómo se efectúa el cálculo:



Para comprobar el dígito de control, numeramos los dígitos de derecha a izquierda. A continuación se suman los dígitos de las posiciones impares, el resultado se multiplica por 3, y se le suman los dígitos de las posiciones pares. Se busca la decena inmediatamente superior y se le resta el resultado obtenido. El resultado final es el dígito de control. Si el resultado es múltiplo de 10 el dígito de control será 0.

Por ejemplo, para 123456789041 el dígito de control será:

Numeramos de izquierda a derecha: 140987654321

Suma de los números en los lugares impares: 10864+2 = 21

Multiplicado × 3: 21 × 3 = 63

Suma de los números en los lugares pares: 49753+1 = 29

Suma total: 63 + 29 = 92

Decena inmediatamente superior = 100

Dígito de control: 100 - 92 = 8

El código quedará así: 1234567890418.



(Por supuesto que nadie hace esto manualmente, pero esto explíca lo del dígito de contro) Creo que lo que te sucede es que el número generado en el DocNumber no cuadra su dígito de control (el dígito 13) y por ende el lector no es capáz de leerlo.

Kuk
13 de mayo de 2015, 08:55
Roger, me parece que simplemente imprimes etiquetas muy pequeñas con impresora de inyeccion la cual no es lo suficientemente precisa para el tamaño de la etiqueta. A mi me ha pasado una vez, lo que hice fue aumentar el tamaño de la etiqueta y luego funciono bien.

El hecho de que PowerFORM no calcule bien algo, me parece una opinion erronea. ;)

Josber
13 de mayo de 2015, 09:37
Kuk, no creo que sea problema de la impresora, si es la misma que usa con COBVIEW, claro, si es así, el problema debe de estar en el calculo. Yo uso EAN13, que por cierto, sólo puede contener números, y CODE39, y ambos me los leen los escáneres sin problemas. El CODE39, no tiene dígito de control, así es que , sólo es imprimir la cadena con ése tipo de letra y "pa´lante", EAN13 sí tiene código de control, la rutina que uso es la siguiente:


COMPUTE WNUM = ( (EAN (12) * 3) + (EAN (10) * 3) + (EAN (08) * 3) +
(EAN (06) * 3) + (EAN (04) * 3) + (EAN (02) * 3) +
(EAN (11) * 1) + (EAN (09) * 1) + (EAN (07) * 1) +
(EAN (05) * 1) + (EAN (03) * 1) + (EAN (01) * 1) ).
DIVIDE WNUM BY 10 GIVING WNUM1 REMAINDER WRES.
COMPUTE EAN (13) = 10 - WRES.


Yo no le doy la vuelta a la variable, simplemente doy las posiciones, por otro lado lo de multiplicar por 1, ya sé que parece una tontería, pero lo hago por claridad en el código al darle un vistazo.

y me funciona sin problemas, en éste enlace, hay suficiente información sobre el tema:

http://www.barrasybarras.com/uso-interno

Un saludo.-

Kuk
13 de mayo de 2015, 10:14
Josber, nunca he visto algo parecido a tu codigo. "EAN" es una variable, o palabra reservada en PowerCOBOL?

Lo que yo decia, no es que se aun problema, sino mas bien la capacidad de precision. En mi caso, la impresora que usaba el cliente no era laser, sino inyeccion. Imprimiamos las etiquetas en hojas A4 de APLI. Cuando la impresora imprimia, las barras quedaban algo desenfocadas (cosa normal con las ipresoras de inyeccion sobre papel "normal"), y el codigo de barras (el dibujo) quedaba un pelin borroso para el escaner de codigos de barras, asi que a veces leia o tras no. Luego probe aumentando el tamañano del dibujo, y ahi ya el escaner empezo a cogerlos todos.

Josber
13 de mayo de 2015, 12:11
No es una palabra reservada COBOL, Kuk, lo que hago es mover el EAN13 a una variable con OCCURS, para poder manejar campo a campo.


01 EAN13.
03 EAN PIC 9 OCCURS 13.

Un saludo.-

Roger
14 de mayo de 2015, 00:38
AMigos del Foro
La impresion de barras no solo es poner el font sino tenia parametros particulares por cada font en el caso de code39 es poner un * al comienzo y uno al final *12345* gracias a Julio pude leer on el lector pero este font solo acepta letras en mayusculas y solo 12 caracteres.

Estube probando con un ocx tbarcode-3-9 y tiene rutinas para determinados font lo malo que de paga ahora ya se porque no funcionaba el lector no era la impresion sino los parametros
que no ponia.

Josber
14 de mayo de 2015, 12:00
Es verdad Roger, no había caido en que tienen que empezar y terminar con un aterisco, pero eso de que no admita más de 12 carácteres no es verdad, admite hasta 43 carácteres, eso sí, sólo mayúsculas. La desventaja del CODE39, es que al no llevar carácter de control, pueden haber errores de lectura si la impresión es muy pequeña.

Pero a todo ésto, hay otra cosa, es que yo no uso CODE39, sino CODE39x, que es una ampliación del CODE39, éste soporta los 128 primeros carácteres ASCII, por lo que incluye mayúsculas y minúsculas, pero las desventajas siguen siendo las mismas.

Muchos lectores de códigos, traen la opción de comprobación del checksum del CODE39, es un MOD 43, de los carácteres de acuerdo con una tabla específica.

Calculating a check digit according to Modulo 43:
Modulo 43 is used by the barcode symbology Code 39.
Here is an example of how to calculate the check digit according to Modulo 43:

Code ("159AZ") 1 5 9 A Z
Reference numbers 1 +5 +9 +10 +35 = 60 (Sum)
60 / 43 = 1 rest 17
The check digit is "H" (reference number 17)

*The reference numbers of Code 39 are:

00 0
01 1
02 2
03 3
04 4
05 5
06 6
07 7
08 8
09 9
10 A
11 B
12 C
13 D
14 E
15 F
16 G
17 H
18 I
19 J
20 K
21 L
22 M
23 N
24 O
25 P
26 Q
27 R
28 S
29 T
30 U
31 V
32 W
33 X
34 Y
35 Z
36 -
37 .
38 Space
39 $
40 /
41 +
42 %

Aunque creo que hay que activarlo en el software del escáner.

Si quieres más precisión, más carácteres y menos errores, te aconsejo que utilizes CODE128, que sí trae dígito de control, aunque el cálculo del dígito de control es más complicado, y si eso te da lo mismo, usa CODE39x, sólo has de descargarte esa fuente.

Un saludo.-

Roger
14 de mayo de 2015, 19:27
JOSBER
Si buscare un font que se haga mas facil lastima que mi cliente no especifique sobre la codificacion, uso letras y numeros (AA-auto-0105256) son mas de 4000 items ya codificados
el ocx T-BARRAS me viene de perrilla, caso contrario tendre que hacer la rutina y testear si funciona bajare el font CODE39x.

Con la lectoras con los parametros que le puse funcionan bien probe con mas de 5 marcas
diferentes, seguro con algun font especial hay que setear.

Sigo aprendiendo.