【文章內(nèi)容簡(jiǎn)介】
設(shè)計(jì)和窗體說(shuō)明與進(jìn)貨統(tǒng)計(jì)大同小異,也一樣一個(gè)選項(xiàng)卡為例進(jìn)行說(shuō)明,現(xiàn)以”今日銷(xiāo)貨”為例:加入兩個(gè)datagrid控件,兩個(gè)Adodc控件,一個(gè)Label控件,一個(gè)textbox控件和8個(gè)mand控件。其中兩個(gè)Adodc的數(shù)據(jù)源連接都是采用的相對(duì)路徑與sell表連接的,兩個(gè)Adodc連接的SQL語(yǔ)句分別如下:select * from sell select 生產(chǎn)廠商,sum(總金額) as 各廠商銷(xiāo)貨總金額 from sell group by 生產(chǎn)廠商。 (9)查看進(jìn)貨表 其界面的設(shè)計(jì)比較簡(jiǎn)單,只是一個(gè)datagrid控件,一個(gè)Adodc控件(已隱藏)和四個(gè)Command控件。本窗體的主要設(shè)計(jì)在于其四個(gè)命令按紐在進(jìn)貨表為空時(shí)不可用。(10)查看進(jìn)貨表 本窗體的主要設(shè)計(jì)目的是設(shè)置一個(gè)查詢(xún)商品庫(kù)存表的條件 。具體操作為:為查詢(xún)現(xiàn)存商品表設(shè)立了一個(gè)簡(jiǎn)單的查詢(xún)條件,一個(gè)是直接顯示現(xiàn)存的全部商品表,一個(gè)是按條件對(duì)現(xiàn)存商品進(jìn)行查詢(xún),用戶可以根據(jù)自己需要按商品名稱(chēng)或生產(chǎn)廠商分別進(jìn)行查找。該窗體的實(shí)現(xiàn)是要在窗體集的變量中設(shè)置一個(gè)記錄集rs_goods,用來(lái)控制goods表,然后將記錄集在打開(kāi)窗體時(shí)的select語(yǔ)句設(shè)為與本窗體的text1和text2有關(guān)的SQL語(yǔ)句。然后讓現(xiàn)存商品表顯示出來(lái)。(11)管理員工表 本窗體的制作目的在于方便對(duì)管理員用戶的管理, 本節(jié)前面曾經(jīng)提過(guò)系統(tǒng)初始化的功能,但其初始化并不能對(duì)員工表進(jìn)行操作,當(dāng)管理員登陸本系統(tǒng)時(shí),可以訪問(wèn)此窗體,對(duì)用戶表進(jìn)行維護(hù)。但不能對(duì)管理員進(jìn)行刪除操作,此操作已被本人屏蔽。 (12)更換用戶功能 在一個(gè)超市可能會(huì)存在員工交接班的現(xiàn)象,為了方便用戶交接班的操作順利進(jìn)行,在系統(tǒng)管理模塊中做了一個(gè)更換用戶子菜單,該子菜單便順利的實(shí)現(xiàn)了此功能,而且它也方便了管理員的登陸管理。(13)修改密碼 為了方便用戶使用,在本模塊中還設(shè)置了一個(gè)修改密碼窗體,該窗體主要包括一個(gè)用戶名輸入、一個(gè)原密碼輸入和兩個(gè)新密碼輸入。此窗體實(shí)現(xiàn)的功能是顯而易見(jiàn)的,方便了用戶的操作,增加了系統(tǒng)使用的安全性。具體做法是:先要求用戶將四個(gè)必填項(xiàng)填寫(xiě)完整,然后對(duì)兩個(gè)新密碼進(jìn)行相同判斷,如果相同,則將記錄集rs_employee打開(kāi),對(duì)用戶名和原密碼進(jìn)行核對(duì),如果相同,就將老密碼替換為新密碼。本節(jié)總結(jié):對(duì)于本超市管理系統(tǒng)功能的實(shí)現(xiàn),重點(diǎn)和難點(diǎn)有以下幾處:交易管理模塊:在本模塊中,對(duì)于商品的進(jìn)貨、銷(xiāo)貨和退貨操作時(shí),都要注意其操作過(guò)程中商品數(shù)量及其它屬性的變化,本人在制做此模塊時(shí),采用了指導(dǎo)教師的提供給我的思想:進(jìn)貨登記時(shí),將進(jìn)貨信息添加到進(jìn)貨表中。然后對(duì)商品庫(kù)存表的編號(hào)進(jìn)行判斷,如果進(jìn)貨信息的商品編號(hào)存在,則將商品庫(kù)存表中相應(yīng)記錄的商品數(shù)量做對(duì)應(yīng)調(diào)整;如果商品編號(hào)不存在,則直接將進(jìn)貨信息添加到商品庫(kù)存表中。銷(xiāo)貨登記時(shí),先將商品的銷(xiāo)貨信息添加到銷(xiāo)貨表中,然后將商品庫(kù)存表中響應(yīng)的商品的數(shù)量做相對(duì)調(diào)整,保證商品數(shù)量的一致性。退貨登記時(shí)將退貨信息添加到退貨表中,然后將退貨數(shù)量從銷(xiāo)售表中減掉,最后將退貨數(shù)量加到商品庫(kù)存表中。在本系統(tǒng)管理員登陸時(shí),顯示給管理員的第一個(gè)界面:系統(tǒng)初始化也是本系統(tǒng)的又一大功能特色,其實(shí)現(xiàn)過(guò)程中要嚴(yán)格控制每一個(gè)記錄集對(duì)相應(yīng)數(shù)據(jù)表的打開(kāi)與關(guān)閉操作。4.3程序流程圖和ER圖設(shè)計(jì)登錄界面是是 面界主面界主查看數(shù)據(jù)表銷(xiāo)售統(tǒng)計(jì)進(jìn)貨統(tǒng)計(jì)退貨登記銷(xiāo)售登記進(jìn)貨登記是是否管理員否各模塊的ER圖設(shè)計(jì):1.交易管理模塊:用于管理商品的進(jìn)貨,銷(xiāo)售,退貨登記的操作。實(shí)體ER圖如下: 交易管理 銷(xiāo)售登記退貨登記進(jìn)貨登記 2.進(jìn)貨統(tǒng)計(jì)管理:主要用于對(duì)商品每日,每月,第季度,每年的進(jìn)貨情況進(jìn)行統(tǒng)計(jì)管理,此功能只有以管理員的身份進(jìn)入時(shí)才為可用狀態(tài)。實(shí)體ER圖如下: 進(jìn)貨統(tǒng)計(jì)管理 本季度進(jìn)貨今年進(jìn)貨本月進(jìn)貨今日進(jìn)貨3.銷(xiāo)售統(tǒng)計(jì)管理:主要用于對(duì)商品每日,每月,第季度,每年的銷(xiāo)售情況進(jìn)行統(tǒng)計(jì)管理,此功能只有以管理員的身份進(jìn)入時(shí)才為可用狀態(tài)。實(shí)體ER圖如下:銷(xiāo)售統(tǒng)計(jì)管理 本季度銷(xiāo)售今日銷(xiāo)售今年銷(xiāo)售本月銷(xiāo)售4.查看數(shù)據(jù)表:主要能查看進(jìn)貨表,商品信息表,銷(xiāo)售表,退貨表等進(jìn)行查看,以實(shí)現(xiàn)對(duì)商品信息的及時(shí)了解。實(shí)體ER圖如下:查看數(shù)據(jù)表 進(jìn)貨商表管理員工表進(jìn)貨表退貨表銷(xiāo)售表現(xiàn)存商品表結(jié)束語(yǔ)本次超市管理系統(tǒng)是基于Visual Basic 的ADO技術(shù)設(shè)計(jì)的。選擇了Access 2000作為后端開(kāi)發(fā)工具,開(kāi)發(fā)數(shù)據(jù)庫(kù)功能,并選擇了Visual Basic 。在該系統(tǒng)開(kāi)發(fā)中我通過(guò)建立數(shù)據(jù)庫(kù),以及對(duì)各種信息庫(kù)的開(kāi)發(fā)(如:添加、查詢(xún)、修改、刪除)及設(shè)計(jì)系統(tǒng)維護(hù)安全部分,完成了此次對(duì)超市管理系統(tǒng)的設(shè)計(jì)。在本次的開(kāi)發(fā)過(guò)程中,我意識(shí)到最重要的環(huán)節(jié)在于對(duì)系統(tǒng)的流程、功能模塊、框架結(jié)構(gòu)等方面的把握和設(shè)計(jì)。在需求分析結(jié)束以后,我們對(duì)一個(gè)系統(tǒng)需要具有哪些功能已經(jīng)有了一定的認(rèn)識(shí),而如何以一個(gè)簡(jiǎn)潔、合理的系統(tǒng)結(jié)構(gòu)去實(shí)現(xiàn)用戶要求的功能就成為系統(tǒng)開(kāi)發(fā)的關(guān)鍵環(huán)節(jié)。在這方面我可以說(shuō)是深有體會(huì)。由于有些急于求成,在對(duì)ADO技術(shù)不是很了解的情況下就開(kāi)始著手程序開(kāi)發(fā),所以當(dāng)有時(shí)間靜下來(lái)仔細(xì)理一下思路的時(shí)候發(fā)現(xiàn)走了很大的彎路,可以說(shuō)是整個(gè)思路和設(shè)計(jì)要求有著非常大的差異。值得慶幸的是,發(fā)現(xiàn)的比較及時(shí),還有足夠的時(shí)間讓我轉(zhuǎn)變思路,從頭開(kāi)始。因此,通過(guò)這次質(zhì)品管理系統(tǒng)的開(kāi)發(fā),我深刻認(rèn)識(shí)到系統(tǒng)分析,以及對(duì)整個(gè)系統(tǒng)的總體設(shè)計(jì)的重要性。只有走好了這一步,整個(gè)系統(tǒng)的開(kāi)發(fā)才能事半功倍,否則就會(huì)是“棋差一著,滿盤(pán)皆輸”。同時(shí),在這次的系統(tǒng)開(kāi)發(fā)中我也看到了自己在新知識(shí)的學(xué)習(xí),新工具的應(yīng)用方面的不足。開(kāi)始時(shí),我對(duì)Visual Basic和Access可以說(shuō)只是停留在書(shū)面上的了解,還不夠深入透徹。系統(tǒng)的開(kāi)發(fā)過(guò)程也就成為我對(duì)這兩種開(kāi)發(fā)工具的深入透徹學(xué)習(xí)的過(guò)程。正因?yàn)檫@樣,所以在設(shè)計(jì)過(guò)程中往往會(huì)被一些問(wèn)題卡住。在原地徘徊了一段時(shí)間后,我通過(guò)查找參考資料,和同學(xué)交流,利用互聯(lián)網(wǎng)向有經(jīng)驗(yàn)的編程人員請(qǐng)教等各種方式試著克服在設(shè)計(jì)過(guò)程中遇到的困難。隨著開(kāi)發(fā)設(shè)計(jì)的深入,我也逐漸掌握了一部分編程技巧,了解了一些關(guān)于編程方面的規(guī)律,一些困難也就迎刃而解了. 經(jīng)過(guò)一個(gè)多月的設(shè)計(jì)和開(kāi)發(fā),超市管理系統(tǒng)基本開(kāi)發(fā)完畢。其功能基本符合用戶需求,能夠?qū)崿F(xiàn)品質(zhì)檢測(cè)的基本信息的錄入、更新、修改,刪除,查詢(xún)等基本功能,從而實(shí)現(xiàn)產(chǎn)品檢測(cè)的管理。對(duì)于數(shù)據(jù)的一致性的問(wèn)題也通過(guò)程序進(jìn)行了有效的解決。但是由于畢業(yè)設(shè)計(jì)時(shí)間較短,所以該系統(tǒng)還有許多不盡如人意的地方,比如聯(lián)機(jī)文檔比較少,用戶界面不夠美觀,出錯(cuò)處理不夠等多方面問(wèn)題。這些都有待進(jìn)一步改善。 致謝在本次畢業(yè)設(shè)計(jì)中,我從指導(dǎo)老師身上學(xué)到了很多東西。老師認(rèn)真負(fù)責(zé)的工作態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神和深厚的理論水平都使我收益匪淺。他無(wú)論在理論上還是在實(shí)踐中,都給與我很大的幫助,使我得到不少的提高這對(duì)于我以后的工作和學(xué)習(xí)都有一種巨大的幫助,感謝他耐心的輔導(dǎo)。另外,在系統(tǒng)開(kāi)發(fā)過(guò)程中助手同學(xué)也給于我很大的幫助,幫助解決了不少的難點(diǎn),使得系統(tǒng)能及時(shí)開(kāi)發(fā)完成,還有同組的同學(xué)同樣給與我不少幫助,這里一并表示感謝。 主要參考文獻(xiàn)[1] Visual Basic 使用指南 作者:Bob Reselman , Richard Peasley , Wayne Pruchniak.出版社:電子工業(yè)出版社[2] 中文版Microsoft Office 97 自學(xué)通作者:Ned Snell出版社:機(jī)械工業(yè)出版社[3] Visual Basic 中文版控件大全作者:Microsoft出版社;電子工業(yè)出版社[4] 中文Access 2000 24學(xué)時(shí)教程 作者:Craig Eddy ,Timothy Buchanan出版社:機(jī)械工業(yè)出版社系統(tǒng)代碼清單Dim stremployee As StringDim rs_employee As New Private Sub Form_Activate()stremployee = select * from employee stremployee, n, adOpenStatic, adLockOptimisticDim i As IntegerFor i = 0 To 1 ((員工姓名)) NextEnd SubPrivate Sub Form_Load() = = amp。 \End SubPrivate Sub Picture1_Click() End SubPrivate Sub Label3_Click() If = Then MsgBox 請(qǐng)輸入用戶名!, vbOKOnly + vbInformation, 注意 Exit Sub ElseIf = Then MsgBox 請(qǐng)輸入密碼!, vbOKOnly + vbInformation, 注意 Exit Sub End If stremployee = select * from employee where 員工姓名=39。 amp。 amp。 39。 and 員工密碼=39。 amp。 amp。 39。 stremployee, n, adOpenStatic, adLockOptimistic If = True Then MsgBox 用戶名或密碼錯(cuò)誤,請(qǐng)從新輸入!, vbOKOnly + vbInformation, 注意 Exit Sub Else strs = (員工編號(hào)) End If If = administrator Then Else = False = False = False End If Unload MeEnd SubPrivate Sub Label4_Click()Unload MeEnd SubPrivate Sub Picture2_Click()End SubDim rs_sell As New Dim rs_goods As New Dim rs_buy As New Dim rs_retreat As New Dim rs_manufacturer As New Dim rs_employee As New Dim rs_fctotal As New Dim rs_total As New Dim strsell As StringDim strgoods As StringDim strbuy As StringDim strretreat As StringDim strmanufacturer As StringDim stremployee As StringDim strfctotal As StringDim strtotal As StringDim inty As IntegerDim intm As IntegerDim intd As IntegerPrivate Sub Form_Load()inty = Year(Date)intm = Month(Date)intd = Day(Date) = amp。 \End SubPrivate Sub Form_Resize() = = End SubPrivate Sub mnabout_Click()End SubPrivate Sub mnBuy_Click()End SubPrivate Sub mnBuyMonth_Click() = False = 1(0) = False(1) = True(2) = False(3) = Falsestrbuy = select * from buy where 進(jìn)貨年= amp。 inty amp。 and 進(jìn)貨月= amp。 intm amp。 strbuy, n, adOpenKeyset, adLockPessimistic = strbuyIf = True Then = strbuy MsgBox 您本月沒(méi)有進(jìn)貨記錄!, vbOKOnly + vbInformation, 注意 = False = False = False = False = False = False = False = False Exit SubEnd Ifstrfctotal = select 生產(chǎn)廠商,sum(總金額) as 各廠商進(jìn)貨總金額 from buy where 進(jìn)貨年= amp。 inty amp。 and 進(jìn)貨月= amp。 intm amp。 group by 生產(chǎn)廠商 strfctotal, n, adOpenKeyset, adLockPessimistic = strfcto