成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

兩步精通VB.NET條形碼編程

開發(fā) 后端
在我們的VB.NET項(xiàng)目中,經(jīng)常會(huì)遇到涉及到條形碼編程的問題,VB.NET條形碼編程是很多程序員比較困惑的事,究竟什么是條形碼,如何在VB.NET中進(jìn)行條形碼編程?本文也許會(huì)給你一個(gè)答案。

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

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

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

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

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

  1. Option Explicit  
  2. Dim sData As String 
  3. Private Sub Form_Load()  
  4. With MSComm1   
  5.    .CommPort = 3 '設(shè)為COM3,試運(yùn)行的系統(tǒng)而定,你可提供一個(gè)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 '當(dāng)有數(shù)據(jù)傳送過來時(shí)  
  15.       sData = sData & Trim(MSComm1.Input)  
  16.       '檢索回車,通常讀卡機(jī)每組數(shù)據(jù)結(jié)尾都返回一個(gè)回車作為結(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)于條碼讀取的代碼是否覺得很容易呢?對(duì),在VB上編程本來就不難。以下關(guān)于條形碼生成的代碼也是很容易理解,只需使用一個(gè)OFFICE的附帶的BarCode控件就可以輕松打印出11種不同標(biāo)準(zhǔn)的條形碼,足以滿足我們的要求。想起我書架上的一本書中的一篇用Turbo C編寫條形碼打印程序文章,長(zhǎng)篇大論,那時(shí)不知看了n天,打了n小時(shí)字結(jié)果也不盡人意,現(xiàn)在真是幸福多了:)。廢話說完,得回歸正題。且看條形碼生成的代碼及有關(guān)說明。

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

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

模塊modGetScreen.bas代碼如下:

Option Explicit

聲明BitBlt、GetDesktopWindow、GetWindowDC、ReleaseDC這幾個(gè)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ū)域表達(dá)變量  
  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 '臨時(shí)變量  
  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 '如果未注冊(cè)添加MASK標(biāo)記  
  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 '改變標(biāo)準(zhǔn)  
  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è)置長(zhǎng)、寬大小  
  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() '初始化選項(xiàng)  
  69. LoadBigClass cboBig  
  70. LoadSmallClass cboSmall  
  71. LoadLineSize cboLine  
  72. LoadDirection cboDirection  
  73. End Sub 
  74. Sub LoadBigClass(cbo As ComboBox) '條碼標(biāo)準(zhǔn)  
  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ù)庫(kù)應(yīng)用程序時(shí),都想要加上條形碼功能加強(qiáng)工作效率,尤其是銷售管理,圖書館管理這類流量大的應(yīng)用軟件,但由于條形碼技術(shù)難以掌握、標(biāo)誰(shuí)又多以及過去的技術(shù)種種原因,使得許多人望而卻步。本文介紹的一套簡(jiǎn)單實(shí)用的條形碼解決方法,希望能幫助各位完善軟件系統(tǒng)的功能。

 

【編輯推薦】

  1. 淺談VB.NET語(yǔ)言與.NET開發(fā)語(yǔ)言關(guān)系
  2. 淺析VB.NET語(yǔ)言到底帶來了什么
  3. 講解VB.NET語(yǔ)言學(xué)習(xí)經(jīng)驗(yàn)
  4. 簡(jiǎn)單講述VB.NET多重繼承
  5. VB.NET調(diào)用Window API經(jīng)驗(yàn)總結(jié)
責(zé)任編輯:佚名 來源: IT傳媒網(wǎng)
相關(guān)推薦

2009-11-03 13:02:28

VB.NET Wind

2009-10-20 09:42:16

VB.NET編程

2009-10-21 16:40:43

Oracle用戶表空間

2009-10-23 17:03:18

VB.NET事件編程

2009-10-28 15:38:30

VB.NET網(wǎng)絡(luò)

2011-07-07 16:53:56

iOS 條形碼掃描

2009-11-10 13:08:13

VB.NET編程技巧

2010-01-14 17:11:17

VB.NET枚舉

2009-11-02 15:08:58

VB.NET Obje

2009-10-14 15:34:29

VB.NET窗體編程模

2009-11-02 15:16:07

VB.NET編程

2024-09-30 10:18:51

2012-06-14 13:09:50

PHP

2009-10-29 11:41:27

VB.NET寫Obje

2009-10-30 13:12:40

VB.NET創(chuàng)建類

2009-11-02 14:55:52

VB.NET Obje

2009-11-10 15:30:46

VB.NET編程原則

2015-10-28 13:33:50

二維碼條形碼掃描源碼

2023-08-15 19:24:37

Python條形碼

2009-10-21 09:46:13

VB使用ArrayLi
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美日韩精品久久久免费观看 | 精品真实国产乱文在线 | 久久精品国产亚洲 | www.蜜桃av | 天天干天天操 | 特级丰满少妇一级aaaa爱毛片 | 欧美一区二区三区视频在线 | 精品不卡| 看片网站在线 | 亚洲成av | 拍拍无遮挡人做人爱视频免费观看 | 亚洲看片网站 | 国产麻豆乱码精品一区二区三区 | 成人动慢| 日本在线一区二区三区 | www国产成人免费观看视频,深夜成人网 | 天堂资源| 日韩av手机在线观看 | 狠狠草视频 | 日韩综合在线 | 蜜桃视频在线观看免费视频网站www | 亚洲va中文字幕 | 成人国产精品免费观看 | 国产91久久久久久 | 有码在线 | 亚洲一区 中文字幕 | 国产日韩一区二区三免费 | 久久久久久国产精品 | 瑞克和莫蒂第五季在线观看 | 久久国产麻豆 | 一级黄色av电影 | 亚洲一区二区三区在线免费 | 天天看天天操 | 天堂一区二区三区 | 欧美精品福利视频 | 国产一区亚洲 | 日韩欧美网 | 欧美色性 | 国产精品久久久av | 亚洲视频在线一区 | www.97国产|