已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
浙江廣播電視大學??飘厴I(yè)論文(設計)題 目 商場管理系統(tǒng) 前言商場管理系統(tǒng)是一個商場不可缺少的部分,它的內容對于商場的決策者和管理者來說都至關重要,所以商場管理系統(tǒng)應該能夠為用戶提供充足的信息和快捷的銷售,查詢手段。但一直以來人們使用傳統(tǒng)人工的方式管理文件信息,這種管理方式存在著許多缺點,如:效率低、保密性差,另外時間一長,將產(chǎn)生大量的文件和數(shù)據(jù),這對于查找、更新和維護都帶來了不少的困難。隨著科學技術的不斷提高,計算機科學日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領域并發(fā)揮著越來越重要的作用。作為計算機應用的一部分,使用計算機對品質信息進行管理,具有著手工管理所無法比擬的優(yōu)點.例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高商場管理的效率,也是企業(yè)的科學化、正規(guī)化管理,與世界接軌的重要條件。因此,開發(fā)這樣一套管理軟件成為很有必要的事情,在下面的各章中我們將以開發(fā)一套商場管理系統(tǒng)為例,談談其開發(fā)過程和所涉及到的問題及解決方法。摘要商場管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護以及前端應用程序的開發(fā)兩個方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強、數(shù)據(jù)安全性好的庫。而對于后者則要求應用程序功能完備,易使用等特點。 經(jīng)過分析,我們使用 MICROSOFT公司的 VISUAL BASIC開發(fā)工具,利用其提供的各種面向對象的開發(fā)工具,尤其是數(shù)據(jù)窗口這一能方便而簡潔操縱數(shù)據(jù)庫的智能化對象,首先在短時間內建立系統(tǒng)應用原型,然后,對初始原型系統(tǒng)進行需求迭代,不斷修正和改進,直到形成用戶滿意的可行系統(tǒng)。本系統(tǒng)主要完成對商場的管理,包括進貨管理,銷售管理,庫存管理和員工管理四個方面。系統(tǒng)可以完成對各類信息的瀏覽、查詢、添加、刪除、修改等功能。 系統(tǒng)的核心是銷售、庫存查詢和進貨管理三者之間的聯(lián)系,每一個表的修改都將聯(lián)動的影響其它的表,當完成銷售或進貨操作時系統(tǒng)會自動地完成相對應信息的修改。查詢功能也是系統(tǒng)的核心之一,在系統(tǒng)中主要根據(jù)商品編號和商品名稱等進行查詢,其目的都是為了方便用戶使用,以求更快的查找到各個物料和產(chǎn)品品質的基本信息。系統(tǒng)有完整的用戶添加、刪除和密碼修改功能,系統(tǒng)采用Microsoft Office中的Access 2000來設計數(shù)據(jù)庫,并使用當前優(yōu)秀的開發(fā)工具VB 6.0 ,它有著最為靈活的數(shù)據(jù)庫結構,對數(shù)據(jù)庫應用有著良好的支持。論文主要介紹了本課題的開發(fā)背景,所要完成的功能和開發(fā)的過程。重點的說明了系統(tǒng)設計的重點、設計思想、難點技術和解決方案。關鍵字:控件,窗體,數(shù)據(jù)庫,visual basic語言,商場,商品目錄引言.1第一章 Visual basic 6.0 簡介. .21.1 Visual basic 6.0 簡介. . .21.2 ACCESS數(shù)據(jù)庫介紹. 21.3 ADO技術. 31.4 SQL語言.4第二章 需求分析.52.1 系統(tǒng)分析.5第三章 系統(tǒng)設計.73.1數(shù)據(jù)庫設計.73.2系統(tǒng)功能介紹.93. 3 流程圖和E-R圖設計.143.4系統(tǒng)演示. .16第四章 系統(tǒng)測試.39結束語. .41致謝. .42參考文獻.43引言本軟件使用Microsoft Visual Basic 6.0進行編寫。數(shù)據(jù)庫技術的產(chǎn)生與發(fā)展源于對于數(shù)據(jù)的組織和管理。數(shù)據(jù)庫技術是數(shù)據(jù)管理的技術,它隨著數(shù)據(jù)管理任務的需要而產(chǎn)生于20世紀60年代中期。這是一門綜合性技術,涉及操作系統(tǒng),數(shù)據(jù)結構,算法設計和程序設計等知識。數(shù)據(jù)庫技術的基本思想是對數(shù)據(jù)實行集中,統(tǒng)一,獨立的管理,用戶可以最大限度的共享數(shù)據(jù)資源。數(shù)據(jù)庫系統(tǒng)實際上是一個應用系統(tǒng),它是在計算機硬,軟件系統(tǒng)支持下,由用戶,數(shù)據(jù)庫管理系統(tǒng),存儲在存儲設備上的數(shù)據(jù)和數(shù)據(jù)庫應用程序構成的數(shù)據(jù)處理系統(tǒng)。數(shù)據(jù)庫系統(tǒng)是由數(shù)據(jù),數(shù)據(jù)庫管理系統(tǒng),應用程序,用戶組成。數(shù)據(jù)庫的特點:1.實現(xiàn)數(shù)據(jù)共享 2.實現(xiàn)數(shù)據(jù)獨立3.減少了數(shù)據(jù)冗余度 4.避免了數(shù)據(jù)不一致性5.加強了對數(shù)據(jù)的保護。數(shù)據(jù)庫應用系統(tǒng)(DATABASE APPLICATION SYSTEMS DBAS)1 管理信息系統(tǒng)2 開放式信息服務系統(tǒng)一個數(shù)據(jù)庫應用系統(tǒng)通常是由數(shù)據(jù)庫和應用程序兩部分組成,它們是在數(shù)據(jù)庫管理系統(tǒng)支持下設計和開發(fā)出來的。第一章 系統(tǒng)實現(xiàn)的理論基礎1.1 VISUAL BASIC 6.0 簡介Visual Basic作為當今社會功能強大的可視化開發(fā)工具具有以下幾大特點:(1)成功的簡化了界面的設計過程。它在Windows平臺上提供了圖形用戶界面(GUI)的集成開發(fā)環(huán)境(IDE)。在集成開發(fā)環(huán)境中,你可以選擇想要顯示的工具欄,將按鈕添加并移動到工具欄中,在不固定的或固定的工具欄中以及SDI或MDI界面中進行選擇,Visual Basic的IDE就像飛機的坐艙,完成你工作所需的所有量表和儀器都已經(jīng)配備好了。采用簡單易學的Basic語言,它既適用于沒有任何編程經(jīng)驗的開發(fā)者學習,也適合于開發(fā)各種復雜的底層應用程序,使用Basic語言編寫的應用程序簡潔靈巧易于維護,可以說它是一種“天生結構化”的語言。(2)提供了多種向導。利用這些向導,可以快速地完成一般性的任務,例如生成其控件不綁定到數(shù)據(jù)控件上的純代碼窗體,建立查詢,添加工具,制作圖表,以及發(fā)布創(chuàng)建的應用程序等,這樣可以大大加快應用程序的開發(fā)過程。(3)具有強大的數(shù)據(jù)和字符串處理功能。Visual Basic還是一種易于擴充功能的開發(fā)系統(tǒng)。一方面,它可以使用第三方廠家提供的各種Visual Basic使用的控件;另一方面,開發(fā)者也可以使用其他編程語言編寫自己所需的控件,因此它是一種可以不斷擴充功能的開發(fā)系統(tǒng)。(4)提供了IntelliSense技術。當你在Visual Basic的代碼窗口敲進對象名稱的時候,IntelliSense技術會自動向你顯示一些相關的信息,例如對象的屬性和方法1.2 ACCESS數(shù)據(jù)庫介紹Microsoft Access 是微軟公司開發(fā)的第一個面向Windows平臺的桌面數(shù)據(jù)庫管理系統(tǒng),它充分利用了Windows平臺的優(yōu)越性,如圖形界面和Windows的事件驅動機制等。作為Microsoft的office套件產(chǎn)品之一,access已經(jīng)賣出了近700萬份,成為世界上最流行的桌面數(shù)據(jù)庫系統(tǒng)。Access與許多優(yōu)秀的關系數(shù)據(jù)庫一樣,可以讓你很容易地連接相關的信息而且還對其他的數(shù)據(jù)庫系統(tǒng)有所補充。它能操作其它來源的資料,包括許多流行的PC數(shù)據(jù)庫程序(如dBASE,Paradox,Microsoft FoxPro)和服務器、小型積極大型機上的許多SQL數(shù)據(jù)庫。Access還完全支持Microsoft的OLE技術。Access還提供windows操作系統(tǒng)的高級應用程序開發(fā)系統(tǒng)。Access與其它數(shù)據(jù)庫開發(fā)系統(tǒng)之間相當顯著的區(qū)別就是:您不用寫一行代碼,就可以在很短的時間里開發(fā)出一個功能強大而且相當專業(yè)的數(shù)據(jù)庫應用程序,并且這一愉快的過程是完全可視的!如果您能給它加上簡短的VBA代碼,那么您的程序決不比專業(yè)程序員潛心開發(fā)的程序差。1.3 ADO技術 Active Data Objects(ADO)微軟最新的數(shù)據(jù)庫訪問技術,它被設計用來同新的數(shù)據(jù)訪問層OLE DB Provider一起協(xié)同工作,以提高通用數(shù)據(jù)訪問(Universal Data Access).OLE DB是一個低層的數(shù)據(jù)訪問接口,用它可以訪問各種數(shù)據(jù)源,包括傳統(tǒng)的關系型數(shù)據(jù)庫,以及電子郵件系統(tǒng)及自定義的商業(yè)對象。ADO向我們提供了一個熟悉的,高層的對OLE DB的Automation的封裝接口。對那些熟悉RAO的程序員來說,可以把OLE DB比作是ODBC驅動程序。如同RAO對象是ODBC驅動程序接口一樣,不同的數(shù)據(jù)源要求它們自己的OLE DB提供者(OLE DB Provider)。ADO最重要的三個對象是:Connection, Command, Recordset。(1) Connection對象Connection對象用于建立與數(shù)據(jù)庫的連接。通過連接可從應用程序訪問數(shù)據(jù)源。它保存諸如指針類型,連接字符串,查詢超時,連接超時和缺省數(shù)據(jù)庫這樣的連接信息。(2) Command對象在建立Connection后,可以發(fā)出命令操作數(shù)據(jù)源。一般情況下,Command對象可以在數(shù)據(jù)庫中添加,刪除或更新數(shù)據(jù),或者在表中進行數(shù)據(jù)查詢。Command對象在定義查詢參數(shù)或執(zhí)行一個有輸出參數(shù)的存儲過程時非常有用。(3) Recordset對象Recordset對象只代表一個記錄集,這個記錄集是一個連接的數(shù)據(jù)庫中的表,或者是Command對象的執(zhí)行結果返回的記錄集。在ADO對象模型中,是在行中檢查和修改數(shù)據(jù)的最主要的方法,所有對數(shù)據(jù)的操作幾乎都是在Recordset對象中完成的。Record對象用于指定行,移動行、添加、更改、刪除記錄。1.4 SQL語言SQL語言是一種介于關系代數(shù)與關系演算之間的結構化查詢語言,其功能不僅僅是查詢。SQL是一個通用的、功能極強的關系數(shù)據(jù)庫語言。SQL語言之所以能夠為用戶和業(yè)界所接受,并成為國際標準,是因為它是一個綜合的、功能極強同時有簡單易學的語言。SQL語言集數(shù)據(jù)查詢(Data Query)、數(shù)據(jù)操縱(Data Manipulation)、數(shù)據(jù)定義(Data Definition)和數(shù)據(jù)控制(Data Control)功能于一體,主要特點包括:(1) 綜合統(tǒng)一數(shù)據(jù)庫系統(tǒng)的主要功能是通過數(shù)據(jù)庫支持的數(shù)據(jù)語言來實現(xiàn)的。SQL語言集數(shù)據(jù)定義語言DDL、數(shù)據(jù)操縱語言DML、數(shù)據(jù)控制語言DCL的功能于一體,語言風格統(tǒng)一,可以獨立完成數(shù)據(jù)庫生命周期中的全部活動,包括定義關系模式、建立數(shù)據(jù)庫、插入數(shù)據(jù)、查詢、更新、維護、數(shù)據(jù)庫重構、數(shù)據(jù)庫安全性控制等一系列操作要求,這就為數(shù)據(jù)庫應用系統(tǒng)的開發(fā)提供了良好的環(huán)境。用戶在數(shù)據(jù)庫系統(tǒng)投入運行后,還可根據(jù)需要隨時地逐步地修改模式,且并不影響數(shù)據(jù)庫的運行,從而是系統(tǒng)具有良好的可擴展性。(2)高度非過程化非關系數(shù)據(jù)模型的數(shù)據(jù)操縱語言是面向過程的語言,用其完成某項請求,必須指定存取路徑。而用SQL語言進行數(shù)據(jù)操作,只要提出“做什么”,而無須指明“怎么做”,因此無須了解存取路徑,存取路徑的選擇以及SQL語句的操作過程由系統(tǒng)自動完成。這不但大大減輕了用戶負擔,而且有利于提高數(shù)據(jù)獨立性。(3)面向集合的操作方式非關系數(shù)據(jù)模型采用的是面向記錄的操作方式,操作對象是一記錄。例如查詢所有平均成績在80分以上的學生姓名,用戶必須一條一條地把滿足條件的學生記錄找出來(通常要說明具體處理過程,即按照哪條路徑,如何循環(huán)等)。而SQL語言采用集合操作方式,不僅操作對象、查找結果可以是元組的集合,而且一次插入、刪除、更新操作的對象也可以是元組的集合。(4)以同一種語法結構提出兩種使用方式SQL語言既是自含試語言,又是嵌入式語言。作為自含式語言,它能夠獨立地用于聯(lián)機交互的使用方式,用戶可以在終端鍵盤上直接鍵入SQL命令對數(shù)據(jù)庫進行操作;作為嵌入式語言,SQL語言能夠嵌入到高級語言(例如C、COBOL、FORTRAN)程序中,供程序員設計程序時使用。而在兩中不同的使用方式下,SQL語言的語法結構基本上是一致的。第二章 需求分析2.1系統(tǒng)分析作為一個商場管理系統(tǒng),其功能是實現(xiàn)商場中商品的進貨銷售,庫存等管理的系統(tǒng)化、規(guī)范化和自動化。本系統(tǒng)主要要完成的功能有:(1)交易管理:包括進貨登記、銷貨登記、退貨登記等。其中進貨登記中還包含進貨商登記,如過是新的進貨廠商,可以直接在此登記入庫。進貨和銷售的主要交易都是在此進行。每次交易(包括進貨、銷貨和退貨)都需要對商品名稱、生產(chǎn)廠商、商品型號、單價、數(shù)量、總金額、交易日期、經(jīng)手業(yè)務員編號等各項記錄。在交易過程中,程序的編寫盡可能的方便員工進行交易,比如:進貨登記時,如果商品編號相同,則自動添加該商品的其它屬性;銷貨登記時,用戶只要輸入商品編號,該商品的其它屬性即可自動出現(xiàn)。退貨登記時,只要輸入正確的銷貨編號,其銷售信息也將自動列出,盡量的方便了用戶的操作,同時對于登陸的員工編號程序也自動的將其列在進貨登記、銷貨登記中,已防止員工進行非正常的交易。(2)進貨統(tǒng)計:包括今日進貨統(tǒng)計、本月進貨統(tǒng)計、本季度進貨統(tǒng)計、本季度進貨統(tǒng)計、本年度進貨統(tǒng)計等。其中每次進貨統(tǒng)計都是按進貨廠商和進貨總金額統(tǒng)計顯示的。使用一個表格顯示所選時間段的全部進貨數(shù)據(jù),包括進貨編號、商品名稱等。再使用另一個表格顯示分別從各個廠商進貨的金額,還有一個文本框用于顯示次時間段的進貨總金額。(3)銷貨統(tǒng)計:包括今日銷售統(tǒng)計、本月銷售統(tǒng)計、本季度銷售統(tǒng)計、本年度銷售統(tǒng)計等,其中每次銷售統(tǒng)計都是按生產(chǎn)廠商和銷售總金額統(tǒng)計顯示的。使用一個表格顯示所選時間段的全部銷售數(shù)據(jù),包括銷貨編號、商品名稱等。再使用另一個表格顯示分別從各個廠商進貨的金額,還有一個文本框用于顯示次時間段的銷售總金額。(4)查看數(shù)據(jù)表:實現(xiàn)各種數(shù)據(jù)表的瀏覽,包括進貨表,商品庫存表、銷售表、退貨表、員工表、進貨商表等。對于員工表管理員還可以對其進行刪除或添加用戶操作。(5) 系統(tǒng)管理: 包括更換用戶、修改密碼、退出系統(tǒng)等。更換用戶的操作方便了用戶的使用,同時更加方便了管理員對于系統(tǒng)數(shù)據(jù)的查詢,可以做到隨時查看,以使管理員對帳目一目了然,同時方便了普通用戶的交接班使用本系統(tǒng)。修改密碼和退出系統(tǒng)都是對于系統(tǒng)管理的輔助功能,再這里就不詳細說明了。(6) 其它窗體: 包括主窗體、登陸窗體、系統(tǒng)初始化窗體。主窗體就是將各個模塊的大意列在菜單中,然后通過每一個菜單將其它的窗體逐個對應的連到主窗體中。登陸窗體為本系統(tǒng)的啟動窗體,其功能是讓合法的用戶使用本系統(tǒng),已防止其它的非法人員使用該系統(tǒng)。并對登陸的用戶做一下權限的區(qū)別:分為管理員和普通員工。系統(tǒng)初始化窗體的主要目的是:在本系統(tǒng)的試運行階段成功后是管理員可以直接把除了員工表以外的所有數(shù)據(jù)表的內容清零。登陸窗體中設計了一個權限,可以區(qū)分是員工登陸還是管理員登陸,如果是管理員則提示是否進行系統(tǒng)初始化,否則直接進入主窗體。其功能模塊圖請查看附圖。第三章 系統(tǒng)設計3.1數(shù)據(jù)庫設計上面提到的各種功能的實現(xiàn)都離不開數(shù)據(jù)庫的支持,因此數(shù)據(jù)庫設計作為本系統(tǒng)設計的一部分不可缺少。開發(fā)本系統(tǒng)中使用的數(shù)據(jù)庫系統(tǒng)是Windows Access 2000 。從上面的功能分析不難看出本系統(tǒng)需要建立以下幾個數(shù)據(jù)表:buy表(進貨表)、goods表(現(xiàn)存商品表)、sell表(銷售表)、retreat表(退貨表)、employee表(員工表)、manufacturer表(進貨商表)。由于數(shù)據(jù)量比較小,所以這些數(shù)據(jù)表都存在一個數(shù)據(jù)庫下:sellsystem.mdb 下面對各個數(shù)據(jù)表的結構做一下簡單介紹:在系統(tǒng)的數(shù)據(jù)庫設計中,進貨表、銷貨表、商品庫存表和退貨表涉及了交易管理三個子菜單的絕大部分數(shù)據(jù),是本系統(tǒng)數(shù)據(jù)庫的核心,所以將對其部分表的設置列表顯示。Manufacturer表(進貨商表)中包括有廠商編號、廠商名稱、聯(lián)系人姓名、電話、廠商地址等字段,表略。employee(員工表)中包括有員工編號、員工姓名、員工密碼、員工電話、員工地址等字段,表略。buy表(進貨表)中包括有進貨編號、商品編號、商品名稱、生產(chǎn)廠商、型號、數(shù)量、進貨價、進貨年、進貨月、進貨日、總金額、業(yè)務員編號等。設計該數(shù)據(jù)表的主要目的是方便管理員的查看,使系統(tǒng)的數(shù)據(jù)管理能夠更加層次化。具體設置如表3-1所示。表3-1 buy表字段名數(shù)據(jù)類型說明進貨編號文本字段大小為20商品名稱文本字段大小為20生產(chǎn)廠商文本字段大小為20型號文本字段大小為20數(shù)量數(shù)字長整型進貨價貨幣貨幣進貨年數(shù)字整型進貨月數(shù)字整型進貨日數(shù)字整型業(yè)務員編號文本字段大小為20總金額貨幣貨幣goods表(現(xiàn)存商品表)中包括有商品編號、生產(chǎn)廠商、商品名稱、型號、進貨價、銷貨價、數(shù)量、進貨年、進貨月、進貨日、業(yè)務員編號、總金額等字段。具體設置如表3-2所示。表3-2 goods表字段名數(shù)據(jù)類型說明商品編號文本字段大小為20商品名稱文本字段大小為20生產(chǎn)廠商文本字段大小為20型號文本字段大小為20數(shù)量數(shù)字長整型進貨價貨幣貨幣銷貨價貨幣貨幣sell表(銷貨表)中包括有銷貨編號、商品編號、商品名稱、生產(chǎn)廠商、型號、數(shù)量等字段,由于篇幅有限,其表略。 retreat表(退貨表)中包括有退貨編號、銷貨編號、生產(chǎn)廠商、商品名稱、型號、單價、數(shù)量、總金額、退貨年、退貨月、退貨日、業(yè)務員編號等。具體設置如表3-3所示。表3-3 retreat表字段名數(shù)據(jù)類型說明退貨編號文本字段大小為20銷貨編號文本字段大小為20商品名稱文本字段大小為20生產(chǎn)廠商文本字段大小為20型號文本字段大小為20單價貨幣貨幣數(shù)量數(shù)字長整型總金額貨幣貨幣退貨年數(shù)字整型退貨月數(shù)字整型退貨日數(shù)字整型業(yè)務員編號文本字段大小為203.2系統(tǒng)功能介紹(1)登陸窗體 該登陸窗體對用戶登陸做了一個簡單的判斷,如果是管理員登陸則可進入初始化界面,然后再進入主界面。 具體做法是:先在窗體級中定義一個記錄集,用于打開employee表,打開后將該表中的字段:員工姓名,依次加到combo1中。全加入后關閉記錄集,然后對combo1和text1中的內容做一下簡單判斷:如果combo1和text1中的數(shù)據(jù)正好和employee表中的某個記錄相同,則通過登陸窗體,否則提示用戶用戶名或密碼有誤。在通過登陸窗體中還要對用戶名做一下判斷:如果是管理員登陸,則進入系統(tǒng)初始化窗體,如果是普通用戶登陸,則進入主界面。(2) 初始化窗體 該初始化窗體為本系統(tǒng)的使用者提供了試運行服務,如果使用者試運行后決定正式使用,可以通過管理員登陸本窗體對系統(tǒng)進行初始化,即清空試運行階段的所有銷售數(shù)據(jù)。具體實現(xiàn)過程為:定義5個記錄集,其每一個記錄集控制一個數(shù)據(jù)表的打開與關閉操作,其記錄集的取名與數(shù)據(jù)表相近:rs_sell, rs_buy, rs_goods, rs_retreat,rs_manufacturer.當管理員點擊是標簽時,先出現(xiàn)一個消息框,問管理員是否真的要進行初始化。如果是,則5個記錄集依次連接到5個數(shù)據(jù)表上,然后對每個數(shù)據(jù)表的內容進行刪除操作。具體刪除方法為:先對表的狀態(tài)進行判斷,如果某個數(shù)據(jù)表的內容為空,則直接關閉記錄集,以免多步操作數(shù)據(jù)表出現(xiàn)錯誤;如果該數(shù)據(jù)表不為空,則依次刪除該數(shù)據(jù)表的每一個記錄,對于每一個數(shù)據(jù)表都要做此判斷,并且每打開一個新的數(shù)據(jù)表都要關閉上一個數(shù)據(jù)表,這樣操作起來層次顯得比較清晰,而且維護起來也比較方便。(3)主窗體 主窗體的建立十分簡單,只需將所要實現(xiàn)的功能編輯成菜單即可。該窗體的運行過程為:用戶首先進入登陸窗體,如果是管理員登陸,則先進入初始化窗體,經(jīng)過判斷是否需要初始化后,進入主窗體。其權限為:銷貨統(tǒng)計、進貨統(tǒng)計、查看數(shù)據(jù)表和系統(tǒng)管理。其權限的設置使管理員能夠方便的查看任何時間段內的所有信息,還可以對員工表進行管理。如果是普通用戶登陸,則直接進入主窗體,其授予的權限只有交易管理和系統(tǒng)管理,也就是說員工只能負責對商品進行如庫登記、銷貨登記和退貨登記,另外在一個員工對本系統(tǒng)使用的整個期間內,進貨登記、銷貨登記和退貨登記三個窗體中的顯示的業(yè)務員編號都由系統(tǒng)自動給出的該員工的員工編號。(4)進貨登記窗體 本窗體用來實現(xiàn)商品進貨功能,將進貨信息添加到buy表,再將該信息選擇性的加入goods表。如果是新的進貨廠商,可以在此入庫登記。其具體實現(xiàn)過程如下所述:先在窗體級變量中定義三個記錄集:rs_buy,rs_goods,rs_manufacture用來控制三個數(shù)據(jù)表:buy表,goods表,manufacturer表。在用戶點擊添加商品中的添加入庫操作之前,程序先會檢查是否有用戶是否有個別屬性為空,并做出提示。然后將商品添加到buy表中,再添加到goods表。在添加到goods表時,程序會先判斷該商品編號是否已經(jīng)存在,如果存在則直接將該添加信息的數(shù)量加到goods表中相應的記錄上。為此,進貨編號、商品編號是buy表、goods表中不可重復的屬性。為方便用戶操作,程序特在商品編號的文本框:text2的Change事件中做了一個判斷,即如果該商品編號存在的話直接顯示該商品的其他屬性。另外,對于總金額文本框也是由數(shù)量和進貨價兩個文本框的Change事件計算入內的。如果是新的進貨商,可以將它的信息添加到進貨商表。其過程和上面所說的添加到buy表基本相同,這里就不做介紹了。(5) 銷貨登記窗體 本窗體主要功能是對商品進行銷售,首先對員工輸入的銷貨信息進行完整條件的判斷,條件符合后進行銷售。然后將銷售信息存入sell表,并對goods表的數(shù)量做相應修改。 具體實現(xiàn)過程為:先在窗體集中定義兩個記錄集:rs_sell,rs_goods,用來控制兩個數(shù)據(jù)表:sell表和goods表。在銷貨窗體中,如果用戶輸入的商品編號已經(jīng)存在,則該商品的其它屬性將隨著text2(即商品編號)的Change事件出現(xiàn)在其對應的位置上。而銷售日期和業(yè)務員編號已經(jīng)是程序默認給出的系統(tǒng)時間和登陸員工的編號。在判斷沒有空缺屬性后該商品將順利添加如庫,而且該商品在goods表中的數(shù)量也將隨之做相應的改變,使goods表和sell表的總和保持原來goods表中的數(shù)量值。(6)退貨窗體 本窗體的功能是實現(xiàn)商品退貨功能,當人為判斷某商品可以退貨時即可將該商品退貨。其數(shù)據(jù)庫實現(xiàn)為:先將該信息加入retreat表,然后從sell表中減掉,最后對goods表的數(shù)量做一下調整即可。其具體實現(xiàn)過程是:先在窗體集中定義三個記錄集:rs_sell,rs_goods,rs_retreat用來控制三個數(shù)據(jù)表:sell表、goods和retreat表。在退貨窗體中,如果用戶輸入的銷貨編號存在,則關于該商品的銷售信息將依次出現(xiàn)在相應的對話框中。退貨成功后,該退貨信息先添加到退貨表,然后將其退貨數(shù)量從相應的sell表中減掉,并添加到goods表中。(7)進貨統(tǒng)計菜單 進貨統(tǒng)計菜單下有4個子菜單,分別是今日進貨統(tǒng)計、本月進貨統(tǒng)計、本季度進貨統(tǒng)計、今年進貨統(tǒng)計。由于他們的界面非常相似,本程序中使用了一個SSTab控件以選項卡的形式在一個窗體中實現(xiàn)以上4個子菜單。這樣做使窗體顯得更加美觀。為項目添加了必要的控件之后,開始進行界面設計。先在窗體上添加一個SSTab控件,單擊鼠標右鍵在快捷菜單中選擇”屬性”命令。將其選項卡的數(shù)目定為4個,標題分別為:今日進貨、本月進貨、本季度進貨、本年度進貨。由于每個選項卡的界面都一樣,現(xiàn)以”今日進貨”選項卡為例,加入兩個datagrid控件,兩個Adodc控件,一個Label控件,一個textbox控件和8個command控件。其中兩個Adodc的數(shù)據(jù)源連接都是才用的相對路徑與sellsystem的buy表連接的,兩個Adodc連接的SQL語句分別如下:select * from buyselect 生產(chǎn)廠商,sum(總金額) as 各廠商進貨總金額 from buy group by 生產(chǎn)廠商。(8)銷貨統(tǒng)計窗體 銷售統(tǒng)計菜單下有4個子菜單,分別是今日銷貨、本月銷貨、本季度銷貨、今年銷貨。由于它們的界面非常相似,本程序中使用一個SSTab控件以選項卡形式在一個窗體中實現(xiàn)4個子菜單。其界面設計和窗體說明與進貨統(tǒng)計大同小異,也一樣一個選項卡為例進行說明,現(xiàn)以”今日銷貨”為例:加入兩個datagrid控件,兩個Adodc控件,一個Label控件,一個textbox控件和8個command控件。其中兩個Adodc的數(shù)據(jù)源連接都是采用的相對路徑與sell表連接的,兩個Adodc連接的SQL語句分別如下:select * from sellselect 生產(chǎn)廠商,sum(總金額) as 各廠商銷貨總金額 from sell group by 生產(chǎn)廠商。 (9)查看進貨表 其界面的設計比較簡單,只是一個datagrid控件,一個Adodc控件(已隱藏)和四個Command控件。本窗體的主要設計在于其四個命令按紐在進貨表為空時不可用。(10)查看進貨表 本窗體的主要設計目的是設置一個查詢商品庫存表的條件 。具體操作為:為查詢現(xiàn)存商品表設立了一個簡單的查詢條件,一個是直接顯示現(xiàn)存的全部商品表,一個是按條件對現(xiàn)存商品進行查詢,用戶可以根據(jù)自己需要按商品名稱或生產(chǎn)廠商分別進行查找。該窗體的實現(xiàn)是要在窗體集的變量中設置一個記錄集rs_goods,用來控制goods表,然后將記錄集在打開窗體時的select語句設為與本窗體的text1和text2有關的SQL語句。然后讓現(xiàn)存商品表顯示出來。(11)管理員工表 本窗體的制作目的在于方便對管理員用戶的管理, 本節(jié)前面曾經(jīng)提過系統(tǒng)初始化的功能,但其初始化并不能對員工表進行操作,當管理員登陸本系統(tǒng)時,可以訪問此窗體,對用戶表進行維護。但不能對管理員進行刪除操作,此操作已被本人屏蔽。 (12)更換用戶功能 在一個商場可能會存在員工交接班的現(xiàn)象,為了方便用戶交接班的操作順利進行,在系統(tǒng)管理模塊中做了一個更換用戶子菜單,該子菜單便順利的實現(xiàn)了此功能,而且它也方便了管理員的登陸管理。(13)修改密碼 為了方便用戶使用,在本模塊中還設置了一個修改密碼窗體,該窗體主要包括一個用戶名輸入、一個原密碼輸入和兩個新密碼輸入。此窗體實現(xiàn)的功能是顯而易見的,方便了用戶的操作,增加了系統(tǒng)使用的安全性。具體做法是:先要求用戶將四個必填項填寫完整,然后對兩個新密碼進行相同判斷,如果相同,則將記錄集rs_employee打開,對用戶名和原密碼進行核對,如果相同,就將老密碼替換為新密碼。本節(jié)總結:對于本商場管理系統(tǒng)功能的實現(xiàn),重點和難點有以下幾處:交易管理模塊:在本模塊中,對于商品的進貨、銷貨和退貨操作時,都要注意其操作過程中商品數(shù)量及其它屬性的變化,本人在制做此模塊時,采用了指導教師的提供給我的思想:進貨登記時,將進貨信息添加到進貨表中。然后對商品庫存表的編號進行判斷,如果進貨信息的商品編號存在,則將商品庫存表中相應記錄的商品數(shù)量做對應調整;如果商品編號不存在,則直接將進貨信息添加到商品庫存表中。銷貨登記時,先將商品的銷貨信息添加到銷貨表中,然后將商品庫存表中響應的商品的數(shù)量做相對調整,保證商品數(shù)量的一致性。退貨登記時將退貨信息添加到退貨表中,然后將退貨數(shù)量從銷售表中減掉,最后將退貨數(shù)量加到商品庫存表中。在本系統(tǒng)管理員登陸時,顯示給管理員的第一個界面:系統(tǒng)初始化也是本系統(tǒng)的又一大功能特色,其實現(xiàn)過程中要嚴格控制每一個記錄集對相應數(shù)據(jù)表的打開與關閉操作。3.3程序流程圖和E-R圖設計登錄界面是是面界主面界主進貨登記銷售登記退貨登記進貨統(tǒng)計銷售統(tǒng)計查看數(shù)據(jù)表是是否管理員否圖3-1系統(tǒng)流程圖各模塊的E-R圖設計:1 交易管理模塊:用于管理商品的進貨,銷售,退貨登記的操作。實體E-R圖如下:交易管理銷售登記退貨登記進貨登記圖3-2 交易管理模塊2進貨統(tǒng)計管理:主要用于對商品每日,每月,第季度,每年的進貨情況進行統(tǒng)計管理,此功能只有以管理員的身份進入時才為可用狀態(tài)。實體E-R圖如下: 進貨統(tǒng)計管理 本季度進貨今年進貨本月進貨今日進貨圖3-3 進貨統(tǒng)計管理模塊3銷售統(tǒng)計管理:主要用于對商品每日,每月,第季度,每年的銷售情況進行統(tǒng)計管理,此功能只有以管理員的身份進入時才為可用狀態(tài)。實體E-R圖如下:銷售統(tǒng)計管理 本季度銷售今日銷售今年銷售本月銷售圖3-4 銷售統(tǒng)計管理模塊4查看數(shù)據(jù)表:主要能查看進貨表,商品信息表,銷售表,退貨表等進行查看,以實現(xiàn)對商品信息的及時了解。實體E-R圖如下:查看數(shù)據(jù)表進貨商表管理員工表退貨表進貨表現(xiàn)存商品表銷售表圖3-5 查看數(shù)據(jù)表模塊3.4系統(tǒng)演示 圖3-6管理員登陸 窗體進入系統(tǒng)初始化界面 圖3-7 系統(tǒng)初始化窗體圖3-8 管理員主界面管理員權限:進貨統(tǒng)計、銷貨統(tǒng)計、查看數(shù)據(jù)表、系統(tǒng)管理。代碼如下:Dim rs_sell As New ADODB.RecordsetDim rs_goods As New ADODB.RecordsetDim rs_buy As New ADODB.RecordsetDim rs_retreat As New ADODB.RecordsetDim rs_manufacturer As New ADODB.RecordsetDim rs_employee As New ADODB.RecordsetDim rs_fctotal As New ADODB.RecordsetDim rs_total As New ADODB.RecordsetDim 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)Flash1.Movie = App.Path & 99.swfEnd SubPrivate Sub Form_Resize()Flash1.Width = Me.WidthFlash1.Height = Me.HeightEnd SubPrivate Sub mnabout_Click()frmAbout.ShowEnd SubPrivate Sub mnBuy_Click()frmAddgoods.ShowEnd SubPrivate Sub mnBuyMonth_Click()frmBuyall.Text2.Enabled = FalsefrmBuyall.SSTab1.Tab = 1frmBuyall.SSTab1.TabEnabled(0) = FalsefrmBuyall.SSTab1.TabEnabled(1) = TruefrmBuyall.SSTab1.TabEnabled(2) = FalsefrmBuyall.SSTab1.TabEnabled(3) = FalsefrmBuyall.Showstrbuy = select * from buy where 進貨年= & inty & and 進貨月= & intm & rs_buy.Open strbuy, cnn, adOpenKeyset, adLockPessimisticfrmBuyall.Adodc2.RecordSource = strbuyfrmBuyall.Adodc2.RefreshfrmBuyall.DataGrid2.ReBindIf rs_buy.EOF = True Then frmBuyall.Adodc6.RecordSource = strbuy frmBuyall.Adodc6.Refresh frmBuyall.DataGrid6.ReBind MsgBox 您本月沒有進貨記錄!, vbOKOnly + vbInformation, 注意 frmBuyall.Command9.Enabled = False frmBuyall.Command10.Enabled = False frmBuyall.Command11.Enabled = False frmBuyall.Command12.Enabled = False frmBuyall.Command13.Enabled = False frmBuyall.Command14.Enabled = False frmBuyall.Command15.Enabled = False frmBuyall.Command16.Enabled = False rs_buy.Close Exit SubEnd Ifrs_buy.Closestrfctotal = select 生產(chǎn)廠商,sum(總金額) as 各廠商進貨總金額 from buy where 進貨年= & inty & and 進貨月= & intm & group by 生產(chǎn)廠商rs_fctotal.Open strfctotal, cnn, adOpenKeyset, adLockPessimisticfrmBuyall.Adodc6.RecordSource = strfctotalfrmBuyall.Adodc6.RefreshfrmBuyall.DataGrid6.ReBindrs_fctotal.Closestrtotal = select sum(總金額) as 進貨總金額 from buy where 進貨年= & inty & and 進貨月= & intm & rs_total.Open strtotal, cnn, adOpenKeysetm, adLockPessimisticfrmBuyall.Text2.Text = rs_total.Fields(進貨總金額)rs_total.CloseEnd SubPrivate Sub mnBuyQuarterly_Click()frmBuyall.Text3.Enabled = FalsefrmBuyall.SSTab1.Tab = 2frmBuyall.SSTab1.TabEnabled(0) = FalsefrmBuyall.SSTab1.TabEnabled(1) = FalsefrmBuyall.SSTab1.TabEnabled(2) = TruefrmBuyall.SSTab1.TabEnabled(3) = FalsefrmBuyall.ShowSelect Case intm Case Is 4 intm = 3 Case Is 7 intm = 6 Case Is 10 intm = 12End Selectstrbuy = select * from buy where 進貨年= & inty & and 進貨月 between & (intm - 2) & and & intm & rs_buy.Open strbuy, cnn, adOpenKeyset, adLockPessimisticfrmBuyall.Adodc2.RecordSource = strbuyfrmBuyall.Adodc2.RefreshfrmBuyall.DataGrid2.ReBindIf rs_buy.EOF = True Then frmBuyall.Adodc6.RecordSource = strbuy frmBuyall.Adodc6.Refresh frmBuyall.DataGrid6.ReBind MsgBox 您本季度沒有進貨記錄!, vbOKOnly + vbInformation, 注意 frmBuyall.Command17.Enabled = False frmBuyall.Command18.Enabled = False frmBuyall.Command19.Enabled = False frmBuyall.Command20.Enabled = False frmBuyall.Command21.Enabled = False frmBuyall.Command22.Enabled = False frmBuyall.Command23.Enabled = False frmBuyall.Command24.Enabled = False rs_buy.Close Exit SubEnd Ifrs_buy.Closestrfctotal = select 生產(chǎn)廠商,sum(總金額) as 各廠商進貨總金額 from buy where 進貨年= & inty & and 進貨月 between & (intm - 2) & and & intm & group by 生產(chǎn)廠商rs_fctotal.Open strfctotal, cnn, adOpenKeyset, adLockPessimisticfrmBuyall.Adodc6.RecordSource = strfctotalfrmBuyall.Adodc6.RefreshfrmBuyall.DataGrid6.ReBindrs_fctotal.Closestrtotal = select sum(總金額) as 進貨總金額 from buy where 進貨年= & inty & and 進貨月 between & (intm - 2) & and & intm & rs_total.Open strtotal, cnn, adOpenKeysetm, adLockPessimisticfrmBuyall.Text3.Text = rs_total.Fields(進貨總金額)rs_total.Closeintm = Month(Date)End SubPrivate Sub mnBuyTable_Click()frmBuyTable.ShowEnd SubPrivate Sub mnBuyToday_Click()frmBuyall.Text1.Enabled = FalsefrmBuyall.SSTab1.Tab = 0frmBuyall.SSTab1.TabEnabled(0) = TruefrmBuyall.SSTab1.TabEnabled(1) = FalsefrmBuyall.SSTab1.TabEnabled(2) = FalsefrmBuyall.SSTab1.TabEnabled(3) = FalsefrmBuyall.Showstrbuy = select * from buy where 進貨年= & inty & and 進貨月= & intm & and 進貨日= & intd & rs
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030中國軸流通風機市場發(fā)展?jié)摿εc投資戰(zhàn)略規(guī)劃策略研究報告
- 咖啡感官評定標準測試試卷及答案
- 廣東省清遠市高職單招職業(yè)技能測試考試試卷及答案
- 2025年安徽省專升本歷史考試試題及答案
- 2026年遼寧遼陽市高職單招職業(yè)技能測試考試真題及答案
- 鄂教版初一英語上冊期末真題及答案
- 雕塑造型能力考核要點試卷及答案
- 雅典介紹教學課件
- 雁門太守行太說課件
- 2025至2030醫(yī)療健康大數(shù)據(jù)分析及隱私計算與戰(zhàn)略融資研究報告
- 2025年淄博醫(yī)院招聘考試筆試題及答案
- 藥師處方審核中的常見錯誤及糾正
- 2025年高考化學試題(浙江卷) 含答案
- 血透室穿刺時誤穿肱動脈處理流程
- 醫(yī)院預防保健管理辦法
- 2025年揚州市中考數(shù)學試題卷(含答案解析)
- 斷絕父母關系協(xié)議書
- GB/T 13077-2024鋁合金無縫氣瓶定期檢驗與評定
- 《公路工程質量檢驗評定標準》JTG F80∕1-2017宣貫材料
- (廣播電視藝術學專業(yè)論文)從戲劇角度解讀約瑟夫·寇德卡.pdf
評論
0/150
提交評論