Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

¿código de barras?

Estas en el tema de ¿código de barras? en el foro de Visual Basic clásico en Foros del Web. Hola a toda la gente del foro tengo otra duda la cual quiero consultarles y es acerca de como crear un código de barras y ...
  #1 (permalink)  
Antiguo 03/09/2008, 09:06
 
Fecha de Ingreso: abril-2008
Mensajes: 47
Antigüedad: 16 años
Puntos: 0
Exclamación ¿código de barras?

Hola a toda la gente del foro tengo otra duda la cual quiero consultarles y es acerca de como crear un código de barras y cual objeto deberia de usar para poder manejarlo desde VBA y si alguién me pudiera explicar como funciona, porque actualmente manejo un form en el que manejo algunas"piezas" las cual al darlas de alta les asigno una clave la cual me gustaria sirviera para convertirla en el código de barras para poder posteriormente imprimirlas e identificarlas mas facilmente o como las generaria el cód.b sería un numero diferente???
Gracias.
  #2 (permalink)  
Antiguo 03/09/2008, 11:38
Avatar de culd  
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 20 años, 6 meses
Puntos: 19
Respuesta: ¿código de barras?

Las preguntas son medios tontas...

Cuando vas a un supermercado ves que cada producto del mismo tipo tiene un unico codigo identificador (codigo de barras) generalmente es usado el tipo EAN13...

Una cocacola de 2,25litros tiene un codigo diferente a la de 1,5litros... lo cual la diferencia.

Google no muerde...

VBA+Generar codigo de barras

Y ya se termino tu problema.
  #3 (permalink)  
Antiguo 03/09/2008, 12:58
 
Fecha de Ingreso: abril-2008
Mensajes: 47
Antigüedad: 16 años
Puntos: 0
De acuerdo Respuesta: ¿código de barras?

Gracias Culd!! por tu enorme sabiduría y si en algo tan obvio de que una coca de 2,25litros pues si es diferente a una de 1,5litros =) eso me queda claro , y en efecto "san google" es de mucha ayuda pero el preguntar en un foro es con la finalidad de que si alguien con "experiencia" ya hizo algo similar podrá ayudar a otros a dar ideas de lo que se podria hacer solo ideas,con la finalidad de orientar y sobre todo porque en internet la mayoria de información es en v.b y no en vba lo cual muchas veces difiere porque no cuentan con los mismos tipos de "objetos" .... pero bueno gracias por tu tiempo y saludos ahh y gracias por el tip!!!
  #4 (permalink)  
Antiguo 03/09/2008, 17:40
Avatar de Txoco  
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 189
Antigüedad: 15 años, 11 meses
Puntos: 7
Respuesta: ¿código de barras?

Hola!

Por lo general, no tienes que preocuparte por cómo imprimir los códigos de barras, ya que las impresoras que los admiten lo suelen hacer de forma automática. Yo he trabajado con la serie LaserJet 4000 de Hewlett Packard, que requerían de un módulo adicional (bastante caro, por cierto) para ello, y con las Brother 51xx y 52xx que imprimen códigos legibles de forma nativa, aparte de impresoras térmicas Zebra, que tienen un lenguaje propio.

Para diseñarlos, basta con que sepas qué tipo de instrucción necesita la impresora para imprimirlos correctamente y qué datos quieres que guarde el código de barras, pero eso depende de la impresora, no de tu código. Por ejemplo, en mis Zebra, imprimo a través del controlador standard de texto plano de Windows.

Aunque hay librerías que te permiten imprimir códigos de barras, la mayoría de las impresoras no tienen la calidad suficiente como para que sean legibles por un lector, y hasta donde yo se, ninguna de chorro de tinta es capaz de lograr los contrastes y la definición necesarios. Además, esas librerías suelen ser de pago, aunque no se decirte si son caras o no.

Por otra parte, hay varias especificaciones de códigos de barras (EAN, USC, Code...) en una y dos dimensiones, y cada uno es adecuado para una cosa concreta. El EAN13 se suele utilizar para códigos a nivel global, de tal forma que puedes aprenderte qué números corresponden a cada país para saber dónde ha sido fabricada cada cosa, por ejemplo

Te recomiendo que recopiles información sobre los datos que quieres guardar antes de elegir un standard, pero en cualquier caso, no te preocupes mucho por el código necesario, ya que se puede decir que no lo hay.
__________________
wile sona li mute e sona
  #5 (permalink)  
Antiguo 04/09/2008, 20:02
 
Fecha de Ingreso: septiembre-2008
Mensajes: 10
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: ¿código de barras?

vienen controles ocx para manejar distintos tipos de codigo de barra asi que, buscate en la web que tiene que haber dando vueltas por todos lados. Hay muchos controles que aparte de poder crearlos y modificarlos a tu gusto...te dan la posibilidad de imprimirlos para despues ser leidos con el lector...
  #6 (permalink)  
Antiguo 05/09/2008, 08:22
Avatar de misterpc27  
Fecha de Ingreso: abril-2008
Mensajes: 35
Antigüedad: 16 años
Puntos: 1
Respuesta: ¿código de barras?

No se donde lo encontre este codigo googlendo hace mucho tiempo pero de igual a ki te va y estoy deacuerdo en lo que dices para eso es el foro pero hay que buscar un poco recuerda que ellos tambien estan ocupados en susu asuntos..

El codigo a continuación tiene un Procedimiento llamado
DrawBarCode, el cual recibe el codigo del item, la descripción del mismo y un control PictureBox, el cual contendrá el codigo de barras.

Sólo debes diseñar un form con 3 controles (2 textBox y 1 PictureBox), luego
ejecutas

Call DrawBarcode(codigo_item, Descripcion_item, PictureBox)



Código:
Sub DrawBarcode(ByVal bc_string As String, sDescripcion As String, VLPrecio as String, obj As Control)

Dim xpos!, y1!, y2!, dw%, th!, tw, new_string$
Dim bc(90) As String
Dim sAux As String
Dim I As Byte

bc(1) = "1 1221" 'pre-amble
bc(2) = "1 1221" 'post-amble
bc(48) = "11 221" 'dígitos
bc(49) = "21 112"
bc(50) = "12 112"
bc(51) = "22 111"
bc(52) = "11 212"
bc(53) = "21 211"
bc(54) = "12 211"
bc(55) = "11 122"
bc(56) = "21 121"
bc(57) = "12 121"
'Letras Mayúsculas
bc(65) = "211 12" 'A
bc(66) = "121 12" 'B
bc(67) = "221 11" 'C
bc(68) = "112 12" 'D
bc(69) = "212 11" 'E
bc(70) = "122 11" 'F
bc(71) = "111 22" 'G
bc(72) = "211 21" 'H
bc(73) = "121 21" 'I
bc(74) = "112 21" 'J
bc(75) = "2111 2" 'K
bc(76) = "1211 2" 'L
bc(77) = "2211 1" 'M
bc(78) = "1121 2" 'N
bc(79) = "2121 1" 'O
bc(80) = "1221 1" 'P
bc(81) = "1112 2" 'Q
bc(82) = "2112 1" 'R
bc(83) = "1212 1" 'S
bc(84) = "1122 1" 'T
bc(85) = "2 1112" 'U
bc(86) = "1 2112" 'V
bc(87) = "2 2111" 'W
bc(88) = "1 1212" 'X
bc(89) = "2 1211" 'Y
bc(90) = "1 2211" 'Z
'Misceláneos Caracteres
bc(32) = "1 2121" 'Espacio
bc(35) = "" '# no se puede realizar
bc(36) = "1 1 1 11" '$
bc(37) = "11 1 1 1" '%
bc(43) = "1 11 1 1" '+
bc(45) = "1 1122" '-
bc(47) = "1 1 11 1" '/
bc(46) = "2 1121" '.
bc(64) = "" '@ no se puede realizar
bc(65) = "1 1221" '*

bc_string = UCase(bc_string) 'Convertir a mayúsculas

'Dimensiones
obj.ScaleMode = 2 'Pixeles
obj.Cls
obj.Picture = Nothing
dw = CInt(obj.ScaleHeight / 40) 'Espacio entre barras
If dw < 1 Then dw = 1
th = obj.TextHeight(bc_string) 'Alto texto
tw = obj.TextWidth(bc_string) 'Ancho texto
new_string = Chr$(1) & bc_string & Chr$(2) 'Agregar pre-amble, post-amble
y1 = obj.ScaleTop + 12
y2 = obj.ScaleTop + obj.ScaleHeight - 1.5 * th
obj.Width = 1.1 * Len(new_string) * (15 * dw) * obj.Width / obj.ScaleWidth

'Dibujar cada caracter en el string barcode
xpos = obj.ScaleLeft
For n = 1 To Len(new_string)
c = Asc(Mid(new_string, n, 1))
If c > 90 Then c = 0
bc_pattern$ = bc(c)
'Dibujar cada barra
For I = 1 To Len(bc_pattern$)
Select Case Mid(bc_pattern$, I, 1)
Case " "
'Espacio
obj.Line (xpos, y1)-(xpos + 1 * dw, y2), &HFFFFFF, BF
xpos = xpos + dw
Case "1"
'Espacio
obj.Line (xpos, y1)-(xpos + 1 * dw, y2), &HFFFFFF, BF
xpos = xpos + dw
'Línea
obj.Line (xpos, y1)-(xpos + 1 * dw, y2), &H0&, BF
xpos = xpos + dw
Case "2"
'Espacio
obj.Line (xpos, y1)-(xpos + 1 * dw, y2), &HFFFFFF, BF
xpos = xpos + dw
'Ancho línea
obj.Line (xpos, y1)-(xpos + 2 * dw, y2), &H0&, BF
xpos = xpos + 2 * dw
End Select
Next
Next

'Mas espacio
obj.Line (xpos, y1)-(xpos + 1 * dw, y2), &HFFFFFF, BF
xpos = xpos + dw

'Medida final y tamaño
obj.Width = (xpos + dw) * obj.Width / obj.ScaleWidth
obj.CurrentX = 1
obj.CurrentY = 1
If VLPrecio = "0.00" Then VLPrecio = ""
If xpos - obj.TextWidth(VLPrecio) - 10 < obj.TextWidth(sDescripcion) Then
sAux = ""
For I = 1 To Len(sDescripcion)
If xpos - obj.TextWidth(VLPrecio) - 10 < obj.TextWidth(sAux) Then
Exit For
Else
sAux = sAux & Mid(sDescripcion, I, 1)
End If
Next I
obj.Print sAux
Else
obj.Print sDescripcion
End If
obj.CurrentX = xpos - obj.TextWidth(VLPrecio)
obj.CurrentY = 1
obj.Print VLPrecio
obj.CurrentX = (obj.ScaleWidth - tw) / 2
obj.CurrentY = y2 + 0.25 * th
obj.Print bc_string

'Copiar a clipboard
obj.Picture = obj.Image
Clipboard.Clear
Clipboard.SetData obj.Image, 2
End Sub
  #7 (permalink)  
Antiguo 09/09/2008, 11:51
 
Fecha de Ingreso: abril-2008
Mensajes: 47
Antigüedad: 16 años
Puntos: 0
Respuesta: ¿código de barras?

Hola y muchisisisimas gracias por sus comentarios la verdad me ha servido mucho para tener una mejor idea de esto, pero la verdad es que creo que no plantee bien mi problema, mi duda es antes que nada saber que debo de tener en el formulario que voy a usar para que al pasar el lector de codigos de barras me lea la etiqueta y me despliegue su información en pantalla, a esto me referia en un principio al preguntar como funcionaba .....y es que actualmente tengo un formulario con un cuadrocombinado el cual selecciono alguna opción y a traves de él mediante un subformulario me muestra la información bueno entonces como implemento lo del código de barras aqui??? tengo que agregar un campo de texto para que contenga el código de barras?? y es que con el PictureBox que me sugirieron pues vba no lo tiene a eso me referia también que en internet luego no hay info. para esto.....es necesario usarlo????
GRACIAS!!!
  #8 (permalink)  
Antiguo 09/09/2008, 12:04
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Respuesta: ¿código de barras?

Ah! entonces debías explicarte mejor, el lector de código de barras funciona como un dispositivo de entrada normal (como el teclado), de modo que va a escribir la información en el TextBox que tenga el foco, por lo tanto, podrías sí, tener un TextBox para que se ingrese el código de barras.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:09.