摘 要:條形碼功能強大,輸入方式具有速度快、準確率高、可靠性強等特點特點在商品流通、工業生產上、倉貯標證管理、信息服務等領域獲得了廣泛的應用,介紹如何用VB輕松實現條形碼編程的方法。
關鍵詞:條形碼;編程接口;控件;窗體
中圖分類號:TP文獻標識碼:A文章編號:1672-3198(2008)10-0360-01
1 條形碼的讀取
用過鍵盤口式的掃條碼工具的朋友就知道,它就如同在鍵盤上按下數字鍵一樣,基本不需任何編程和處理。但如果你使用的是其它接口的話,可能你就要為該設備編寫通訊代碼了。以下有一段簡單的25針串口的條碼讀取器通訊代碼。
Dim sData As String
Private Sub Form_Load()
With MSComm1
.CommPort = 3 '設為COM3,試運行的系統而定。
.PortOpen = True'打開通訊端口
End With
End Sub
Private Sub MSComm1_OnComm()
Dim EndPos As Integer
Select Case MSComm1.CommEvent
Case comEvReceive '當有數據傳送過來時
sData = sData Trim(MSComm1.Input)
EndPos = InStr(1, sData, Chr(13)) '檢索回車
If EndPos = 0 Then '如果未結束就繼續
Else '讀完一組。
lblBarCode.Caption = sData '顯示一組條形碼
With lstBarCode
.AddItem Mid(sData, 1, EndPos - 1) '添加一組條形碼到列表
End With
sData = “” '清空
End If
End Select
End Sub
2 條形碼的生成
關于條形碼生成的代碼也是很容易理解,只需使用一個OFFICE的附帶的BarCode控件就可以輕松打印出11種不同標準的條形碼,足以滿足我們的要求。
源代碼主要由兩個窗體(frmMain主窗體和frmOption條碼設置窗體)和兩個模塊組成(modGetScreen.bas、SysDLG32.bas)??紤]到篇幅,這里只列出部分較為關鍵的代碼。
新建一個標準工程,添加一個名為(Microsoft Access BarCode Control9)的條形碼部件,并添加一個條碼控件到窗口,并將窗口改名為frmMain。由于控件比較多,這里不便細說,詳細內容請看源代碼。
模塊modGetScreen.bas部分代碼如下:
Option Explicit
Public RegUser As Boolean
Sub GetObjImage1(Obj As Object, OwnerForm As PictureBox, Picture1 As PictureBox)
Dim hWndDesk As Long
Dim hDCDesk As Long
'x,y,w,h為區域表達變量
x = Obj.Left Screen.TwipsPerPixelX
y = Obj.TopScreen.TwipsPerPixelY
w = Obj.WidthScreen.TwipsPerPixelX
h = Obj.HeightScreen.TwipsPerPixelY
hDCDesk = OwnerForm.hdc
Call BitBlt(Picture1.hdc, 0,0,w,h,hDCDesk,x,y, vbSrcCopy)'取出圖像
CallReleaseDC(hWndDesk,hDCDesk)
End Sub
主窗體frmMain.frm部分代碼如下:
Private Sub cmdPrint_Click()
'生成條形碼圖像
Dim r As Long, i As Integer, t As String,cfile As String
t = BarCode
For i = 0 To Val(Times) -1
BarCode1.Value=BarCode+i
DoEvents
Picture1.Refresh
GetObjImage1 BarCode1,Conel,Picture1
If RegUser=False Then
Picture1.PaintPicture Picture2.Picture, 300, 300
End If
If Dir(SavePath, vbDirectory)=“”Then MkDir SavePath
SavePath = SavePath IIf(Right(SavePath, 1) <> “”, “”, “”)
cfile = SavePath BarCode1.Value “.bmp”
SavePicture Picture1.Image, cfile '將條形碼保存為圖像文件以便打印
Next
BarCode = t
End Sub
條形碼設置窗體frmOption.frm代碼如下:
'條形碼設置模塊代碼
BarCode1.Style = cboBig.ListIndex '改變標準
BarCode1.Direction = cboDirection.ListIndex '改變方向
BarCode1.LineWeight = cboLine.ListIndex '改變線寬
BarCode1.SubStyle = cboSmall.ListIndex '改變樣式
BarCode1.ShowData = Check1.Value '是否顯示數據
'傳送條形碼設定到主界面
With frmMain.BarCode1
.LineWeight = BarCode1.LineWeight
.Style = BarCode1.Style
.SubStyle = BarCode1.SubStyle
.Direction = BarCode1.Direction
.Width = BarCode1.Width
.Height = BarCode1.Height
.ShowData = BarCode1.ShowData
Me.Hide
End With
With frmMain
.Picture1.Width = .BarCode1.Width
.Picture1.Height = .BarCode1.Height
.Conel.Width = .BarCode1.Width
.Conel.Height = .BarCode1.Height
End With
'初始化選項
LoadBarInfo
BarWidth = BarCode1.Width
BarHeight = BarCode1.Height
當計算機配置了網絡控制器之類的接口軟、硬件時,這個簡單的條形碼系統就能讀入條形碼信息并根據要求生成條形碼打印或顯示出來。以上程序在VB6.0下調試通過。