VB條形碼編程實例2_第1頁
VB條形碼編程實例2_第2頁
VB條形碼編程實例2_第3頁
VB條形碼編程實例2_第4頁
VB條形碼編程實例2_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

VB條形碼編程實例--2007-6-811:34:46

條形碼技術(shù)廣泛應(yīng)用于各行各業(yè),你隨便拿起一本書、一包薯片都可以在外包裝上找到,利用條碼讀取機便可將這一條條黑白相間、粗細不同的垂直線條識別而轉(zhuǎn)換為具體的數(shù)值,并將這個數(shù)值返回到計算機中進展處理。正是這樣,有了條形碼技術(shù),人們很方便就能取得該商品的有關(guān)信息如商品名稱、規(guī)格、價格等,因為每種商品都有其對應(yīng)的條形碼,這個條形碼計算機〔終端、效勞器〕中就可以迅速返回用戶,從數(shù)據(jù)庫中讀取約定的商品,信息使得銷售、進貨、存貨等等管理更有效率,也對防止假冒偽劣又一定的抑制作用。

條碼的編碼方式有多種,不同行業(yè),不同國家標準也不盡一樣。條形碼通過線條的粗細來表達其數(shù)值。至于接口方式一般也有多種,如鍵盤口的、串行口的。一般傳感裝置是光罩式的,也有筆式的。

上面籠籠統(tǒng)統(tǒng)地談了一些關(guān)于條形碼的知識,可幫助你更好地閱讀以下更深入的內(nèi)容。條形碼有關(guān)概念先說到這里,接著是詳細具體的編程實現(xiàn)方法。

一、條形碼的讀取

用過鍵盤口式的掃條碼工具的朋友就知道,它就如同在鍵盤上按下數(shù)字鍵一樣,根本不需任何編程和處理。但如果你使用的是其它接口的話,可能你就要為該設(shè)備編寫通訊代碼了。以下有一段簡單的25針串口的條碼讀取器通訊代碼。

OptionExplicit

DimsDataAsString

PrivateSubForm_Load()

WithMSComm1

.CommPort=3'設(shè)為COM3,試運行的系統(tǒng)而定,你可提供一個Combox讓用戶選擇。

.PortOpen=True'翻開通訊端口

EndWith

EndSub

PrivateSubMSComm1_OnComm()

DimEndPosAsInteger

SelectCaseMSComm1.CommEvent

CasecomEvReceive'當有數(shù)據(jù)傳送過來時

sData=sData&Trim(MSComm1.Input)

'檢索回車,通常讀卡機每組數(shù)據(jù)結(jié)尾都返回一個回車作為完畢符

EndPos=InStr(1,sData,Chr(13))

IfEndPos=0Then'如果未完畢就繼續(xù)努力

Else'讀完一組。

lblBarCode.Caption=sData'顯示一組條形碼

WithlstBarCode

.AddItemMid(sData,1,EndPos-1)'添加一組條形碼到列表

EndWith

sData=""'清空

EndIf

EndSelect

EndSub

PrivateSubcmdEnd_Click()

MSComm1.PortOpen=False'關(guān)閉端口

End

EndSub

二、條形碼的生成

看完以上關(guān)于條碼讀取的代碼是否覺得很容易呢?對,在VB上編程本來就不難。以下關(guān)于條形碼生成的代碼也是很容易理解,只需使用一個OFFICE的附帶的BarCode控件就可以輕松打印出11種不同標準的條形碼,足以滿足我們的要求。想起我書架上的一本書中的一篇用TurboC編寫條形碼打印程序文章,長篇大論,那時不知看了n天,打了n小時字結(jié)果也不盡人意,現(xiàn)在真是幸福多了:)。廢話說完,得回歸正題。且看條形碼生成的代碼及有關(guān)說明。

源代碼主要由兩個窗體〔frmMain主窗體和frmOption條碼設(shè)置窗體〕和兩個模塊組成(modGetScreen.bas、SysDLG32.bas)??紤]到篇幅,這里只列出局部較為關(guān)鍵的代碼。

新建一個標準工程,添加一個名為(MicrosoftAccessBarCodeControl9)的條形碼部件,并添加一個條碼控件到窗口,并將窗口改名為frmMain,如下圖。由于控件比擬多,這里不便細說,詳細內(nèi)容請看源代碼。

模塊modGetScreen.bas代碼如下:

OptionExplicit

聲明BitBlt、GetDesktopWindow、GetWindowDC、ReleaseDC這幾個API函數(shù)略

PublicRegUserAsBoolean

SubGetObjImage1(ObjAsObject,OwnerFormAsPictureBox,Picture1AsPictureBox)

'hDC

DimhWndDeskAsLong

DimhDCDeskAsLong

'區(qū)域表達變量

DimxAsLong

DimyAsLong

DimwAsLong

DimhAsLong

x=Obj.Left

Screen.TwipsPerPixelX

y=Obj.Top

Screen.TwipsPerPixelY

w=Obj.Width

Screen.TwipsPerPixelX

h=Obj.Height

Screen.TwipsPerPixelY

hDCDesk=OwnerForm.hdc

'取出圖像

CallBitBlt(Picture1.hdc,0,0,w,h,hDCDesk,x,y,vbSrcCopy)

CallReleaseDC(hWndDesk,hDCDesk)

EndSub

主窗體frmMain.frm局部代碼如下:

PrivateSubcmdPrint_Click()

'生成條形碼圖像

DimrAsLong,iAsInteger,tAsString,cString'臨時變量

t=BarCode

Fori=0ToVal(Times)-1

BarCode1.Value=BarCode+i

DoEvents

Picture1.Refresh

GetObjImage1BarCode1,Conel,Picture1

IfRegUser=FalseThen'如果未注冊添加MASK標記

Picture1.PaintPicturePicture2.Picture,300,300

EndIf

IfDir(SavePath,vbDirectory)=""ThenMkDirSavePath

SavePath=SavePath&IIf(Right(SavePath,1)<>"","","")

cfile=SavePath&BarCode1.Value&".bmp"

SavePicturePicture1.Image,cfile'將條形碼保存為圖像文件以便打印

Next

BarCode=t

EndSub

條形碼設(shè)置窗體frmOption.frm代碼如下:

OptionExplicit

'條形碼設(shè)置模塊

PrivateSubcboBig_Click()

BarCode1.Style=cboBig.ListIndex'改變標準

EndSub

PrivateSubcboDirection_Click()

BarCode1.Direction=cboDirection.ListIndex'改變方向

EndSub

PrivateSubcboLine_Click()

BarCode1.LineWeight=cboLine.ListIndex'改變線寬

EndSub

PrivateSubcboSmall_Click()

BarCode1.SubStyle=cboSmall.ListIndex'改變樣式

EndSub

PrivateSubCheck1_Click()

BarCode1.ShowData=Check1.Value'是否顯示數(shù)據(jù)

EndSub

PrivateSubcmdChange_Click()

'設(shè)置長、寬大小

BarWidth=BarCode1.Height

BarHeight=BarCode1.Width

cmdRefresh_Click

EndSub

PrivateSubcmdOK_Click()

'傳送條形碼設(shè)定到主界面

WithfrmMain.BarCode1

.LineWeight=BarCode1.LineWeight

.Style=BarCode1.Style

.SubStyle=BarCode1.SubStyle

.Direction=BarCode1.Direction

.Width=BarCode1.Width

.Height=BarCode1.Height

.ShowData=BarCode1.ShowData

Me.Hide

EndWith

WithfrmMain

.Picture1.Width=.BarCode1.Width

.Picture1.Height=.BarCode1.Height

.Conel.Width=.BarCode1.Width

.Conel.Height=.BarCode1.Height

EndWith

EndSub

PrivateSubcmdRefresh_Click()

BarCode1.Width=BarWidth

BarCode1.Height=BarHeight

EndSub

PrivateSubForm_Load()

LoadBarInfo

BarWidth=BarCode1.Width

BarHeight=BarCode1.Height

EndSub

SubLoadBarInfo()'初始化選項

LoadBigClasscboBig

LoadSmallClasscboSmall

LoadLineSizecboLine

LoadDirectioncboDirection

EndSub

SubLoadBigClass(cboAsComboBox)'條碼標準

Withcbo

.AddItem"UPC-A"

.AddItem"UPC-E"

.AddItem"EAN-13"

.AddItem"EAN-8"

.AddItem"CaseCode"

.AddItem"Codabar(NW-T)"

.AddItem"Code-39"

.AddItem"Code-128"

.AddItem"U.S.Postnet"

.AddItem"U.S.PostalFIM"

.AddItem"JPPost"

.ListIndex=2

EndWith

EndSub

SubLoadSmallClass(cboAsComboBox)'條碼樣式

Withcbo

.AddItem"Standard"

.AddItem"2-DigitSupplement"

.AddItem"5-DigitSupplement"

.AddItem"POSCaseCode"

.ListIndex=0

EndWith

EndSub

許多人在編寫數(shù)據(jù)庫應(yīng)用程序時,都想要加上條形碼功能加強工作效率,尤其是銷售管理,圖書館管理這類流量大的應(yīng)用軟件,但由于條形碼技術(shù)難以掌握、標誰又多以及過去的技術(shù)種種原因,使得許多人望而卻步。本文介紹的一套簡單實用的條形碼解決方法,希望能幫助各位完善軟件系統(tǒng)的功能。相關(guān)內(nèi)容以下內(nèi)容與條形碼,條碼編程有著內(nèi)在的聯(lián)系,建議您一并閱讀。最近更新推薦閱讀讀者關(guān)注最受關(guān)注的是什么?就在下面。\o"條碼碳帶介紹"條碼碳帶介紹\o"VB條形碼編程實例"VB條形碼編程實例\o"努力工作加薪,還是工作質(zhì)量加薪,高學(xué)歷加薪"努力工作加薪,還是工作質(zhì)量加薪,高學(xué)歷加薪\o"條碼:39碼根本知識介紹"條碼:39碼根本知識介紹\o"條碼條形碼編程技術(shù)泛談"條碼條形碼編程技術(shù)泛談RSS訂閱您可以通過RSS訂閱各欄目內(nèi)容。\o"條碼新聞"條碼新聞RSS-條碼業(yè)內(nèi)新聞資訊\o"條碼知識"條碼知識RSS-條碼知識,條形碼知識\o"RFID技術(shù)應(yīng)用"RFID技術(shù)RSS-RFID技術(shù)應(yīng)用,RFID知識\o"條碼營銷"條碼營銷RSS-條碼營銷信息及經(jīng)歷友情鏈接

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論