Codigo de Barras

05/07/2003 - 20:14 por Ernesto De La Cruz | Informe spam
Que tal a todos, mi problema es el siguiente, tengo una
ERP pequeñita que he hecho en Access pero mi problema
esta al querer imprimir codigos de barras para los
productos de mis recepciones de ordenes de compras, los
lectores no los leen, que puedo hacer, he probado con
fuentes EAN 13, 36 y CR39 como debo de hacerlo...???

Preguntas similare

Leer las respuestas

#1 Victor Delgadillo
06/07/2003 - 04:20 | Informe spam
Recordar que cuando escribes en codigo de barras, tienes que conformar la
cuerda que imprimes a lo que necesita el lector. Por ejemplo, la mayoria de
lectores del codigo 3Of9 (3 de 9) necesitan un simbolo de asterisco (*) al
comienzo y al final de la cuerda para indicarle al lector donde empieza y
donde termina leyendo. Esto significa que debes agregarle a tu campo, por
ejemplo un numero de inventario (que debe ser en alfanumeico), el asterisco
al comienzo y al final...

Saludes
Victor Delgadillo
Miami, Florida

"Ernesto De La Cruz" wrote in message
news:65e801c34321$475c02e0$
Que tal a todos, mi problema es el siguiente, tengo una
ERP pequeñita que he hecho en Access pero mi problema
esta al querer imprimir codigos de barras para los
productos de mis recepciones de ordenes de compras, los
lectores no los leen, que puedo hacer, he probado con
fuentes EAN 13, 36 y CR39 como debo de hacerlo...???
Respuesta Responder a este mensaje
#2 alabarta
06/07/2003 - 16:31 | Informe spam
Hola Ernesto.

Para hacerlo con el código EAN13 haz lo siguiente. En primer lugar debes
instalar la fuente True Type correspondiente, puedes decargarla de
http://www.fpress.com/revista/Num9905/Barras.htm. En segundo lugar al valor
que quieres imprimir necesitas calcularle el dígito de control para
imprimir, más abajo viene la función, la conseguí de la misma página para
Foxpro y la adapte a VBA. Espero que te sirva.

Un saludo
Agustín Labarta

Una pequeña ayuda sobre cómo funciona el código EAN13:
-
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

Esta es la función que te comento:
'*--
'* FUNCTION StrToEan13(tcString, .T.)
'*--
'* Convierte un string para ser impreso con
'* fuente True Type EAN-13
'* PARAMETROS:
'* tcString: Caracter de 12 dígitos (0..9)
'* tlCheckD: .T. Solo genera el dígito de control
'* .F. Genera dígito y caracteres a imprimir
'* USO: StrToEan13("123456789012")
'* RETORNA: Caracter
'* AUTOR: Luis María Guayán
'*--
Function StrToEan13(tcString, tlCheckD)
'On Error GoTo fin:
Dim lcLat, lcMed, lcRet, lcJuego, lcIni, lcResto, lcCod, lnI, lnCheckSum,
_
lnAux, laJuego(10), lnPri
lcRet = Trim(tcString)
If Len(lcRet) <> 12 Then
MsgBox "Debe tener una longitud fija de 12 dígitos"
'* debe tener un len = 12
StrToEan13 = ""
Exit Function
End If
'* Genero dígito de control
lnCheckSum = 0
For lnI = 1 To 12
If (lnI Mod 2) = 0 Then
lnCheckSum = lnCheckSum + Val(Mid(lcRet, lnI, 1)) * 3
Else
lnCheckSum = lnCheckSum + Val(Mid(lcRet, lnI, 1)) * 1
End If
Next
lnAux = (lnCheckSum Mod 10)
lcRet = lcRet + Trim(Str(IIf(lnAux = 0, 0, 10 - lnAux)))

If tlCheckD Then
'* Si solo genero dígito de control
StrToEan13 = lcRet
End If

'* Para imprimir con fuente True Type EAN13
'* 1er. dígito (lnPri)
lnPri = Val(Left(lcRet, 1))
'* Tabla de Juegos de Caracteres
'* según "lnPri" (¡NO CAMBIAR!)
laJuego(1) = "AAAAAACCCCCC" '& 0
laJuego(2) = "AABABBCCCCCC" '& 1
laJuego(3) = "AABBABCCCCCC" '& 2
laJuego(4) = "AABBBACCCCCC" '& 3
laJuego(5) = "ABAABBCCCCCC" '& 4
laJuego(6) = "ABBAABCCCCCC" '& 5
laJuego(7) = "ABBBAACCCCCC" '& 6
laJuego(8) = "ABABABCCCCCC" '& 7
laJuego(9) = "ABABBACCCCCC" '& 8
laJuego(10) = "ABBABACCCCCC" '& 9
'* Caracter inicial (fuera del código)
lcIni = Chr(lnPri + 35)
'* Caracteres lateral y central
lcLat = Chr(33)
lcMed = Chr(45)
'* Resto de los caracteres
lcResto = Mid(lcRet, 2, 12)
For lnI = 1 To 12
lcJuego = Mid(laJuego(lnPri + 1), lnI, 1)
Select Case lcJuego
Case "A"
Mid(lcResto, lnI, 1) = Chr(Val(Mid(lcResto, lnI, 1)) + 48)
Case "B"
Mid(lcResto, lnI, 1) = Chr(Val(Mid(lcResto, lnI, 1)) + 65)
Case "C"
Mid(lcResto, lnI, 1) = Chr(Val(Mid(lcResto, lnI, 1)) + 97)
End Select
Next
'* Armo código
lcCod = lcIni + lcLat + Mid(lcResto, 1, 6) + lcMed + Mid(lcResto, 7, _
6) + lcLat
StrToEan13 = lcCod
'fin:
' Exit Function
End Function


"Ernesto De La Cruz" escribió en el mensaje
news:65e801c34321$475c02e0$
Que tal a todos, mi problema es el siguiente, tengo una
ERP pequeñita que he hecho en Access pero mi problema
esta al querer imprimir codigos de barras para los
productos de mis recepciones de ordenes de compras, los
lectores no los leen, que puedo hacer, he probado con
fuentes EAN 13, 36 y CR39 como debo de hacerlo...???
Respuesta Responder a este mensaje
#3 Ernesto
07/07/2003 - 16:54 | Informe spam
Lo voy a intentar y te comento he escuchado acerca de
ello pero la verdad no sabia la sintaxis necesaria para
mandar asi mis codigos, gracias de nuevo.

Atte. Ernesto De La Cruz Morales.
Chetumal Quintana Roo Mexico
(Esta cerca de Cancun)
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida