<rp id="wnpn7"><ruby id="wnpn7"></ruby></rp>
<progress id="wnpn7"><track id="wnpn7"><rt id="wnpn7"></rt></track></progress>
<ruby id="wnpn7"></ruby>
<ruby id="wnpn7"><blockquote id="wnpn7"><div id="wnpn7"></div></blockquote></ruby>

    1. <em id="wnpn7"><ruby id="wnpn7"><input id="wnpn7"></input></ruby></em>
      1. <button id="wnpn7"><acronym id="wnpn7"></acronym></button><button id="wnpn7"><acronym id="wnpn7"></acronym></button>

        <rp id="wnpn7"><acronym id="wnpn7"></acronym></rp>

        <li id="wnpn7"><object id="wnpn7"><u id="wnpn7"></u></object></li>
        VB.net 2010 視頻教程 VB.net 2010 視頻教程 python基礎視頻教程
        SQL Server 2008 視頻教程 c#入門經典教程 Visual Basic從門到精通視頻教程
        當前位置:
        首頁 > 編程開發 > vb >
        • vb教程之條形碼編程實例

         廣東 李玉君

        條形碼技術廣泛應用于各行各業,你隨便拿起一本書、一包薯片都可以在外包裝上找到,利用條碼讀取機便可將這一條條黑白相間、粗細不同的垂直線條識別而轉換為具體的數值,并將這個數值返回到計算機中進行處理。正是這樣,有了條形碼技術,人們很方便就能取得該商品的有關信息如商品名稱、規格、價格等,因為每種商品都有其對應的條形碼,這個條形碼計算機(終端、服務器)中就可以迅速返回用戶,從數據庫中讀取約定的商品,信息使得銷售、進貨、存貨等等管理更有效率,也對防止假冒偽劣又一定的抑制作用。
        條碼的編碼方式有多種,不同行業,不同國家標準也不盡相同。條形碼通過線條的粗細來表達其數值。至于接口方式一般也有多種,如鍵盤口的、串行口的。一般傳感裝置是光罩式的,也有筆式的。
        上面籠籠統統地談了一些關于條形碼的知識,可幫助你更好地閱讀以下更深入的內容。條形碼有關概念先說到這里,接著是詳細具體的編程實現方法。

             
        一、條形碼的讀取
        用過鍵盤口式的掃條碼工具的朋友就知道,它就如同在鍵盤上按下數字鍵一樣,基本不需任何編程和處理。但如果你使用的是其它接口的話,可能你就要為該設備編寫通訊代碼了。以下有一段簡單的25針串口的條碼讀取器通訊代碼。
        Option Explicit
        Dim sData As String
        Private Sub Form_Load()
        With MSComm1 
           .CommPort = 3 '設為COM3,試運行的系統而定,你可提供一個Combox讓用戶選擇。
           .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

             
        Private Sub cmdEnd_Click()
          MSComm1.PortOpen = False '關閉端口
          End
        End Sub

             
        二、條形碼的生成
        看完以上關于條碼讀取的代碼是否覺得很容易呢?對,在VB上編程本來就不難。以下關于條形碼生成的代碼也是很容易理解,只需使用一個OFFICE的附帶的BarCode控件就可以輕松打印出11種不同標準的條形碼,足以滿足我們的要求。想起我書架上的一本書中的一篇用Turbo C編寫條形碼打印程序文章,長篇大論,那時不知看了n天,打了n小時字結果也不盡人意,現在真是幸福多了:)。廢話說完,得回歸正題。且看條形碼生成的代碼及有關說明。
        源代碼主要由兩個窗體(frmMain主窗體和frmOption條碼設置窗體)和兩個模塊組成(modGetScreen.bas、SysDLG32.bas)。考慮到篇幅,這里只列出部分較為關鍵的代碼。
        新建一個標準工程,添加一個名為(Microsoft Access BarCode Control9)的條形碼部件,并添加一個條碼控件到窗口,并將窗口改名為frmMain,如圖所示。由于控件比較多,這里不便細說,詳細內容請看源代碼。
        模塊modGetScreen.bas代碼如下:
        Option Explicit
        聲明BitBlt、GetDesktopWindow、GetWindowDC、ReleaseDC這幾個API函數略
        Public RegUser As Boolean

             
        Sub GetObjImage1(Obj As Object, OwnerForm As PictureBox, Picture1 As PictureBox)
          'hDC
          Dim hWndDesk As Long
          Dim hDCDesk As Long
          '區域表達變量
          Dim x As Long
          Dim y As Long
          Dim w As Long
          Dim h As Long

             
          x = Obj.Left  Screen.TwipsPerPixelX
          y = Obj.Top  Screen.TwipsPerPixelY
          w = Obj.Width  Screen.TwipsPerPixelX
          h = Obj.Height  Screen.TwipsPerPixelY
          hDCDesk = OwnerForm.hdc
          '取出圖像
          Call BitBlt(Picture1.hdc, 0, 0, w, h, hDCDesk, x, y, vbSrcCopy)
          Call ReleaseDC(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 '如果未注冊添加MASK標記
              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代碼如下:
        Option Explicit
        '條形碼設置模塊

             
        Private Sub cboBig_Click()
          BarCode1.Style = cboBig.ListIndex '改變標準
        End Sub

             
        Private Sub cboDirection_Click()
          BarCode1.Direction = cboDirection.ListIndex '改變方向
        End Sub

             
        Private Sub cboLine_Click()
          BarCode1.LineWeight = cboLine.ListIndex '改變線寬
        End Sub

             
        Private Sub cboSmall_Click()
          BarCode1.SubStyle = cboSmall.ListIndex '改變樣式
        End Sub

             
        Private Sub Check1_Click()
          BarCode1.ShowData = Check1.Value '是否顯示數據
        End Sub

             
        Private Sub cmdChange_Click()
        '設置長、寬大小
        BarWidth = BarCode1.Height
        BarHeight = BarCode1.Width
        cmdRefresh_Click
        End Sub

             
        Private Sub cmdOK_Click()
        '傳送條形碼設定到主界面
          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
        End Sub

             
        Private Sub cmdRefresh_Click()
          BarCode1.Width = BarWidth
          BarCode1.Height = BarHeight
        End Sub

             
        Private Sub Form_Load()
        LoadBarInfo
        BarWidth = BarCode1.Width
        BarHeight = BarCode1.Height
        End Sub

             
        Sub LoadBarInfo() '初始化選項
        LoadBigClass cboBig
        LoadSmallClass cboSmall
        LoadLineSize cboLine
        LoadDirection cboDirection
        End Sub
        Sub LoadBigClass(cbo As ComboBox) '條碼標準
          With cbo
            .AddItem "UPC-A"
            .AddItem "UPC-E"
            .AddItem "EAN-13"
            .AddItem "EAN-8"
            .AddItem "Case Code"
            .AddItem "Codabar (NW-T)"
            .AddItem "Code-39"
            .AddItem "Code-128"
            .AddItem "U.S. Postnet"
            .AddItem "U.S. Postal FIM"
            .AddItem "JP Post"
            .ListIndex = 2
          End With
        End Sub
        Sub LoadSmallClass(cbo As ComboBox) '條碼樣式
          With cbo
            .AddItem "Standard"
            .AddItem "2-Digit Supplement"
            .AddItem "5-Digit Supplement"
            .AddItem "POS Case Code"
            .ListIndex = 0
          End With
        End Sub
        許多人在編寫數據庫應用程序時,都想要加上條形碼功能加強工作效率,尤其是銷售管理,圖書館管理這類流量大的應用軟件,但由于條形碼技術難以掌握、標誰又多以及過去的技術種種原因,使得許多人望而卻步。本文介紹的一套簡單實用的條形碼解決方法,希望能幫助各位完善軟件系統的功能。文章源代碼可以發信到peedy@shareware.com.cn索取。
        相關教程
                
        免费看成年人视频大全_免费看成年人视频在线观看