超市管理系統(tǒng)畢業(yè)設(shè)計(jì)畢業(yè)論文
《超市管理系統(tǒng)畢業(yè)設(shè)計(jì)畢業(yè)論文》由會(huì)員分享,可在線閱讀,更多相關(guān)《超市管理系統(tǒng)畢業(yè)設(shè)計(jì)畢業(yè)論文(31頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 1超市管理系統(tǒng)超市管理系統(tǒng)摘摘 要要近年來(lái),計(jì)算機(jī)技術(shù)日趨成熟,數(shù)據(jù)庫(kù)技術(shù)不斷發(fā)展,管理信息系統(tǒng)的應(yīng)用已延伸到社會(huì)的各個(gè)領(lǐng)域。結(jié)合管理信息系統(tǒng)的開(kāi)發(fā)方法及步驟,以此為理論基礎(chǔ),開(kāi)發(fā)出一個(gè)小型的信息管理系統(tǒng)超市管理系統(tǒng)。超市管理是超市的開(kāi)展日常運(yùn)營(yíng)活動(dòng)的必須的環(huán)節(jié)。傳統(tǒng)的手工管理方式不但浪費(fèi)人力、時(shí)間,而且管理復(fù)雜,易出差錯(cuò)。基于計(jì)算機(jī)技術(shù)的完備的超市管理系統(tǒng)把一些繁瑣的數(shù)據(jù)計(jì)算、信息處理化為簡(jiǎn)單的指令操作。完全實(shí)現(xiàn)數(shù)據(jù)信息的電算化管理,徹底把人從手工管理中解放出來(lái)。經(jīng)過(guò)艱苦的努力,我們終于實(shí)現(xiàn)了預(yù)期的設(shè)計(jì)目標(biāo),開(kāi)發(fā)出這套具有一定實(shí)用價(jià)值的超市管理系統(tǒng),使用這套系統(tǒng)有利于提高超市商家的勞動(dòng)生產(chǎn)
2、率,節(jié)約運(yùn)營(yíng)成本,增加經(jīng)濟(jì)效益。本文主要介紹了該系統(tǒng)生成的背景及 Visual Basic 6.0 和 Access 的一般原理。闡述了本管理系統(tǒng)的結(jié)構(gòu)及工作原理;設(shè)計(jì)實(shí)現(xiàn)了登錄模塊、銷(xiāo)售統(tǒng)計(jì)、查看數(shù)據(jù)表、主界面的實(shí)現(xiàn);分析并解決了現(xiàn)實(shí)中的若干技術(shù)問(wèn)題。關(guān)鍵詞關(guān)鍵詞數(shù)據(jù)庫(kù) Visual Basic6.0 超市管理 2AbstractIn recent years, the computer technique has become more and more ripe; the database technique develops constantly and the application
3、 of the information management system has stretched into every field of our society. Combining the methods and steps of the information management system and basing on the theory of it, I developed a small information management systemthe super market management system.The management of super market
4、 is a necessary part of the companys daily operation. Traditional way is a waste of human resources and time, and it is complicated and often runs with mistakes. Based on the computer technique, the perfect shopping management turns those complicated data calculation and information processing into
5、simple instructions.It realized the electronic management of data information completely. It liberates people from the human management entirely. After hard work, I finally realized my design as expected, and developed this practical and valuable book-sell management system. Using it will raise the
6、working rate, reduce the cost and raise the economic benefit of the company. This paper mainly introduces the develop background of the system and the basic theory of Visual Basic 6.0 and Access Visual. It tells the structure of the super market management system and its working theory; it analyzes
7、the specialty, difficulty and important things in system realization. The design realizes the management of the system users, the basic information, the business, and the members management.Keywords:Database Visual Basic6.0 The super market management 3目錄目錄摘 要.1ABSTRACT.2目錄 .3緒論.41.系統(tǒng)開(kāi)發(fā)工具.51.1 VISUA
8、L BASIC簡(jiǎn)介.51.1.1 什么是 Visual Basic1.51.1.3 Visual Basic 的特點(diǎn)1.51.2 ACCESS 2002.61.2.1 Access 簡(jiǎn)介3.61.2.2 Access 2002 和數(shù)據(jù)庫(kù)的關(guān)系4.72.可行研究和需求分析性.82.1 可行性研究5.82.2 需求分析.83.系統(tǒng)總體設(shè)計(jì)方案.103.1 系統(tǒng)功能分析.103.2 數(shù)據(jù)庫(kù)設(shè)計(jì).103.3 系統(tǒng)功能模塊設(shè)計(jì).123.4 系統(tǒng)功能介紹.144. 系統(tǒng)各模塊的設(shè)計(jì)及實(shí)現(xiàn).184.1 用戶(hù)控制模塊及界面詳細(xì)設(shè)計(jì).184.2 主窗體.194.3 交易管理模塊及界面設(shè)計(jì).2044 進(jìn)貨統(tǒng)計(jì)模塊
9、及界面設(shè)計(jì).2445 銷(xiāo)售統(tǒng)計(jì)模塊及界面設(shè)計(jì).264.6 查看數(shù)據(jù)表功能模塊的設(shè)計(jì).2747 模塊及界面設(shè)計(jì).304.8 關(guān)于界面的設(shè)計(jì).31結(jié)論.31致謝.32參考文獻(xiàn).32 4緒論隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類(lèi)社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用。而當(dāng)今時(shí)代是飛速發(fā)展的信息時(shí)代,各行各業(yè)都離不開(kāi)信息處理。計(jì)算機(jī)的最大好處在于可以利用它進(jìn)行信息管理。使用計(jì)算機(jī)進(jìn)行信息管理,不僅提高了工作效率,而且大大的提高了其安全性。超市管理是超市中不可缺少的重要部分,超市的管理信息量繁多,包含很多信息的數(shù)據(jù)管理?,F(xiàn)今,大多數(shù)大型超市商場(chǎng)都使用計(jì)算機(jī)
10、進(jìn)行信息管理,而小型超市商店仍然采用傳統(tǒng)的人工管理方式,這種管理方式存在著許多缺點(diǎn),如:效率低、工作量大等,而且,隨著購(gòu)買(mǎi)者與超市數(shù)量的增長(zhǎng),對(duì)于超市的銷(xiāo)售、進(jìn)貨、退貨、交易管理等等,使更新和維護(hù)都帶來(lái)了不少的困難。本系統(tǒng)就是為了改變傳統(tǒng)的超市商店這種現(xiàn)狀所設(shè)計(jì)的。使用計(jì)算機(jī)對(duì)超市進(jìn)行管理,有著手工管理所無(wú)法比擬的優(yōu)點(diǎn)。例如:查看迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠使超市管理進(jìn)入科學(xué)化、正規(guī)化的軌道。 51.系統(tǒng)開(kāi)發(fā)工具1.1 Visual Basic 簡(jiǎn)介1.1.1 什么是 Visual Basic1“Visual”的意思是“可視的” ,指的是開(kāi)發(fā)圖形
11、用戶(hù)界面(GUI)的方法。讀者不需編寫(xiě)大量代碼去描述界面元素的外觀和位置,而只要把預(yù)先建立的對(duì)象放到屏幕上即可。 “可視的 Basic”這個(gè)名字初聽(tīng)起來(lái)可能抽象了點(diǎn),但實(shí)際上它卻是最形象的叫法,用戶(hù)只要看到 Visual Basic 的界面就會(huì)明白了,實(shí)際上它無(wú)需編程,就可以實(shí)現(xiàn)許多功能。在 Visual Basic 中還引入了控件的概念,在 Windows 中各種各樣的按扭、文本框等都是控件。Visual Basic 把這些控件模式化,并且每個(gè)控件都有若干屬性來(lái)控制它的外觀以及工作方法(Method) ,這樣用戶(hù)就可以象在畫(huà)板上作圖一樣,隨意按幾下鼠標(biāo)和按扭就可以完成一定的任務(wù),而這些在以前
12、的編程語(yǔ)言下是要編寫(xiě)相當(dāng)復(fù)雜的代碼的。“Basic”指的是 BASIC 語(yǔ)言,一種在計(jì)算技術(shù)發(fā)展史上應(yīng)用的最為廣泛的語(yǔ)言之一。Visual Basic 在原有 BASIC 語(yǔ)言的基礎(chǔ)上進(jìn)行了大量的擴(kuò)展,現(xiàn)在,從個(gè)人使用的小型工具軟件到大型企業(yè)的系統(tǒng)軟件,甚至通過(guò)網(wǎng)絡(luò)遍及全球的分布式應(yīng)用軟件,都可以使用 Visual Basic 開(kāi)發(fā)。1.1.3 Visual Basic 的特點(diǎn)11.面向?qū)ο蟮目梢暬?在 Visual Basic6.0 中,應(yīng)用面向?qū)ο蟮某绦蛟O(shè)計(jì)方法(OOP) ,把程序和數(shù)據(jù)庫(kù)封裝在一起視為一個(gè)對(duì)象,而且每個(gè)對(duì)象都是可視的,程序員在設(shè)計(jì)時(shí)只需用現(xiàn)有的工具根據(jù)界面設(shè)計(jì)的要求,直接
13、在“窗體”上畫(huà)出諸如“按扭” 、“滾動(dòng)條” 、 “文本框”等不同類(lèi)型的對(duì)象,并為它們?cè)O(shè)置“屬性”編寫(xiě)“事件”代碼即可,從而大大簡(jiǎn)化了設(shè)計(jì)的復(fù)雜度。2.事件驅(qū)動(dòng)的編程機(jī)制Visual Basic6.0 通過(guò)事件驅(qū)動(dòng)來(lái)執(zhí)行對(duì)象的操作。在事件驅(qū)動(dòng)的程序中,代碼不是按照預(yù)定的路徑執(zhí)行,而是在響應(yīng)不同的事件時(shí)執(zhí)行不同的代碼模塊。每個(gè)對(duì)象都有一個(gè)事件集,每個(gè)事件發(fā)生都要有有相應(yīng)的程序代碼來(lái)響應(yīng),即要執(zhí)行一段程序代碼。事件可以由用戶(hù)操作觸發(fā),也可以由操作系統(tǒng)或其他應(yīng)用程序的消息觸發(fā),甚至可以由應(yīng)用程序本身的消息觸發(fā)。這些事件的順序決定了代碼執(zhí)行的順序,因此應(yīng)用程序每次運(yùn)行時(shí)所經(jīng)過(guò)的代碼的路徑是不同的。在程序
14、設(shè)計(jì)時(shí),不需要建立明顯的開(kāi)始和結(jié)束的大塊應(yīng)用程序,也不需要指出 6先執(zhí)行哪部分代碼和按什么順序執(zhí)行代碼,只需編寫(xiě)一些針對(duì)事件的許多小的模塊子程序(也稱(chēng)過(guò)程) 。3.交互式的程序開(kāi)發(fā)過(guò)程傳統(tǒng)的編程過(guò)程分三個(gè)步驟:編寫(xiě)源程序、將源程序編譯和連接生成可執(zhí)行的二進(jìn)制代碼和最后運(yùn)行生成可執(zhí)行的二進(jìn)制代碼。而 Visual Basic6.0 采用的是交互式方法開(kāi)發(fā)應(yīng)用程序,使三個(gè)步驟之間不再有明顯的界限。傳統(tǒng)的編程中,如果編寫(xiě)源程序中出現(xiàn)錯(cuò)誤,只有在編譯和運(yùn)行時(shí)才會(huì)被編譯器捕捉,此時(shí)必須先返回編輯狀態(tài)修改錯(cuò)誤,然后再編譯、連接和運(yùn)行,直到正確為止。Visual Basic 編程在輸入代碼時(shí)便進(jìn)行解釋?zhuān)磿r(shí)
15、捕獲并突出顯示大多數(shù)語(yǔ)法或拼寫(xiě)錯(cuò)誤,同時(shí)將出現(xiàn)警告對(duì)話框,并將出錯(cuò)的源代碼以紅色顯示,方便用戶(hù)及時(shí)修改程序。4.提供強(qiáng)大的數(shù)據(jù)庫(kù)訪問(wèn)工具隨著計(jì)算機(jī)技術(shù)的發(fā)展,數(shù)據(jù)庫(kù)越來(lái)越顯示出其強(qiáng)大的數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)管理能力。為了滿(mǎn)足人們對(duì)數(shù)據(jù)庫(kù)的需要,Visual Basic 提供了強(qiáng)大的數(shù)據(jù)庫(kù)程序設(shè)計(jì)能力。它不僅能管理 Microsoft Access 格式的數(shù)據(jù)庫(kù),還能訪問(wèn)其他外部數(shù)據(jù)庫(kù),如 FoxPro,Paradox 等格式的數(shù)據(jù)庫(kù)。另外,Visual Basic 還提供了開(kāi)放式數(shù)據(jù)庫(kù)連接(ODBC)功能,可以通過(guò)直接訪問(wèn)或建立連接的方式使用并操作后臺(tái)大型網(wǎng)絡(luò)數(shù)據(jù)庫(kù),如 SQL Server,Orac
16、le 等。在應(yīng)用程序中可以使用結(jié)構(gòu)化查詢(xún)語(yǔ)言(SQL)直接訪問(wèn) Server 上的數(shù)據(jù)庫(kù),并提供簡(jiǎn)單的面向?qū)ο蟮膸?kù)操作命令、多用戶(hù)數(shù)據(jù)庫(kù)的加鎖機(jī)制和網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的編程技術(shù),為單機(jī)上運(yùn)行的數(shù)據(jù)庫(kù)提供 SQL 網(wǎng)絡(luò)接口,以便于在分布式環(huán)境中快速而有效地實(shí)現(xiàn)客戶(hù)/服務(wù)器方案。5.充分利用 Windows 資源Visual Basic 提供的動(dòng)態(tài)數(shù)據(jù)交換(DDE)編程技術(shù),可以在應(yīng)用程序中實(shí)現(xiàn)與其他 Windows 應(yīng)用程序建立動(dòng)態(tài)數(shù)據(jù)交換、在不同的應(yīng)用程序之間進(jìn)行通信的功能。Visual Basic 提供的對(duì)象連接與嵌入(OLE)技術(shù)是將每個(gè)應(yīng)用程序都看作對(duì)象,將不同的對(duì)象連接起來(lái),嵌入到某個(gè)應(yīng)用程序
17、中,從而可以得到具有聲音、影象、圖象、動(dòng)畫(huà)、文字等各種信息的集合式文件。1.2 Access 20021.2.1 Access 簡(jiǎn)介3 建立一個(gè)數(shù)據(jù)庫(kù)我們有多種選擇,現(xiàn)在市場(chǎng)上有各種各樣的數(shù)據(jù)庫(kù),而且每一種數(shù)據(jù)庫(kù)都有其自身的特點(diǎn),不能說(shuō)哪一種更好,只能在其中尋找一種能更好地適應(yīng)系統(tǒng)需求、更好地滿(mǎn)足用戶(hù)的要求以及適應(yīng)開(kāi)發(fā)人員的習(xí)慣。在本 7系統(tǒng)中,作為超市管理系統(tǒng)是一個(gè)比較小的應(yīng)用系統(tǒng),它所產(chǎn)生和處理的數(shù)據(jù)量也比較小。因此,沒(méi)有必要使用像 SQL Server 和 Oracle 這樣的大型數(shù)據(jù)庫(kù)。Microsoft Office 中的 Access 數(shù)據(jù)庫(kù)在計(jì)算機(jī)上的應(yīng)用比較普及,是開(kāi)發(fā)小型數(shù)據(jù)
18、庫(kù)系統(tǒng)的比較理想的選擇,所以,在本系統(tǒng)中我選擇了 Access 數(shù)據(jù)庫(kù)。 Access 作為一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng),它被集成在 Microsoft Office 中。Access 數(shù)據(jù)庫(kù)處理的基本結(jié)構(gòu),采取關(guān)系型數(shù)據(jù)庫(kù)模式。與其他的數(shù)據(jù)庫(kù)系統(tǒng)相比,Access 更加簡(jiǎn)單易學(xué),一個(gè)普通的計(jì)算機(jī)用戶(hù)可以很快地掌握它。Access 2002 的功能十分強(qiáng)大,利用它可以方便地實(shí)現(xiàn)對(duì)信息保存、維護(hù)、查詢(xún)、統(tǒng)計(jì)、打印、交流、發(fā)布,而且它可以十分方便地與 Office 其他組件交流數(shù)據(jù),這些功能對(duì)一個(gè)一般用戶(hù)而言已經(jīng)足夠了。1.2.2 Access 2002 和數(shù)據(jù)庫(kù)的關(guān)系4Microsoft Access 從
19、本質(zhì)上說(shuō)就是一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng),具體來(lái)說(shuō)是一個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS) 。Access 主要用于中小型數(shù)據(jù)庫(kù)系統(tǒng)。它相對(duì)于其他數(shù)據(jù)庫(kù)產(chǎn)品來(lái)說(shuō)開(kāi)發(fā)時(shí)間比較晚,但由于它強(qiáng)大的功能和使用上的方便,使越來(lái)越多的用戶(hù)轉(zhuǎn)向Access,成為當(dāng)今最為通用的數(shù)據(jù)庫(kù)軟件。作為新一代 RDBMS 的代表,Microsoft Access 2002 提供了真正的關(guān)系數(shù)據(jù)庫(kù)管理。在 Access 數(shù)據(jù)庫(kù)中,數(shù)據(jù)是由表格組成的,在表格中有主關(guān)鍵字和外部關(guān)鍵字的定義,在數(shù)據(jù)庫(kù)中提供了完全的引用完整性,保證了數(shù)據(jù)庫(kù)的完整性。同時(shí) Access 的表格具有數(shù)據(jù)確認(rèn)規(guī)則,以避免不精確的數(shù)據(jù)輸入。表格的每一個(gè)字段都具有自
20、己的格式和缺省的定義。Access 能作為獨(dú)立的數(shù)據(jù)庫(kù)管理系統(tǒng)使用,或作為客戶(hù)產(chǎn)生結(jié)構(gòu)化查詢(xún)語(yǔ)言這樣的服務(wù)程序。另外,Access 數(shù)據(jù)庫(kù)具有開(kāi)放式數(shù)據(jù)庫(kù)互連性(ODBC)特性,用戶(hù)可以與許多外部數(shù)據(jù)相連接。Access 數(shù)據(jù)庫(kù)所能完成的功能基本是一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)所應(yīng)具有的功能,概括如下:(1)根據(jù)需要制定 Access 數(shù)據(jù)庫(kù)系統(tǒng),對(duì)數(shù)據(jù)進(jìn)行保存、查閱和計(jì)算。(2)利用數(shù)據(jù)表存儲(chǔ)相應(yīng)的數(shù)據(jù)信息,為每一種實(shí)際對(duì)象的信息創(chuàng)建一個(gè)表,在表中對(duì)不同數(shù)據(jù)以不同方式保存。(3)按實(shí)際對(duì)象之間的關(guān)系,定義各個(gè)表之間的關(guān)系。(4)檢索用戶(hù)指定條件的數(shù)據(jù),創(chuàng)建相應(yīng)的查詢(xún)來(lái)進(jìn)行檢索,可以利用查詢(xún)更新或刪除多條
21、記錄,并對(duì)表中的數(shù)據(jù)執(zhí)行各種計(jì)算。(5)直接輸入、查看或更改數(shù)據(jù)庫(kù)中的數(shù)據(jù),利用表格或窗體完成。(6)對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行分析,通過(guò)特定方式打印數(shù)據(jù),制作報(bào)表。(7)將數(shù)據(jù)庫(kù)中的數(shù)據(jù)傳輸?shù)狡渌麛?shù)據(jù)庫(kù)的服務(wù)器上,實(shí)現(xiàn)資源共享。 82.可行研究和需求分析性軟件開(kāi)發(fā)最初的工作就是問(wèn)題定義,也就是確定超市中要求解決的問(wèn)題是什么;做好軟件定義時(shí)期的工作是降低軟件成本提高軟件質(zhì)量的關(guān)鍵。在軟件開(kāi)發(fā)的不同階段進(jìn)行修改需要付出的代價(jià)是很不相同的,越在早期改正錯(cuò)誤,付出的代價(jià)就越小,了解了它的重要性之后,我明白前期工作一定要做好才能更好地提高工作效率。我把任務(wù)超市又仔細(xì)地研究了一遍,充分明白了它的要求后,接下來(lái)
22、作可行性研究,只有做好可行性研究才有可能把以后的工作做好。2.1 可行性研究5可行性研究的目的就是用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否能夠解決。可行性研究的目的不是解決問(wèn)題,而是確定問(wèn)題是否值得去解決。不能靠主觀猜想,只能靠客觀分析。首先應(yīng)該近一步地分析和澄清問(wèn)題定義,如果正確則進(jìn)一步加以肯定,如果有錯(cuò)則應(yīng)立刻改正,經(jīng)過(guò)仔細(xì)審查,然后從三方面分析它的可行性:1)技術(shù)可行性(即使用現(xiàn)有的技術(shù)能實(shí)現(xiàn)這個(gè)系統(tǒng)嗎):答案是肯定的,VB 功能強(qiáng)大,能用簡(jiǎn)單的方法完成復(fù)雜的問(wèn)題。 2)操作可行性(系統(tǒng)的操作方式在這個(gè)用戶(hù)組織能行的通嗎):答案是肯定的,本系統(tǒng)操作簡(jiǎn)單,系統(tǒng)的運(yùn)行不需要特定的環(huán)境。3)
23、經(jīng)濟(jì)可行性(系統(tǒng)的經(jīng)濟(jì)效益是否能超過(guò)它的開(kāi)發(fā)成本):2.2 需求分析需求分析是軟件定義時(shí)期的最后一個(gè)階段,它的基本任務(wù)是準(zhǔn)確地回答“系統(tǒng)必須做什么”這個(gè)問(wèn)題,需求分析的任務(wù)還不是確定系統(tǒng)怎樣完成它的工作,而僅僅是確定系統(tǒng)必須完成哪些工作,也就是對(duì)目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清晰、具體的要求??尚行匝芯侩A段產(chǎn)生的文檔是需求分析的出發(fā)點(diǎn)。需求分析階段系統(tǒng)本人仔細(xì)研究超市管理系統(tǒng)應(yīng)實(shí)現(xiàn)的功能并將它們具體化。數(shù)據(jù)字典是關(guān)于數(shù)據(jù)信息的集合,任何字典最主要的用途都是供人查閱對(duì)不了解的條目的解釋?zhuān)瑪?shù)據(jù)字典的作用也正是在軟件分析和設(shè)計(jì)的過(guò)程中給人提供關(guān)于數(shù)據(jù)的描述信息。針對(duì)一般超市管理系統(tǒng)的需求,通過(guò)對(duì)超市管理工
24、作過(guò)程的內(nèi)容分析與本人所要承擔(dān)的任務(wù),設(shè)計(jì)出下面的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu): 9(1) 交易管理:包括進(jìn)貨登記、銷(xiāo)貨登記、退貨登記等。其中進(jìn)貨登記中還包含進(jìn)貨商登記,如過(guò)是新的進(jìn)貨廠商,可以直接在此登記入庫(kù)。進(jìn)貨和進(jìn)銷(xiāo)存的主要交易都是在此進(jìn)行。每次交易(包括進(jìn)貨、銷(xiāo)貨和退貨)都需要對(duì)商品名稱(chēng)、生產(chǎn)廠商、商品型號(hào)、單價(jià)、數(shù)量、總金額、交易日期、經(jīng)手業(yè)務(wù)員編號(hào)等各項(xiàng)記錄。在交易過(guò)程中,程序的編寫(xiě)盡可能的方便員工進(jìn)行交易,比如:進(jìn)貨登記時(shí),如果商品編號(hào)相同,則自動(dòng)添加該商品的其它屬性;銷(xiāo)貨登記時(shí),用戶(hù)只要輸入商品編號(hào),該商品的其它屬性即可自動(dòng)出現(xiàn)。退貨登記時(shí),只要輸入正確的銷(xiāo)貨編號(hào),其進(jìn)銷(xiāo)存信息也將自動(dòng)列出
25、,盡量的方便了用戶(hù)的操作,同時(shí)對(duì)于登陸的員工編號(hào)程序也自動(dòng)的將其列在進(jìn)貨登記、銷(xiāo)貨登記中,以己防止員工進(jìn)行非正常的交易。(2) 進(jìn)貨統(tǒng)計(jì):包括今日進(jìn)貨統(tǒng)計(jì)、本月進(jìn)貨統(tǒng)計(jì)、本季度進(jìn)貨統(tǒng)計(jì)、本季度進(jìn)貨統(tǒng)計(jì)、本年度進(jìn)貨統(tǒng)計(jì)等。其中每次進(jìn)貨統(tǒng)計(jì)都是按進(jìn)貨廠商和進(jìn)貨總金額統(tǒng)計(jì)顯示的。使用一個(gè)表格顯示所選時(shí)間段的全部進(jìn)貨數(shù)據(jù),包括進(jìn)貨編號(hào)、商品名稱(chēng)等。再使用另一個(gè)表格顯示分別從各個(gè)廠商進(jìn)貨的金額,還有一個(gè)文本框用于顯示次時(shí)間段的進(jìn)貨總金額。(3) 系統(tǒng)管理:包括更換用戶(hù)、修改密碼、退出系統(tǒng)、與關(guān)與。用戶(hù)在進(jìn)入后可以根據(jù)自己的需要進(jìn)行更改密碼,調(diào)換用戶(hù)重新登錄,退出本系統(tǒng)和一些相關(guān)的相關(guān)本版的信息提示。(4
26、) 銷(xiāo)售統(tǒng)計(jì),包含的數(shù)據(jù)項(xiàng)有:銷(xiāo)售編號(hào)、商品編號(hào)、商品名稱(chēng)、生產(chǎn)產(chǎn)商、生產(chǎn)社、銷(xiāo)售年、銷(xiāo)售月、銷(xiāo)售日、業(yè)務(wù)員編號(hào)等等。(5) 查看數(shù)據(jù)表,包含的數(shù)據(jù)項(xiàng)有:進(jìn)貨表、現(xiàn)存商品表、退貨表、銷(xiāo)售表、管理員工表等等。(6) 系統(tǒng)用戶(hù)信息,包含的數(shù)據(jù)項(xiàng)有:用戶(hù)名、口令、級(jí)別。 103.系統(tǒng)總體設(shè)計(jì)方案3.1 系統(tǒng)功能分析系統(tǒng)開(kāi)發(fā)的總體任務(wù)是實(shí)現(xiàn)各種信息的系統(tǒng)化、規(guī)范化和自動(dòng)化。系統(tǒng)功能分析是在系統(tǒng)開(kāi)發(fā)的總體任務(wù)的基礎(chǔ)上完成。本人根據(jù)系統(tǒng)需要與任務(wù)的分配要完成的主要任務(wù)與功能有:對(duì)本系統(tǒng)的登錄模塊的實(shí)現(xiàn):根據(jù)不同的用戶(hù)權(quán)限來(lái)登錄到主窗體。對(duì)本統(tǒng)主要界機(jī)的設(shè)計(jì)實(shí)現(xiàn):在主界面中要實(shí)現(xiàn)五個(gè)彈出菜單;有交易管理菜單
27、,進(jìn)貨統(tǒng)計(jì)菜單,銷(xiāo)售統(tǒng)計(jì)菜單,查看數(shù)據(jù)表菜單,系統(tǒng)管理菜單。3.2 數(shù)據(jù)庫(kù)設(shè)計(jì)上面提到的各種功能的實(shí)現(xiàn)都離不開(kāi)數(shù)據(jù)庫(kù)的支持,因此數(shù)據(jù)庫(kù)設(shè)計(jì)作為本系統(tǒng)設(shè)計(jì)的一部分不可缺少。開(kāi)發(fā)本系統(tǒng)中使用的數(shù)據(jù)庫(kù)系統(tǒng)是 Windows Access 2000 。從上面的功能分析不難看出本系統(tǒng)需要建立以下幾個(gè)數(shù)據(jù)表:buy 表(進(jìn)貨表)、goods 表(現(xiàn)存商品表)、sell 表(進(jìn)銷(xiāo)存表)、retreat 表(退貨表)、employee 表(員工表)、manufacturer 表(進(jìn)貨商表)。由于數(shù)據(jù)量比較小,所以這些數(shù)據(jù)表都存在一個(gè)數(shù)據(jù)庫(kù)下:sellsystem.mdb 下面對(duì)各個(gè)數(shù)據(jù)表的結(jié)構(gòu)做一下簡(jiǎn)單介紹:
28、在系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)中,進(jìn)貨表、銷(xiāo)貨表、商品庫(kù)存表和退貨表涉及了交易管理三個(gè)子菜單的絕大部分?jǐn)?shù)據(jù),是本系統(tǒng)數(shù)據(jù)庫(kù)的核心,所以將對(duì)其部分表的設(shè)置列表顯示。Manufacturer 表(進(jìn)貨商表)中包括有廠商編號(hào)、廠商名稱(chēng)、聯(lián)系人姓名、電話、廠商地址等字段,表略。employee(員工表)中包括有員工編號(hào)、員工姓名、員工密碼、員工電話、員工地址等字段,表略。buy 表(進(jìn)貨表)中包括有進(jìn)貨編號(hào)、商品編號(hào)、商品名稱(chēng)、生產(chǎn)廠商、型號(hào)、數(shù)量、進(jìn)貨價(jià)、進(jìn)貨年、進(jìn)貨月、進(jìn)貨日、總金額、業(yè)務(wù)員編號(hào)等。設(shè)計(jì)該數(shù)據(jù)表的主要目的是方便管理員的查看,使系統(tǒng)的數(shù)據(jù)管理能夠更加層次化。具體設(shè)置如表 3-1 所示。表 3-1
29、 buy 表字段名數(shù)據(jù)類(lèi)型說(shuō)明進(jìn)貨編號(hào)文本字段大小為 20 11商品名稱(chēng)文本字段大小為 20生產(chǎn)廠商文本字段大小為 20型號(hào)文本字段大小為 20數(shù)量數(shù)字長(zhǎng)整型進(jìn)貨價(jià)貨幣貨幣進(jìn)貨年數(shù)字整型進(jìn)貨月數(shù)字整型進(jìn)貨日數(shù)字整型業(yè)務(wù)員編號(hào)文本字段大小為 20總金額貨幣貨幣goods 表(現(xiàn)存商品表)中包括有商品編號(hào)、生產(chǎn)廠商、商品名稱(chēng)、型號(hào)、進(jìn)貨價(jià)、銷(xiāo)貨價(jià)、數(shù)量、進(jìn)貨年、進(jìn)貨月、進(jìn)貨日、業(yè)務(wù)員編號(hào)、總金額等字段。具體設(shè)置如表 3-2 所示。表 3-2 goods 表字段名數(shù)據(jù)類(lèi)型說(shuō)明商品編號(hào)文本字段大小為 20商品名稱(chēng)文本字段大小為 20生產(chǎn)廠商文本字段大小為 20型號(hào)文本字段大小為 20數(shù)量數(shù)字長(zhǎng)整型進(jìn)貨
30、價(jià)貨幣貨幣銷(xiāo)貨價(jià)貨幣貨幣 retreat 表(退貨表)中包括有退貨編號(hào)、銷(xiāo)貨編號(hào)、生產(chǎn)廠商、商品名稱(chēng)、型號(hào)、單價(jià)、數(shù)量、總金額、退貨年、退貨月、退貨日、業(yè)務(wù)員編號(hào)等。具體設(shè)置如表 3-3 所示。表 3-3 retreat 表字段名數(shù)據(jù)類(lèi)型說(shuō)明退貨編號(hào)文本字段大小為 20銷(xiāo)貨編號(hào)文本字段大小為 20商品名稱(chēng)文本字段大小為 20生產(chǎn)廠商文本字段大小為 20型號(hào)文本字段大小為 20單價(jià)貨幣貨幣數(shù)量數(shù)字長(zhǎng)整型 12總金額貨幣貨幣退貨年數(shù)字整型退貨月數(shù)字整型退貨日數(shù)字整型業(yè)務(wù)員編號(hào)文本字段大小為 20本節(jié)總結(jié):對(duì)于本圖超市管理系統(tǒng)功能的實(shí)現(xiàn),重點(diǎn)和難點(diǎn)有如下幾處: 交易管理模塊在本模塊中,對(duì)于商品的進(jìn)貨
31、、銷(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ù)存表中對(duì)應(yīng)記錄的商品數(shù)量做相應(yīng)的調(diào)整;如果商品編號(hào)不存在,則直接將進(jìn)貨信息添加到商品庫(kù)存表中。貨登記時(shí),先將商品的銷(xiāo)貨信息添加到銷(xiāo)貨表中,然后將商品庫(kù)存表中響應(yīng)的商品的數(shù)量做相應(yīng)的調(diào)整,保證商品數(shù)量的一致性。退貨登記時(shí)將退貨信息添加到退貨表中,然后將退貨數(shù)量從進(jìn)銷(xiāo)存表中減掉,最后將退貨數(shù)量加到商品庫(kù)存表中。3.3 系統(tǒng)功能模塊設(shè)計(jì)對(duì)上述各項(xiàng)功能進(jìn)行集中、分塊,按照結(jié)構(gòu)化程序
32、設(shè)計(jì)的要求,得到如圖3.1 的系統(tǒng)功能模塊圖。 13 否 是 用戶(hù)登錄是否是管理員主界面交易管理進(jìn)貨統(tǒng)計(jì)系統(tǒng)管理銷(xiāo)售統(tǒng)計(jì)查看數(shù)據(jù)表進(jìn)貨登記銷(xiāo)售登記退貨登記修改密碼退出系統(tǒng)關(guān)于更換用戶(hù)今日進(jìn)貨統(tǒng)計(jì)本月進(jìn)貨統(tǒng)計(jì)本季度進(jìn)貨統(tǒng)計(jì)今年進(jìn)貨統(tǒng)計(jì)今日銷(xiāo)售統(tǒng)計(jì)本月銷(xiāo)售統(tǒng)計(jì)本季度銷(xiāo)售統(tǒng)計(jì)今年銷(xiāo)售統(tǒng)計(jì)查看進(jìn)貨表查看現(xiàn)存商品表查看銷(xiāo)售表查看退貨表管理員工表查看進(jìn)貨商表 14(1)交易管理模塊:用于管理商品的進(jìn)貨,進(jìn)銷(xiāo)存,退貨登記的操作。 (2)進(jìn)貨統(tǒng)計(jì)管理:主要用于對(duì)商品每日,每月,第季度,每年的進(jìn)貨情況進(jìn)行統(tǒng)計(jì)管理,此功能只有以管理員的身份進(jìn)入時(shí)才為可用狀態(tài)。(3)銷(xiāo)售統(tǒng)計(jì)管理:主要用于對(duì)商品每日,每月,第季度,
33、每年的進(jìn)銷(xiāo)存情況進(jìn)行統(tǒng)計(jì)管理,此功能只有以管理員的身份進(jìn)入時(shí)才為可用狀態(tài)。(4)查看數(shù)據(jù)表:主要能查看進(jìn)貨表,商品信息表,進(jìn)銷(xiāo)存表,退貨表等進(jìn)行查看,以實(shí)現(xiàn)對(duì)商品信息的及時(shí)了解。 3.4 系統(tǒng)功能介紹(1)登陸窗體 該登陸窗體對(duì)用戶(hù)登陸做了一個(gè)簡(jiǎn)單的判斷,如果是管理員登陸則可進(jìn)入初始化界面,然后再進(jìn)入主界面。 具體做法是:先在窗體級(jí)中定義一個(gè)記錄集,用于打開(kāi) employee 表,打開(kāi)后將該表中的字段:?jiǎn)T工姓名,依次加到 combo1 中。全加入后關(guān)閉記錄集,然后對(duì) combo1 和 text1 中的內(nèi)容做一下簡(jiǎn)單判斷:如果 combo1 和 text1 中的數(shù)據(jù)正好和 employee 表中
34、的某個(gè)記錄相同,則通過(guò)登陸窗體,否則提示用戶(hù)用戶(hù)名或密碼有誤。在通過(guò)登陸窗體中還要對(duì)用戶(hù)名做一下判斷:如果是管理員登陸,則進(jìn)入系統(tǒng)初始化窗體,如果是普通用戶(hù)登陸,則進(jìn)入主界面。(2) 初始化窗體 該初始化窗體為本系統(tǒng)的使用者提供了試運(yùn)行服務(wù),如果使用者試運(yùn)行后決定正式使用,可以通過(guò)管理員登陸本窗體對(duì)系統(tǒng)進(jìn)行初始化,即清空試運(yùn)行階段的所有進(jìn)銷(xiāo)存數(shù)據(jù)。具體實(shí)現(xiàn)過(guò)程為:定義 5 個(gè)記錄集,其每一個(gè)記錄集控制一個(gè)數(shù)據(jù)表的打開(kāi)與關(guān)閉操作,其記錄集的取名與數(shù)據(jù)表相近:rs_sell, rs_buy, rs_goods, rs_retreat,rs_manufacturer.當(dāng)管理員點(diǎn)擊是標(biāo)簽時(shí),先出現(xiàn)一個(gè)
35、消息框,問(wèn)管理員是否真的要進(jìn)行初始化。如果是,則 5 個(gè)記錄集依次連接到 5 個(gè)數(shù)據(jù)表上,然后對(duì)每個(gè)數(shù)據(jù)表的內(nèi)容進(jìn)行刪除操作。具體刪除方法為:先對(duì)表的狀態(tài)進(jìn)行判斷,如果某個(gè)數(shù)據(jù)表的內(nèi)容為空,則直接關(guān)閉記錄集,以免多步操作數(shù)據(jù)表出現(xiàn)錯(cuò)誤;如果該數(shù)據(jù)表不為空,則依次刪除該數(shù)據(jù)表的每一個(gè)記錄,對(duì)于每一個(gè)數(shù)據(jù)表都要做此判斷,并且每打開(kāi)一個(gè)新的數(shù)據(jù)表都要關(guān)閉上一個(gè)數(shù)據(jù)表,這樣操作起來(lái)層次顯得比較清晰,而且維護(hù)起來(lái)也比較方便。 15(3)主窗體 主窗體的建立十分簡(jiǎn)單,只需將所要實(shí)現(xiàn)的功能編輯成菜單即可。該窗體的運(yùn)行過(guò)程為:用戶(hù)首先進(jìn)入登陸窗體,如果是管理員登陸,則先進(jìn)入初始化窗體,經(jīng)過(guò)判斷是否需要初始化后
36、,進(jìn)入主窗體。其權(quán)限為:銷(xiāo)貨統(tǒng)計(jì)、進(jìn)貨統(tǒng)計(jì)、查看數(shù)據(jù)表和系統(tǒng)管理。其權(quán)限的設(shè)置使管理員能夠方便的查看任何時(shí)間段內(nèi)的所有信息,還可以對(duì)員工表進(jìn)行管理。如果是普通用戶(hù)登陸,則直接進(jìn)入主窗體,其授予的權(quán)限只有交易管理和系統(tǒng)管理,也就是說(shuō)員工只能負(fù)責(zé)對(duì)商品進(jìn)行如庫(kù)登記、銷(xiāo)貨登記和退貨登記,另外在一個(gè)員工對(duì)本系統(tǒng)使用的整個(gè)期間內(nèi),進(jìn)貨登記、銷(xiāo)貨登記和退貨登記三個(gè)窗體中的顯示的業(yè)務(wù)員編號(hào)都由系統(tǒng)自動(dòng)給出的該員工的員工編號(hào)。(4)進(jìn)貨登記窗體 本窗體用來(lái)實(shí)現(xiàn)商品進(jìn)貨功能,將進(jìn)貨信息添加到 buy表,再將該信息選擇性的加入 goods 表。如果是新的進(jìn)貨廠商,可以在此入庫(kù)登記。其具體實(shí)現(xiàn)過(guò)程如下所述:先在窗體
37、級(jí)變量中定義三個(gè)記錄集:rs_buy,rs_goods,rs_manufacture 用來(lái)控制三個(gè)數(shù)據(jù)表:buy 表,goods 表,manufacturer 表。在用戶(hù)點(diǎn)擊添加商品中的添加入庫(kù)操作之前,程序先會(huì)檢查是否有用戶(hù)是否有個(gè)別屬性為空,并做出提示。然后將商品添加到 buy 表中,再添加到 goods 表。在添加到 goods 表時(shí),程序會(huì)先判斷該商品編號(hào)是否已經(jīng)存在,如果存在則直接將該添加信息的數(shù)量加到 goods 表中相應(yīng)的記錄上。為此,進(jìn)貨編號(hào)、商品編號(hào)是 buy 表、goods 表中不可重復(fù)的屬性。為方便用戶(hù)操作,程序特在商品編號(hào)的文本框:text2 的 Change 事件中做
38、了一個(gè)判斷,即如果該商品編號(hào)存在的話直接顯示該商品的其他屬性。另外,對(duì)于總金額文本框也是由數(shù)量和進(jìn)貨價(jià)兩個(gè)文本框的 Change 事件計(jì)算入內(nèi)的。如果是新的進(jìn)貨商,可以將它的信息添加到進(jìn)貨商表。其過(guò)程和上面所說(shuō)的添加到 buy 表基本相同,這里就不做介紹了。(5) 銷(xiāo)貨登記窗體 本窗體主要功能是對(duì)商品進(jìn)行進(jìn)銷(xiāo)存,首先對(duì)員工輸入的銷(xiāo)貨信息進(jìn)行完整條件的判斷,條件符合后進(jìn)行進(jìn)銷(xiāo)存。然后將進(jìn)銷(xiāo)存信息存入 sell 表,并對(duì) goods 表的數(shù)量做相應(yīng)修改。 具體實(shí)現(xiàn)過(guò)程為:先在窗體集中定義兩個(gè)記錄集:rs_sell,rs_goods,用來(lái)控制兩個(gè)數(shù)據(jù)表:sell 表和 goods 表。在銷(xiāo)貨窗體中,
39、如果用戶(hù)輸入的商品編號(hào)已經(jīng)存在,則該商品的其它屬性將隨著 text2(即商品編號(hào))的 Change 事件出現(xiàn)在其對(duì)應(yīng)的位置上。而進(jìn)銷(xiāo)存日期和業(yè)務(wù)員編號(hào)已經(jīng)是程序默認(rèn)給出的系統(tǒng)時(shí)間和登陸員工的編號(hào)。在判斷沒(méi)有空缺屬性后該商品將順利添加如庫(kù),而且該商品在 goods 表中的數(shù)量也將隨之做相應(yīng)的改變,使 goods 表和 sell 表的總和保持原來(lái) goods 表中的數(shù)量值。 16(6)退貨窗體 本窗體的功能是實(shí)現(xiàn)商品退貨功能,當(dāng)人為判斷某商品可以退貨時(shí)即可將該商品退貨。其數(shù)據(jù)庫(kù)實(shí)現(xiàn)為:先將該信息加入 retreat 表,然后從 sell 表中減掉,最后對(duì) goods 表的數(shù)量做一下調(diào)整即可。其具體
40、實(shí)現(xiàn)過(guò)程是:先在窗體集中定義三個(gè)記錄集:rs_sell,rs_goods,rs_retreat 用來(lái)控制三個(gè)數(shù)據(jù)表:sell 表、goods 和 retreat 表。在退貨窗體中,如果用戶(hù)輸入的銷(xiāo)貨編號(hào)存在,則關(guān)于該商品的進(jìn)銷(xiāo)存信息將依次出現(xiàn)在相應(yīng)的對(duì)話框中。退貨成功后,該退貨信息先添加到退貨表,然后將其退貨數(shù)量從相應(yīng)的 sell 表中減掉,并添加到 goods 表中。(7)進(jìn)貨統(tǒng)計(jì)菜單 進(jìn)貨統(tǒng)計(jì)菜單下有 4 個(gè)子菜單,分別是今日進(jìn)貨統(tǒng)計(jì)、本月進(jìn)貨統(tǒng)計(jì)、本季度進(jìn)貨統(tǒng)計(jì)、今年進(jìn)貨統(tǒng)計(jì)。由于他們的界面非常相似,本程序中使用了一個(gè) SSTab 控件以選項(xiàng)卡的形式在一個(gè)窗體中實(shí)現(xiàn)以上 4 個(gè)子菜單。這
41、樣做使窗體顯得更加美觀。為項(xiàng)目添加了必要的控件之后,開(kāi)始進(jìn)行界面設(shè)計(jì)。先在窗體上添加一個(gè) SSTab控件,單擊鼠標(biāo)右鍵在快捷菜單中選擇”屬性”命令。將其選項(xiàng)卡的數(shù)目定為4 個(gè),標(biāo)題分別為:今日進(jìn)貨、本月進(jìn)貨、本季度進(jìn)貨、本年度進(jìn)貨。由于每個(gè)選項(xiàng)卡的界面都一樣,現(xiàn)以”今日進(jìn)貨”選項(xiàng)卡為例,加入兩個(gè) datagrid 控件,兩個(gè) Adodc 控件,一個(gè) Label 控件,一個(gè) textbox 控件和 8 個(gè) command 控件。其中兩個(gè) Adodc 的數(shù)據(jù)源連接都是才用的相對(duì)路徑與 sellsystem 的 buy 表連接的,兩個(gè) Adodc 連接的 SQL 語(yǔ)句分別如下:select * fr
42、om buyselect 生產(chǎn)廠商,sum(總金額) as 各廠商進(jìn)貨總金額 from buy group by 生產(chǎn)廠商。(8)銷(xiāo)貨統(tǒng)計(jì)窗體 進(jìn)銷(xiāo)存統(tǒng)計(jì)菜單下有 4 個(gè)子菜單,分別是今日銷(xiāo)貨、本月銷(xiāo)貨、本季度銷(xiāo)貨、今年銷(xiāo)貨。由于它們的界面非常相似,本程序中使用一個(gè) SSTab 控件以選項(xiàng)卡形式在一個(gè)窗體中實(shí)現(xiàn) 4 個(gè)子菜單。其界面設(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è) command 控件。其中兩個(gè) Adodc 的數(shù)據(jù)源連接都是采
43、用的相對(duì)路徑與 sell 表連接的,兩個(gè) Adodc 連接的 SQL 語(yǔ)句分別如下:select * from sellselect 生產(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è)命 17令按紐在進(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è)是按
44、條件對(duì)現(xiàn)存商品進(jìn)行查詢(xún),用戶(hù)可以根據(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ì)管理員用戶(hù)的管理, 本節(jié)前面曾經(jīng)提過(guò)系統(tǒng)初始化的功能,但其初始化并不能對(duì)員工表進(jìn)行操作,當(dāng)管理員登陸本系統(tǒng)時(shí),可以訪問(wèn)此窗體,對(duì)用戶(hù)表進(jìn)行維護(hù)。但不能對(duì)管理員進(jìn)行刪除操作,此操作已被本人屏蔽。 (12)更換用戶(hù)功能 在一個(gè)商品進(jìn)銷(xiāo)存公司可能會(huì)存在
45、員工交接班的現(xiàn)象,為了方便用戶(hù)交接班的操作順利進(jìn)行,在系統(tǒng)管理模塊中做了一個(gè)更換用戶(hù)子菜單,該子菜單便順利的實(shí)現(xiàn)了此功能,而且它也方便了管理員的登陸管理。(13)修改密碼 為了方便用戶(hù)使用,在本模塊中還設(shè)置了一個(gè)修改密碼窗體,該窗體主要包括一個(gè)用戶(hù)名輸入、一個(gè)原密碼輸入和兩個(gè)新密碼輸入。此窗體實(shí)現(xiàn)的功能是顯而易見(jiàn)的,方便了用戶(hù)的操作,增加了系統(tǒng)使用的安全性。具體做法是:先要求用戶(hù)將四個(gè)必填項(xiàng)填寫(xiě)完整,然后對(duì)兩個(gè)新密碼進(jìn)行相同判斷,如果相同,則將記錄集 rs_employee 打開(kāi),對(duì)用戶(hù)名和原密碼進(jìn)行核對(duì),如果相同,就將老密碼替換為新密碼。本節(jié)總結(jié):對(duì)于本商品進(jìn)銷(xiāo)存管理系統(tǒng)功能的實(shí)現(xiàn),重點(diǎn)和難
46、點(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í)將退貨 18信息添加到退貨表中,然后將退貨數(shù)量從進(jìn)銷(xiāo)存表中減掉,最后將退貨數(shù)量加到商品庫(kù)存表中。在本系統(tǒng)
47、管理員登陸時(shí),顯示給管理員的第一個(gè)界面:系統(tǒng)初始化也是本系統(tǒng)的又一大功能特色,其實(shí)現(xiàn)過(guò)程中要嚴(yán)格控制每一個(gè)記錄集對(duì)相應(yīng)數(shù)據(jù)表的打開(kāi)與關(guān)閉操作。4. 系統(tǒng)各模塊的設(shè)計(jì)及實(shí)現(xiàn) 經(jīng)過(guò)了前面的可行性研究和需求分析,現(xiàn)在可以對(duì)我要完成的功能模塊的實(shí)現(xiàn)做詳細(xì)的設(shè)計(jì)。4.1用戶(hù)控制模塊及界面詳細(xì)設(shè)計(jì)退出 Splash 窗體后就進(jìn)入了登錄窗體。輸入相應(yīng)的用戶(hù)名和密碼。如果用戶(hù)的密碼輸錯(cuò)錯(cuò)誤,則不能登錄到系統(tǒng)主窗體;如果用戶(hù)密碼正確,則進(jìn)入系統(tǒng)的 MDI 主窗體。 19代碼設(shè)計(jì):Private Sub Label3_Click() If Combo1.Text = Then MsgBox 請(qǐng)輸入用戶(hù)名!, vb
48、OKOnly + vbInformation, 注意 Combo1.SetFocus Exit Sub ElseIf Text1.Text = Then MsgBox 請(qǐng)輸入密碼!, vbOKOnly + vbInformation, 注意 Text1.SetFocus Exit Sub4.2 主窗體 在 MDI 主窗體中,設(shè)計(jì)了 5 項(xiàng)菜單,分別為“交易管理” 、 “進(jìn)貨統(tǒng)計(jì)”“銷(xiāo)售統(tǒng)計(jì)” 、 “查看數(shù)據(jù)表” 、 “系統(tǒng)管理” 、管理員權(quán)限、進(jìn)貨統(tǒng)計(jì)、銷(xiāo)貨統(tǒng)計(jì)、查看數(shù)據(jù)表、系統(tǒng)管理。部分設(shè)計(jì)代碼如下: Private Sub mnBuyMonth_Click()frmBuyall.Text2
49、.Enabled = FalsefrmBuyall.SSTab1.Tab = 1 20frmBuyall.SSTab1.TabEnabled(0) = FalsefrmBuyall.SSTab1.TabEnabled(1) = TruefrmBuyall.SSTab1.TabEnabled(2) = FalsefrmBuyall.SSTab1.TabEnabled(3) = FalsefrmBuyall.Showstrbuy = select * from buy where 進(jìn)貨年= & inty & and 進(jìn)貨月= & intm & rs_buy.Open strbuy, cnn, ad
50、OpenKeyset, adLockPessimisticfrmBuyall.Adodc2.RecordSource = strbuyfrmBuyall.Adodc2.RefreshfrmBuyall.DataGrid2.ReBindIf rs_buy.EOF = True Then frmBuyall.Adodc6.RecordSource = strbuy frmBuyall.Adodc6.Refresh frmBuyall.DataGrid6.ReBind MsgBox 您本月沒(méi)有進(jìn)貨記錄!, vbOKOnly + vbInformation, 注意rs_buy.Closestrfcto
51、tal = select 生產(chǎn)廠商,sum(總金額) as 各廠商進(jìn)貨總金額 from buy where 進(jìn)貨年= & inty & and 進(jìn)貨月= & intm & group by 生產(chǎn)廠商rs_fctotal.Open strfctotal, cnn, adOpenKeyset, adLockPessimisticfrmBuyall.Adodc6.RecordSource = strfctotalfrmBuyall.Adodc6.RefreshfrmBuyall.DataGrid6.ReBindrs_fctotal.Closestrtotal = select sum(總金額) as
52、 進(jìn)貨總金額 from buy where 進(jìn)貨年= & inty & and 進(jìn)貨月= & intm & rs_total.Open strtotal, cnn, adOpenKeysetm, adLockPessimisticfrmBuyall.Text2.Text = rs_total.Fields(進(jìn)貨總金額)rs_total.CloseEnd Sub4.3 交易管理模塊及界面設(shè)計(jì)1進(jìn)貨登記:進(jìn)貨登記: 21在些界面的操作中可以進(jìn)行對(duì)所進(jìn)的商品的信息及生產(chǎn)廠商的相關(guān)信息的添加,清空等操作。 其實(shí)現(xiàn)的部分代碼如下:下面是對(duì)進(jìn)貨表進(jìn)行添加記錄操作! str_buy = select * f
53、rom buy where 進(jìn)貨編號(hào)= & Text1.Text & rs_buy.Open str_buy, cnn, adOpenStatic, adLockOptimistic 打開(kāi)進(jìn)貨表 If rs_buy.EOF = True Then rs_buy.AddNew rs_buy.Fields(進(jìn)貨編號(hào)) = Text1.Text rs_buy.Fields(商品名稱(chēng)) = Text3.Text rs_buy.Fields(生產(chǎn)廠商) = Text4.Text rs_buy.Fields(型號(hào)) = Text5.Text rs_buy.Fields(數(shù)量) = Val(Text6.Te
54、xt) rs_buy.Fields(進(jìn)貨價(jià)) = Val(Text7.Text) rs_buy.Fields(進(jìn)貨年) = Text9.Text rs_buy.Fields(進(jìn)貨月) = Text10.Text rs_buy.Fields(進(jìn)貨日) = Text11.Text rs_buy.Fields(業(yè)務(wù)員編號(hào)) = Text12.Text rs_buy.Fields(總金額) = Val(Text13.Text) rs_buy.Update rs_buy.Close 關(guān)閉進(jìn)貨表 Else MsgBox 此進(jìn)貨編號(hào)已存在,請(qǐng)重添!, vbOKOnly + vbInformation, 22
55、注意 Text1.Text = Text1.SetFocus rs_buy.Close Exit Sub 關(guān)閉進(jìn)貨表 End If下面是對(duì)商品庫(kù)存表進(jìn)行入庫(kù)操作! Dim sql As String sql = select * from goods where 商品編號(hào) = & Text2.Text & rs_goods.Open sql, cnn, adOpenStatic, adLockOptimistic If rs_goods.EOF = True Then rs_goods.Close str_goods = select * from goods rs_goods.Open st
56、r_goods, cnn, adOpenStatic, adLockOptimistic 打開(kāi)庫(kù)存表 rs_goods.AddNew rs_goods.Fields(商品編號(hào)) = Text2.Text rs_goods.Fields(商品名稱(chēng)) = Text3.Text rs_goods.Fields(生產(chǎn)廠商) = Text4.Text rs_goods.Fields(型號(hào)) = Text5.Text rs_goods.Fields(數(shù)量) = Val(Text6.Text) rs_goods.Fields(進(jìn)貨價(jià)) = Val(Text7.Text) rs_goods.Fields(銷(xiāo)貨
57、價(jià)) = Val(Text8.Text) rs_goods.Update MsgBox 商品入庫(kù)成功, vbOKOnly + vbExclamation, rs_goods.Close 關(guān)閉庫(kù)存表 Else numgoods = rs_goods.Fields(數(shù)量) rs_goods.Fields(數(shù)量) = Val(Text6.Text) + numgoods rs_goods.Update MsgBox 商品入庫(kù)成功, vbOKOnly + vbExclamation, 關(guān)閉庫(kù)存表 rs_goods.Close End IfEnd Sub2 2銷(xiāo)售登記:銷(xiāo)售登記: 23對(duì)銷(xiāo)售的商品進(jìn)行相
58、關(guān)信息的登記,并進(jìn)行行銷(xiāo)售金額的計(jì)算。其部分設(shè)計(jì)代碼如下:Private Sub Command1_Click() If Text1.Text = Then MsgBox 請(qǐng)?zhí)顚?xiě)銷(xiāo)貨編號(hào)!, vbOKOnly + vbInformation, 注意 Text1.SetFocus Exit Sub ElseIf Text2.Text = Then MsgBox 請(qǐng)?zhí)顚?xiě)商品編號(hào)!, vbOKOnly + vbInformation, 注意 Text2.SetFocus Exit Sub End If str_goods = select * from goods where 商品編號(hào)= & Tex
59、t2.Text & rs_goods.Open str_goods, cnn, adOpenStatic, adLockOptimistic If rs_goods.EOF = True Then MsgBox 對(duì)不起,此商品型號(hào)已無(wú)貨!請(qǐng)選擇其他型!, vbOKOnly + vbInformation, 注意 rs_goods.Close Exit Sub3 3 退貨登記退貨登記: 24對(duì)退貨的相關(guān)信息進(jìn)行記。如商品名,編號(hào),價(jià)格,退貨員,數(shù)量,金額時(shí)間等等進(jìn)行登記。 其部分實(shí)代碼如下:Private Sub Command1_Click()If Text1.Text = Then MsgB
60、ox 請(qǐng)?zhí)顚?xiě)退貨編號(hào)!, vbOKOnly + vbInformation, 注意 Text1.SetFocus Exit Sub ElseIf Text2.Text = Then MsgBox 請(qǐng)?zhí)顚?xiě)銷(xiāo)貨編號(hào)!, vbOKOnly + vbInformation, 注意 Text2.SetFocus Exit Sub ElseIf Text11.Text = Then MsgBox 請(qǐng)?zhí)顚?xiě)商品數(shù)量!, vbOKOnly + vbInformation, 注意 Text11.SetFocus Exit SubEnd If 下面是對(duì)銷(xiāo)售表進(jìn)行操作! str_sell = select * fro
61、m sell where 銷(xiāo)貨編號(hào)= & Text2.Text & rs_sell.Open str_sell, cnn, adOpenStatic, adLockOptimistic If rs_sell.EOF = True Then MsgBox 對(duì)不起,沒(méi)有銷(xiāo)售此商品型號(hào)!無(wú)法退貨!, vbOKOnly + vbInformation, 注意 rs_sell.Close Exit Sub 25 ElseIf rs_sell.Fields(數(shù)量) Val(Text11.Text) Then MsgBox 對(duì)不起,退貨數(shù)量過(guò)大,無(wú)法退貨!, vbOKOnly + vbInformation
62、, 注意 rs_sell.Close Exit Sub44 進(jìn)貨統(tǒng)計(jì)模塊及界面設(shè)計(jì)主要用于對(duì)商品每日,每月,第季度,每年的進(jìn)貨情況進(jìn)行統(tǒng)計(jì)管理,此功能只有以管理員的身份進(jìn)入時(shí)才為可用狀態(tài)。其部分設(shè)計(jì)代碼如下:Private Sub Form_Load()inty = Year(Date)intm = Month(Date)intd = Day(Date)Dim str As Stringstr = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & App.Path & sellsystem.mdb;Adodc1 的相對(duì)路徑連接Adodc1.Conn
63、ectionString = strAdodc1.CommandType = adCmdTextAdodc1.RecordSource = select * from buy where 進(jìn)貨年= & inty & and 進(jìn)貨月= & intm & and 進(jìn)貨日= & intd & Adodc1.Refresh 26Set DataGrid1.DataSource = Adodc1DataGrid1.RefreshAdodc2 的相對(duì)路徑連接Adodc2.ConnectionString = strAdodc2.CommandType = adCmdTextAdodc2.RecordSou
64、rce = select * from buy where 進(jìn)貨年= & inty & and 進(jìn)貨月= & intm & Adodc2.RefreshSet DataGrid2.DataSource = Adodc2DataGrid2.Refresh45 銷(xiāo)售統(tǒng)計(jì)模塊及界面設(shè)計(jì)主要用于對(duì)商品每日,每月,第季度,每年的進(jìn)銷(xiāo)存情況進(jìn)行統(tǒng)計(jì)管理,此功能只有以管理員的身份進(jìn)入時(shí)才為可用狀態(tài)。其部分設(shè)計(jì)代碼如下:Private Sub Form_Load()inty = Year(Date)intm = Month(Date)intd = Day(Date)Text1.Enabled = FalseT
65、ext2.Enabled = False 27Text3.Enabled = FalseText4.Enabled = FalseDim str As Stringstr = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & App.Path & sellsystem.mdb;Adodc1.ConnectionString = strAdodc1.CommandType = adCmdTextAdodc1.RecordSource = select * from sell where 銷(xiāo)售年= & inty & and 銷(xiāo)售月= & intm &
66、and 銷(xiāo)售日= & intd & Adodc1.RefreshSet DataGrid1.DataSource = Adodc1DataGrid1.RefreshAdodc2.ConnectionString = strAdodc2.CommandType = adCmdTextAdodc2.RecordSource = select * from sell where 銷(xiāo)售年= & inty & and 銷(xiāo)售月= & intm & Adodc2.RefreshSet DataGrid2.DataSource = Adodc2DataGrid2.Refresh4.6 查看數(shù)據(jù)表功能模塊的設(shè)計(jì)在這個(gè)功能模塊中,主要有如下幾個(gè)小功能模塊組成:查看貨表, 查看現(xiàn)存超市表,查看退超市表,查看銷(xiāo)售表,管理員工表等幾個(gè)功能.主要實(shí)現(xiàn)對(duì)超市管理中的超市進(jìn),存,銷(xiāo)進(jìn)行管理.還有對(duì)系統(tǒng)員工的管理.這幾個(gè)功能都是以表格的形式來(lái)顯相關(guān)的數(shù)據(jù)的.在查看現(xiàn)成超市表中,采用搜索的功能,在表中填入相關(guān)的的關(guān)鍵詞,就能查到相關(guān)的超市名,超市號(hào),生產(chǎn)商,條碼.主要是采用 SQL 語(yǔ)言中的搜索,SELCET 語(yǔ)句進(jìn)行關(guān)
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教部編版教材三年級(jí)上冊(cè)道德與法治第四單元家是最溫暖的地方教學(xué)ppt課件 (全套)
- 蘇教版小學(xué)科學(xué)三年級(jí)下冊(cè)《雨下得有多大》課件1
- 花的形態(tài)與結(jié)構(gòu)課件匯總
- 一年級(jí)-數(shù)學(xué)下冊(cè)十幾減九人教版課件
- 電影膠片動(dòng)態(tài)課件
- 高電壓技術(shù)課件第六章
- 項(xiàng)目采購(gòu)管理(6)
- 四川省攀枝花市XX小學(xué)一年級(jí)數(shù)學(xué)下冊(cè)六100以?xún)?nèi)的加法和減法二練習(xí)十三2課件蘇教版
- 山東省青島市黃島區(qū)海青鎮(zhèn)中心中學(xué)七年級(jí)歷史下冊(cè) 15 明朝君權(quán)的加強(qiáng)課件 新人教版
- 把握人物的性格特征
- 剪小紙人PPT課件
- 八年級(jí)物理探究凸透鏡成像規(guī)律8
- 1[1]22配方法2
- 近代機(jī)械行業(yè)唯物主義管理分析自然觀
- 全國(guó)科技創(chuàng)新大賽“科學(xué)幻想畫(huà)”獲獎(jiǎng)作品ppt課件