You are on page 1of 9

Pues a ciencia cierta yo no se aun como funciona esta chachara del lector de cod

igo de barras, hoy compre mi pistola para probar y por ahora lo unico que se me
ocurre es lo siguiente:
Private Sub Text1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 13
MSFlexGrid1.Text = Text1.Text 'aqui lo que capturo lo envia ya sea un componente
o a una consulta
KeyAscii = 0 ' Para que no "pite"
Text1.Text = "" 'Limpiamos el text para capturar la siguente lectura
'Beep
End Select
End Sub
espero les sea de ayuda ahora me falta averiguar como poner el foco en esa caja
de texto
cada vez que se accione la pistola
Saludos
Cómo escribir un Macro en Word para que lea los datos de Excel
Dibujar Codigo de Barras (Bar Code)
El codigo a continuación tiene un Procedimiento llamado
DrawBarCode, el cual recibe el codigo del item, la descripción del mismo y un cont
rol 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 S
tring, 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
En línea
You are not allowed to view links. Register or Login
Desconectado Slore
IcebergWorm
Usuario Activo
*

Mensajes: 186
c0ins 0
Campeon... Aqui seras mucho pero en la calle...!
Ver Perfil Email
Skype: Slore4Ever
Re:[VB6] Coleccion de Codigos Utiles
« Respuesta #16 en: Junio 08, 2012, 11:42:40 am »
Como Guardar datos en el registro de Windows
Hola. Create un formulario llamado Form1, y en el pon un CheckBox, llamado Check
1. Depués añade este código.
Código:
Private Sub Form_Load()
Check1.Value = GetSetting(App.Title, Form1.Name, Check1.Name, vbChecked)
End Sub
Código:
Private Sub Form_Unload(Cancel As Integer)
SaveSetting App.Title, Form1.Name, Check1.Name, Check1.Value
End Sub
Tendrás que hacer lo mismo con cada uno de los controles de tu formulario.
Se podría hacer incluso un procedimiento para guardar en un bucle todas las propie
dades de todos los controles de un formulario, pero eso te lo dejamos investigar
a vos.
en caso de que fuera un texto un label se reemplaza el codigo por las propiedade
s de un texto, por ejemplo
Código:
Private Sub Form_Load()
text1.text = GetSetting(App.Title, Form1.Name, text1.name, vbChecked)
End Sub
Código:
Private Sub Form_Unload(Cancel As Integer)
SaveSetting App.Title, Form1.Name, text1.name, text1.text
End Sub
para una label seria igual pero con label1.caption..
buenos dias, estoy necesitando desarrollar una aplicacion que mande a imprimir u
na etiqeuta de cod de barra en una impresora Zebra GK 420t que usa el puerto "US
B001"..
Despues de mucho buscar llegue a este codigo:
Option Explicit On
Public Class Form1
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.Event
Args) Handles Button2.Click
Me.Close()
End Sub
Private Structure DOCINFO
Dim pDocName As String
Dim pOutputFile As String
Dim pDatatype As String
End Structure
Private Declare Function ClosePrinter Lib "winspool.drv" (ByVal _
hPrinter As Long) As Long
Private Declare Function EndDocPrinter Lib "winspool.drv" (ByVal _
hPrinter As Long) As Long
Private Declare Function EndPagePrinter Lib "winspool.drv" (ByVal _
hPrinter As Long) As Long
Private Declare Function OpenPrinter Lib "winspool.drv" Alias _
"OpenPrinterA" (ByVal pPrinterName As String, ByVal phPrinter As Long, _
ByVal pDefault As Long) As Long
Private Declare Function StartDocPrinter Lib "winspool.drv" Alias _
"StartDocPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, _
ByVal pDocInfo As DOCINFO) As Long
Private Declare Function StartPagePrinter Lib "winspool.drv" (ByVal _
hPrinter As Long) As Long
Private Declare Function WritePrinter Lib "winspool.drv" (ByVal _
hPrinter As Long, ByVal pBuf As String, ByVal cdBuf As Long, _
ByVal pcWritten As Long) As Long
'Esto lo ponemos en la declaracion en general de nuestro form para utilizar el a
pi
'posteriormente en un boton ponemos el siguiente codigo
Private Sub Command1_Click()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Event
Args) Handles Button1.Click
' Aki declaramos las variables de las fuincionesd que utilizaremos , hasta lDoc
es obligatorio de la funcion
Dim lhPrinter As Long
Dim lReturn As Long
Dim lpcWritten As Long
Dim lDoc As Long
' aki declaramos los componentes de nuestra etiqueta
'-----------------COMIENZO VARIABLES ENCABEZADO---------------------
Dim LIMPIABUFFER As String
Dim FORMATO As String
Dim DENSIDAD As String
Dim VELOCIDAD As String
Dim REFERENCIA As String
Dim LABELWIDTH As String
Dim DOUBLEBUFFERMODE As String
Dim DIRECCIONIMPRESION As String
Dim DISABLETOFB As String
Dim HARDWARE As String
'--------------------FIN VARIABLES ENCABEZADO-----------------------
'--------------------COMIENZO VARIABLES DATOS-----------------------
Dim DATO1 As String
Dim DATO2 As String
Dim DATO3 As String
Dim DATO4 As String
Dim DATO5 As String
Dim DATO6 As String
Dim DATO7 As String
Dim DATO8 As String
Dim DATO9 As String
Dim DATO10 As String
Dim DATO11 As String
Dim DATO12 As String
Dim DATO13 As String
Dim CODARTICULO As String
Dim LOTE As String
Dim CANTIDAD As String
'--------------------------------------------------------------------
'Linea son las variables que se encontraran en nuestra etiquetas
Dim CodigoArticulo As String
Dim DescripcionArticulo As String
Dim Talle As String
Dim Color As String
Dim LoteArticulo As String
Dim CantidadImpresion As String
Dim Linea6 As String
Dim Linea7 As String
'Aki estan mis valores declarados los cuales tomo de componentes de mi _formular
io los cuales cambian dependiendo la consulta que hago en mi bd
CodigoArticulo = TextBox1.Text
DescripcionArticulo = TextBox2.Text
Talle = TextBox3.Text
Color = TextBox4.Text
LoteArticulo = TextBox5.Text
CantidadImpresion = TextBox6.Text
'Aki empezamos a preparar la impresora para el envio de los datos
Dim MyDocInfo As DOCINFO
lReturn = OpenPrinter("Zebra GK420t", lhPrinter, 0)
If lReturn = 0 Then
MsgBox("The Printer Name you typed wasn't recognized.")
Exit Sub
End If
MyDocInfo.pDocName = "ETIQUETAS"
MyDocInfo.pOutputFile = vbNullString
MyDocInfo.pDatatype = vbNullString
lDoc = StartDocPrinter(lhPrinter, 1, MyDocInfo)
Call StartPagePrinter(lhPrinter)
'Aki construimos las lineas del codigo EPL y las declaramos ojo terminarlas _lin
eas con esta instruccion es lo que hace que el codigo funcione (& vbCrLf) Ya_ qu
e indica el salto de linea si esto lo omitimos la impresora no redconocera el _c
odigo y simplemente recibira la informacion pero no imprimira nada
'
'-------------------------------EPL ENCABEZADO ---------------------------------
---
FORMATO = "Q,200,019" & vbCrLf
LABELWIDTH = "q863" & vbCrLf
DOUBLEBUFFERMODE = "rN" & vbCrLf
VELOCIDAD = "S4" & vbCrLf
DENSIDAD = "D10" & vbCrLf
DIRECCIONIMPRESION = "ZT" & vbCrLf
DISABLETOFB = "JB" & vbCrLf
HARDWARE = "O" & vbCrLf
REFERENCIA = "R132,0" & vbCrLf
LIMPIABUFFER = "N" & vbCrLf
'-----------------------------FIN EPL ENCABEZADO--------------------------------
---
DATO1 = "GW20,105,9,24," & Chr(34) & CodigoArticulo & Chr(34) & vbCrLf
DATO2 = "GW20,128,8,24," & Chr(34) & DescripcionArticulo & Chr(34) & vbCrLf
DATO3 = "GW20,78,19,30," & Chr(34) & Talle & Chr(34) & vbCrLf
DATO4 = "GW85,105,5,24," & Chr(34) & Color & Chr(34) & vbCrLf
DATO5 = "GW129,105,19,24," & Chr(34) & LoteArticulo & Chr(34) & vbCrLf
DATO6 = "GW85,128,3,24," & Chr(34) & CantidadImpresion & Chr(34) & vbCrLf
DATO7 = "GW369,84,1,28," & Chr(34) & LoteArticulo & Chr(34) & vbCrLf
DATO8 = "GW414,85,1,28," & Chr(34) & LoteArticulo & Chr(34) & vbCrLf
DATO9 = "GW20,148,18,28," & Chr(34) & LoteArticulo & Chr(34) & vbCrLf
DATO10 = "GW353,84,2,28," & Chr(34) & LoteArticulo & Chr(34) & vbCrLf
DATO11 = "GW382,84,4,28," & Chr(34) & LoteArticulo & Chr(34) & vbCrLf
DATO12 = "GW424,84,3,28," & Chr(34) & LoteArticulo & Chr(34) & vbCrLf
DATO13 = "GW483,85,3,11," & Chr(34) & LoteArticulo & Chr(34) & vbCrLf
CODARTICULO = "B15,0,0,1,2,6,80,N," & Chr(34) & CodigoArticulo & Chr(34) & vbCrL
f
LOTE = "B592,15,1,1,2,6,80,N," & Chr(34) & LoteArticulo & Chr(34) & vbCrLf
CANTIDAD = "P" & CantidadImpresion & vbCrLf
'Aki una vez construido el codigo EPL lo enviamos a la impresora
lReturn = WritePrinter(lhPrinter, LIMPIABUFFER, _
Len(LIMPIABUFFER), lpcWritten)
lReturn = WritePrinter(lhPrinter, FORMATO, _
Len(FORMATO), lpcWritten)
lReturn = WritePrinter(lhPrinter, DENSIDAD, _
Len(DENSIDAD), lpcWritten)
lReturn = WritePrinter(lhPrinter, VELOCIDAD, _
Len(VELOCIDAD), lpcWritten)
lReturn = WritePrinter(lhPrinter, REFERENCIA, _
Len(REFERENCIA), lpcWritten)
lReturn = WritePrinter(lhPrinter, DATO1, _
Len(DATO1), lpcWritten)
lReturn = WritePrinter(lhPrinter, DATO2, _
Len(DATO2), lpcWritten)
lReturn = WritePrinter(lhPrinter, DATO3, _
Len(DATO3), lpcWritten)
lReturn = WritePrinter(lhPrinter, DATO4, _
Len(DATO4), lpcWritten)
lReturn = WritePrinter(lhPrinter, DATO5, _
Len(DATO5), lpcWritten)
lReturn = WritePrinter(lhPrinter, DATO6, _
Len(DATO6), lpcWritten)
lReturn = WritePrinter(lhPrinter, DATO7, _
Len(DATO7), lpcWritten)
lReturn = WritePrinter(lhPrinter, DATO8, _
Len(DATO8), lpcWritten)
lReturn = WritePrinter(lhPrinter, DATO9, _
Len(DATO9), lpcWritten)
lReturn = WritePrinter(lhPrinter, DATO10, _
Len(DATO10), lpcWritten)
lReturn = WritePrinter(lhPrinter, DATO11, _
Len(DATO11), lpcWritten)
lReturn = WritePrinter(lhPrinter, DATO12, _
Len(DATO12), lpcWritten)
lReturn = WritePrinter(lhPrinter, DATO13, _
Len(DATO13), lpcWritten)
lReturn = WritePrinter(lhPrinter, CODARTICULO, _
Len(CODARTICULO), lpcWritten)
lReturn = WritePrinter(lhPrinter, LOTE, _
Len(LOTE), lpcWritten)
lReturn = WritePrinter(lhPrinter, CANTIDAD, _
Len(CANTIDAD), lpcWritten)
'Aki terminamos la impresion y cerramos el puerto de la impresora
lReturn = EndPagePrinter(lhPrinter)
lReturn = EndDocPrinter(lhPrinter)
lReturn = ClosePrinter(lhPrinter)
End Sub
End Class
Pero no sale nada por la impresora, algun ayuda??
hola, a ver si me pueden ayudar, estoy leyendo un codigo de barras y he hecho un
private sub, pero necesito leer 2 datos diferentes del codigo y ponerlos en 2 t
extbox diferentes, mi pregunta es si podria leerlo dos veces para ponerlo en los
dos textbox, seria algo asi:
Private Sub Text1_KeyPress(KeyAscii As Integer)
' lo que querria es poner otro Text2_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
texto = Text1.Text
Hola Nelson F.I
veamo estas asiendo un proyecto con lectora de codigo de barras que hace un lect
or de codigo de barras hace cada ves que pases un codigo de barras por el lector
te lo va a decifrar el codigo Real
lo que tenemos que hacer es guardar el codigo Real como primary key y toda la De
scripcionm del producto
pero la lecto de codigo de barras te lo va a leer en donde esta enfocado para po
der escribir si tu barra para escribir esta en notepad te lo va a leer en el not
epad entonces lo que tenemos que hacer es tener enfocado en una caja de Text y p
rogramar en el evento TextChanged para poder buscar dicho producto
--------------------------------------...
Imports System.Data
Imports System.Data.SqlClient
Public Class Form1
Const sPathBase As String = "|DataDirectory|\BD.mdb"
Dim Cn = New OleDb.OleDbConnection
("Provider=Microsoft.ACE.OLEDB.12.0;" & _
" Data Source=" & sPathBase & ";")
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As Syste
m.EventArgs) Handles TextBox1.TextChanged
Dim Cadena As New OleDb.OleDbDataAdapter("Select * from Productos WHERE CodProd=
'" & TextBox1.Text "'", NWindOleDbConn)
''Una ves Hecho nuestra conculta lo guardamos en un DatatTable
Dim Tbl As New DataTable
Cadena.Fill(Tbl)
''en esta parte podemos hacer una condicion
'' Si TBL es 0 entonces que nos envie un mensaje
''si no que nos muestre la informacion
If Tbl.Rows.Count == 0 Then
MessageBox.Show("codigo no existente")
else
DataGridView1.DataSource = Tbl
End If
End Sub
End Class
--------------------------------------...