日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
兩步精通VB.NET條形碼編程

現(xiàn)在的商品包裝、超市收銀等很多位置都會出現(xiàn)條形碼,在我們的VB.NET項目中也經(jīng)常會遇到涉及到VB.NET條形碼編程的工作,這里從條形碼的應(yīng)用和原理出發(fā),向大家介紹如何進行VB.NET的條形碼編程。

創(chuàng)新互聯(lián)建站基于成都重慶香港及美國等地區(qū)分布式IDC機房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)遂寧托管服務(wù)器報價,主機托管價格性價比高,為金融證券行業(yè)服務(wù)器托管,ai人工智能服務(wù)器托管提供bgp線路100M獨享,G口帶寬及機柜租用的專業(yè)成都idc公司。

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

條碼的編碼方式有多種,不同行業(yè),不同國家標準也不盡相同。條形碼通過線條的粗細來表達其數(shù)值。至于接口方式一般也有多種,如鍵盤口的、串行口的。一般傳感裝置是光罩式的,也有筆式的。
上面籠籠統(tǒng)統(tǒng)地談了一些關(guān)于條形碼的知識,可幫助你更好地閱讀以下更深入的內(nèi)容。條形碼有關(guān)概念先說到這里,接著是詳細具體的編程實現(xiàn)方法。

一、VB.NET條形碼編程中的讀取

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

 
 
 
  1. Option Explicit  
  2. Dim sData As String 
  3. Private Sub Form_Load()  
  4. With MSComm1   
  5.    .CommPort = 3 '設(shè)為COM3,試運行的系統(tǒng)而定,你可提供一個Combox讓用戶選擇。  
  6.    .PortOpen = True '打開通訊端口  
  7. End With 
  8. End Sub 
  9.     
  10. Private Sub MSComm1_OnComm()  
  11.     
  12.   Dim EndPos As Integer 
  13.   Select Case MSComm1.CommEvent  
  14.     Case comEvReceive '當有數(shù)據(jù)傳送過來時  
  15.       sData = sData & Trim(MSComm1.Input)  
  16.       '檢索回車,通常讀卡機每組數(shù)據(jù)結(jié)尾都返回一個回車作為結(jié)束符  
  17.       EndPos = InStr(1, sData, Chr(13))  
  18.       If EndPos = 0 Then '如果未結(jié)束就繼續(xù)努力  
  19.       Else '讀完一組。  
  20.         lblBarCode.Caption = sData '顯示一組條形碼  
  21.         With lstBarCode  
  22.           .AddItem Mid(sData, 1, EndPos - 1) '添加一組條形碼到列表  
  23.         End With 
  24.         sData = "" '清空  
  25.       End If 
  26.   End Select 
  27. End Sub 
  28.  
  29.        
  30. Private Sub cmdEnd_Click()  
  31.   MSComm1.PortOpen = False '關(guān)閉端口  
  32.   End 
  33. End Sub 

二、VB.NET條形碼編程中的生成

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

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

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

模塊modGetScreen.bas代碼如下:

Option Explicit

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

 
 
 
  1. Public RegUser As Boolean    
  2. Sub GetObjImage1(Obj As Object, OwnerForm As PictureBox, Picture1 As PictureBox)  
  3.   'hDC  
  4.   Dim hWndDesk As Long 
  5.   Dim hDCDesk As Long 
  6.   '區(qū)域表達變量  
  7.   Dim x As Long 
  8.   Dim y As Long 
  9.   Dim w As Long 
  10.   Dim h As Long 
  11.        
  12.   x = Obj.Left  Screen.TwipsPerPixelX  
  13.   y = Obj.Top  Screen.TwipsPerPixelY  
  14.   w = Obj.Width  Screen.TwipsPerPixelX  
  15.   h = Obj.Height  Screen.TwipsPerPixelY  
  16.   hDCDesk = OwnerForm.hdc  
  17.   '取出圖像  
  18.   Call BitBlt(Picture1.hdc, 0, 0, w, h, hDCDesk, x, y, vbSrcCopy)  
  19.   Call ReleaseDC(hWndDesk, hDCDesk)  
  20.        
  21. End Sub 

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

 
 
 
  1. Private Sub cmdPrint_Click()  
  2. '生成條形碼圖像  
  3.   Dim r As Long, i As Integer, t As String,cfile As String '臨時變量  
  4.   t = BarCode  
  5.   For i = 0 To Val(Times) - 1  
  6.       
  7.     BarCode1.Value = BarCode + i  
  8.     DoEvents   
  9.     Picture1.Refresh  
  10.      
  11.     GetObjImage1 BarCode1, Conel, Picture1  
  12.       
  13.     If RegUser = False Then '如果未注冊添加MASK標記  
  14.       Picture1.PaintPicture Picture2.Picture, 300, 300  
  15.     End If 
  16.       
  17.     If Dir(SavePath, vbDirectory) = "" Then MkDir SavePath  
  18.       
  19.     SavePath = SavePath & IIf(Right(SavePath, 1) <> "", "", "")  
  20.       
  21.     cfile = SavePath & BarCode1.Value & ".bmp" 
  22.  
  23.     SavePicture Picture1.Image, cfile '將條形碼保存為圖像文件以便打印  
  24.   Next 
  25.   BarCode = t  
  26.        
  27. End Sub 

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

Option Explicit

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

 
 
 
  1. Private Sub cboBig_Click()  
  2.   BarCode1.Style = cboBig.ListIndex '改變標準  
  3. End Sub 
  4.  
  5.        
  6. Private Sub cboDirection_Click()  
  7.   BarCode1.Direction = cboDirection.ListIndex '改變方向  
  8. End Sub 
  9.  
  10.        
  11. Private Sub cboLine_Click()  
  12.   BarCode1.LineWeight = cboLine.ListIndex '改變線寬  
  13. End Sub 
  14.  
  15.        
  16. Private Sub cboSmall_Click()  
  17.   BarCode1.SubStyle = cboSmall.ListIndex '改變樣式  
  18. End Sub 
  19.  
  20.        
  21. Private Sub Check1_Click()  
  22.   BarCode1.ShowData = Check1.Value '是否顯示數(shù)據(jù)  
  23. End Sub 
  24.  
  25.        
  26. Private Sub cmdChange_Click()  
  27. '設(shè)置長、寬大小  
  28. BarWidth = BarCode1.Height  
  29. BarHeight = BarCode1.Width  
  30. cmdRefresh_Click  
  31. End Sub 
  32.  
  33.        
  34. Private Sub cmdOK_Click()  
  35. '傳送條形碼設(shè)定到主界面  
  36.   With frmMain.BarCode1  
  37.     .LineWeight = BarCode1.LineWeight  
  38.     .Style = BarCode1.Style  
  39.     .SubStyle = BarCode1.SubStyle  
  40.     .Direction = BarCode1.Direction  
  41.     .Width = BarCode1.Width  
  42.     .Height = BarCode1.Height  
  43.     .ShowData = BarCode1.ShowData  
  44.     Me.Hide  
  45.   End With 
  46.   With frmMain  
  47.     .Picture1.Width = .BarCode1.Width  
  48.     .Picture1.Height = .BarCode1.Height  
  49.     .Conel.Width = .BarCode1.Width  
  50.     .Conel.Height = .BarCode1.Height  
  51.   End With 
  52. End Sub 
  53.  
  54.        
  55. Private Sub cmdRefresh_Click()  
  56.   BarCode1.Width = BarWidth  
  57.   BarCode1.Height = BarHeight  
  58. End Sub 
  59.  
  60.        
  61. Private Sub Form_Load()  
  62. LoadBarInfo  
  63. BarWidth = BarCode1.Width  
  64. BarHeight = BarCode1.Height  
  65. End Sub 
  66.  
  67.        
  68. Sub LoadBarInfo() '初始化選項  
  69. LoadBigClass cboBig  
  70. LoadSmallClass cboSmall  
  71. LoadLineSize cboLine  
  72. LoadDirection cboDirection  
  73. End Sub 
  74. Sub LoadBigClass(cbo As ComboBox) '條碼標準  
  75.   With cbo  
  76.     .AddItem "UPC-A" 
  77.     .AddItem "UPC-E" 
  78.     .AddItem "EAN-13" 
  79.     .AddItem "EAN-8" 
  80.     .AddItem "Case Code" 
  81.     .AddItem "Codabar (NW-T)" 
  82.     .AddItem "Code-39" 
  83.     .AddItem "Code-128" 
  84.     .AddItem "U.S. Postnet" 
  85.     .AddItem "U.S. Postal FIM" 
  86.     .AddItem "JP Post" 
  87.     .ListIndex = 2  
  88.   End With 
  89. End Sub 
  90. Sub LoadSmallClass(cbo As ComboBox) '條碼樣式  
  91.   With cbo  
  92.     .AddItem "Standard" 
  93.     .AddItem "2-Digit Supplement" 
  94.     .AddItem "5-Digit Supplement" 
  95.     .AddItem "POS Case Code" 
  96.     .ListIndex = 0  
  97.   End With 
  98.  
  99. End Sub 

許多人在編寫數(shù)據(jù)庫應(yīng)用程序時,都想要加上條形碼功能加強工作效率,尤其是銷售管理,圖書館管理這類流量大的應(yīng)用軟件,但由于條形碼技術(shù)難以掌握、標誰又多以及過去的技術(shù)種種原因,使得許多人望而卻步。本文介紹的一套簡單實用的條形碼解決方法,希望能幫助各位完善軟件系統(tǒng)的功能。

【編輯推薦】

  1. 淺談VB.NET語言與.NET開發(fā)語言關(guān)系
  2. 淺析VB.NET語言到底帶來了什么
  3. 講解VB.NET語言學習經(jīng)驗
  4. 簡單講述VB.NET多重繼承
  5. VB.NET調(diào)用Window API經(jīng)驗總結(jié)

當前標題:兩步精通VB.NET條形碼編程
當前路徑:http://www.5511xx.com/article/dpeippg.html