【正文】
dcb)DCB the contents within structure write to establish toward the stringDo EventsThe bWrite State= WriteFile(hComDev,1plnBuffer, 1, dwBytesRead, NULL)39。structure to acquire current operation appearance. Use Read File receive buffer area to read from the string data, data before reading, use Clear Comm Error the function acquire word stanza within buffer area number.3, use Clothes Handle function close string line municationThis method munication code is as follows:The Dim ComDev, Err, Errl, bWriteState, dwBytesRead,dwBytesRead As LongThe ComDev = CreateFiles(COM 1, GENERICREAD|GENERIC WRITE, 0, NULL,OPEN EXISTING, FILE ATTRIBUTE NORMAL, NULL) open COM 1The if ComDev=1 ThenMsgboxcan not open in a string of line:Exit SubErr= SetupComm(hComDev, 1024, 512), establish to place the size of receiving the buffer area and exportation buffer areaThe GetCommState(hComDev, amp。39。Output: Write a number toward the buffer area according to:In Buffer Size: receive the size of buffer area。判斷通信口是否打開On Error Resume Next.PortOpen = True 39。 amp。錯(cuò)誤處理MsgBox 串口被占用或此串口不存在!通信無效!, 16, 錯(cuò)誤提示Exit SubEnd IfEnd IfEnd WithEnd SubPrivate Sub MSComm1_OnComm()Dim Crpos%Select Case ‘借著取代底下每一個(gè)Case語(yǔ)句來處理每個(gè)事件與錯(cuò)誤事件 Case EvCD ’CD線的狀態(tài)發(fā)生變化 Case EvCTS ‘CTS線的狀態(tài)發(fā)生變化 Case EvDSR ’DSR線的狀態(tài)發(fā)生變化 Case EvRing ‘Ring Indicator 變化 Case EvReceive ’收到RThreshold of GotStr = GotStr + Trim() ‘將數(shù)據(jù)不斷地接入 Crpos = InStr(1, GotStr, Chr(13)) ’判斷是否遇到結(jié)尾字符 ‘若已收到結(jié)尾字符則進(jìn)行以下的作業(yè) If Crpos 0 Then = GotStr ’顯示新值,從而獲得條形碼 GotStr = ‘清空接收的字符串 End If Case EvSend ’傳輸緩沖區(qū)有Sthreshold個(gè)字符 End SelectEnd SubPrivate Sub Text1_GotFocus() = 0 = Len()End SubPrivate Sub Text2_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn Then 39。定義MSFlexGrid1表的總行數(shù)、總列數(shù) = 102 = 5 39。執(zhí)行登錄代碼ElseMsgBox 密碼不正確, , 登錄信息 39。 amp。老師每周百忙時(shí)間之中抽出時(shí)間來為我們指導(dǎo)和講解,并提出了很多的寶貴意見和方法才使我能夠在很有限的時(shí)間里學(xué)到很多知識(shí)。在學(xué)習(xí)中遇到了很多的困難,主要是現(xiàn)在語(yǔ)言不理解,控件不熟悉,界面的協(xié)和感,老師在我解決這些問題上給了我很大的幫助。這個(gè)模塊讓我學(xué)會(huì)了很多軟件開發(fā)過程中必須擁有的本領(lǐng),這是為我以后從事這方面的事業(yè),提供了很重要的學(xué)習(xí)方法。那就是串口調(diào)試的問題!當(dāng)把掃描器實(shí)物買回來過后,我就在想是使用USB來直接輸入條形碼,還是利用U轉(zhuǎn)串口的方法,也就是用串口的方法來實(shí)現(xiàn)商品條形碼的輸入。這就實(shí)現(xiàn)了小型超市收銀臺(tái)界面的設(shè)計(jì),銷售人員可以很簡(jiǎn)單的來操作從而實(shí)現(xiàn)商品的銷售。如果銷售員登陸的時(shí)候賬號(hào)輸入錯(cuò)誤就會(huì)提醒沒有這賬號(hào)。點(diǎn)擊商品銷售快捷鍵,進(jìn)入輸入賬號(hào)和密碼,然后利用:Set Rs = (select 密碼 from myfile where 賬號(hào)=39。本次設(shè)計(jì)屬于小型的數(shù)據(jù)管理系統(tǒng),有商品信息管理,登錄人員信息管理。 銷售模塊在登錄模塊中進(jìn)行成功登錄后,進(jìn)入商品后臺(tái)管理系統(tǒng),然后我們點(diǎn)擊菜單欄里的商品入庫(kù)界面。[10]本次設(shè)計(jì)主要用了VB里面的adodc,msflexgrid控件來實(shí)現(xiàn)后臺(tái)數(shù)據(jù)庫(kù)的顯示,利用SQL查詢語(yǔ)句進(jìn)行進(jìn)行條形碼查詢商品信息,利用msflexgrid控件進(jìn)行賬單顯示。通信格式上,一般卡片閱讀機(jī)使用的通信格式是:發(fā)送速度9600bps、 No Parity、8個(gè)數(shù)據(jù)位、1個(gè)停止位;讀取到條形碼后,會(huì)將所讀取到的條形碼以字符串的方式發(fā)送出來,RS232的串口的話會(huì)由其發(fā)送引腳根據(jù)通信協(xié)議送出一連的文字,而且在每組字符串的最尾端會(huì)加上CR,因此判斷是否發(fā)送完畢的方式就是在收到數(shù)據(jù)后,判斷其結(jié)尾字符是否出現(xiàn),并將結(jié)尾字符前的字符串讀出。激光掃描儀的基本的工作原理:手持的激光掃描器是通過一個(gè)激光二極管發(fā)出一束光線,光纖照在回?cái)[動(dòng)的鏡子上,反射后的光線穿過閱讀窗照射到商品的條形碼上,光線經(jīng)過條的黑白的不同敏感度,把效果返回到閱讀器,由一個(gè)鏡子進(jìn)行采集、聚焦,通過光電轉(zhuǎn)換器轉(zhuǎn)換成電信號(hào),該信號(hào)將通過掃描器或終端上的譯碼軟件進(jìn)行譯碼。[1]條形碼(barcode)是用各種寬不相同的很多個(gè)黑條和空白,有一定的編碼排列規(guī)則,用以表達(dá)一組碼信息的圖形符。 小型超市系統(tǒng)技術(shù)可行性分析經(jīng)過對(duì)這次設(shè)計(jì)的軟件在設(shè)計(jì)上的軟件要求,我使用了Microsoft 公式的兩款軟件進(jìn)行開發(fā),利用visual basic工具的各種面向?qū)ο蟮脑O(shè)計(jì),在收賬單窗體上利用簡(jiǎn)單的ADO控件進(jìn)行控制。3) 商品銷售界面模塊:進(jìn)行商品掃描上結(jié)賬單,進(jìn)行結(jié)賬操作。整體是一種對(duì)本次設(shè)計(jì)做了一個(gè)研究前提。當(dāng)?shù)搅耍?959~1964年)這段時(shí)間時(shí)候,人們開始采用磁芯存儲(chǔ)器等高新材料,從而提高了計(jì)算機(jī)的計(jì)算能力,這時(shí)候人們開始在一些小型超市收款系統(tǒng)上面下功夫,開發(fā)一些小型的超市管理系統(tǒng)。然而這一切的一切都讓它在小型超市上造成了大量的繁瑣工作,讓其在小型超市上就是一種累贅,所以這是它的優(yōu)點(diǎn),同時(shí)也是它的缺點(diǎn)。本設(shè)計(jì)主要是針對(duì)小型超市設(shè)計(jì)的,去除了那些大型軟件上的不必要功能,只留下了簡(jiǎn)單的管理員身體確認(rèn),商品入庫(kù),銷售三個(gè)模塊為一體的小型超市收款機(jī)設(shè)計(jì)。然而進(jìn)過調(diào)查盡管現(xiàn)在很多超市都使用了超市收銀系統(tǒng)來管理商品,但是這些系統(tǒng)并不是針對(duì)小型超市的是針對(duì)那種大型超市,那么問題就來了:一軟件開發(fā)的技術(shù)可行性在小型超市就達(dá)不到。系統(tǒng)的管理員登陸可以防止非工作人員操作系統(tǒng);系統(tǒng)的商品入庫(kù)可以儲(chǔ)存大量的商品信息,同時(shí)還提供了查詢,添加,等功能;系統(tǒng)的外接設(shè)備主要是激光條形掃描器,用來掃描商品條形碼來進(jìn)行商品的銷售管理。這些高新的信息技術(shù)還可以幫人們完成難以完成的任務(wù)。小型超市作為我國(guó)銷售商品種類最多,人員流動(dòng)量最快,具有難以管理的特征。根據(jù)現(xiàn)在的實(shí)際情況,好多小型超市不能很好的管理每一件商品,給顧客找錢速度慢,造成了大量的顧客需要排隊(duì)買東西,這樣人們會(huì)厭煩來這家超市買東西,還有不好進(jìn)行商品調(diào)價(jià),在調(diào)價(jià)后銷售人員還得關(guān)注每件產(chǎn)品的價(jià)格,造成了銷售人員的大量腦力勞動(dòng)。傳統(tǒng)的大型超市的優(yōu)點(diǎn)其實(shí)很明顯的,管理起來很詳細(xì)。它們是做生意的,當(dāng)然明白其中的利益損失,所以這些傳統(tǒng)的超市收款機(jī)系統(tǒng)存在資源浪費(fèi),操作復(fù)雜,成本太高的缺點(diǎn)。(2)實(shí)驗(yàn)法:通過這一兩個(gè)月時(shí)間進(jìn)行大量的代碼編寫和硬件調(diào)試,在通過實(shí)驗(yàn)的方法找到自己的不足之處。本次設(shè)計(jì)要求實(shí)現(xiàn)的功能是完成銷售員銷售,和商品入庫(kù)功能,利用Microsoft Access軟件來建立數(shù)據(jù)庫(kù)來進(jìn)行商品信息的錄入存儲(chǔ)。而運(yùn)行這軟件只需要有window系統(tǒng)的計(jì)算機(jī),和消耗一些電源就可以實(shí)現(xiàn)以上的功能。第3章 硬件設(shè)計(jì)這條形碼掃描器分為手持式條形碼掃描器和架子式,CCD掃描器是利用光電耦合原理來制作的, 對(duì)條形碼印刷圖案進(jìn)行成像處理, 然后再進(jìn)行翻譯編碼。[2]此次設(shè)計(jì)主要是利用軟件實(shí)現(xiàn),而硬件上必須選擇能夠?qū)崿F(xiàn)條形碼的信息獲取良好的激光掃描器。如今在各大領(lǐng)域都有應(yīng)用,如今應(yīng)用到超市收款機(jī)中,這為軟件開發(fā)節(jié)省了許多串口的銜接。USB它的最大特點(diǎn)是支持帶電插或拔,即插即用,傳輸速度快。 后臺(tái)管理系統(tǒng)利用賬號(hào)密碼登陸后,運(yùn)行到后臺(tái)管理系統(tǒng),點(diǎn)擊上面的菜單:商品銷售界面,就進(jìn)入了商品的銷售模塊了。這就形成了一體化的查詢機(jī)制,利用SQL語(yǔ)言中的select語(yǔ)句進(jìn)行查詢,從而實(shí)現(xiàn)調(diào)用硬盤上存儲(chǔ)的數(shù)據(jù)的信息。 + txtUserName + 39。 進(jìn)行條形碼對(duì)比,查詢商品,入賬,最后按下結(jié)算按鈕,進(jìn)行結(jié)算。這學(xué)習(xí)過程中讓我深刻體會(huì)到軟件開發(fā)中一種整體思維,這是一種不可避免的需求。然而這樣就形成了直接把數(shù)據(jù)庫(kù)中的數(shù)據(jù)全部顯示到DataGrid控件上了,這不是我要的結(jié)果,我需要的結(jié)果是先不在上面顯示,而是在掃描商品的條形碼后,按鍵過后才能顯示出來,如果這樣,按鍵來查詢商品信息,只能進(jìn)行單個(gè)的商品查詢,所以這控件是一個(gè)錯(cuò)誤的選擇。這個(gè)模塊,是我一開始創(chuàng)建的模塊,因?yàn)槲乙婚_始看的書本上的只是是關(guān)于控件的知識(shí),讓我了解了很多Visual Basic ,和使用方法。經(jīng)過測(cè)試各個(gè)模塊運(yùn)行順暢,在市場(chǎng)上也具有了一定的使用價(jià)值。致 謝時(shí)間如流水,大四的最后一個(gè)學(xué)期馬上結(jié)束了,畢業(yè)設(shè)計(jì)讓我學(xué)到了很多專業(yè)知識(shí),豐富了理論文化知識(shí),增強(qiáng)了實(shí)踐操作能力,提高了軟件開發(fā)的思想。先聲明一個(gè)conn對(duì)象Dim Conn As New 39。)If ThenMsgBox 查無此賬號(hào), , 登陸信息 39。定義MSFlexGrid1表的總行數(shù)、總列數(shù) = 102 = 5 39。串口每收到1字節(jié)的數(shù)據(jù),即產(chǎn)生接收中斷If Not .PortOpen Then 39。Persist Security Info=False = select * from Sto_Sys where 商品條形碼=39。波特率為XXXXX,無檢驗(yàn),8位數(shù)據(jù),1位停止位.InBufferSize = 1024.OutBufferSize = 1024.InputMode = 0 39。Portpopen: constitution or return to a string of munication appearance of。The affairs drives a way from Windows 98 notice applied the procedure some affairs when take place, then according to the matter taken place The feeling es to carries on an operation to the string. These two kinds of methods each beneficial fraud and oneself apply of realm, so in the different correspondence system, can according to the dissimilarity39。establish Buffer area sizeThe MS CommlPortOpen=True39。data is 7dcb . StopBits=139。close an equipments sentence handleThree, end languageIn the VB under environments in two kinds of methods of development string line munication procedure, make use of API the function write a string of munication procedure more plicated, need to have a certain plait distance experience, its advantage is to carry out function more abundant, application noodles more extensive, mo