• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    條形碼編程摘錄

    發布: 2007-7-14 20:28 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 30次 | 進入軟件測試論壇討論

    領測軟件測試網 廣東 李玉君

      
    一、條形碼的讀取
        用過鍵盤口式的掃條碼工具的朋友就知道,它就如同在鍵盤上按下數字鍵一樣,基本不需任何編程和處理。但如果你使用的是其它接口的話,可能你就要為該設備編寫通訊代碼了。以下有一段簡單的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. Pos.net"
            .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索取。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>