超市管理系統的設計和實現_第1頁
超市管理系統的設計和實現_第2頁
超市管理系統的設計和實現_第3頁
超市管理系統的設計和實現_第4頁
超市管理系統的設計和實現_第5頁
已閱讀5頁,還剩47頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、摘要Abstract TOC o 1-5 h z HYPERLINK l bookmark2 o Current Document 第1章概論1 HYPERLINK l bookmark4 o Current Document 1. 1現狀概述3 HYPERLINK l bookmark6 o Current Document 1.2發展前景3 HYPERLINK l bookmark8 o Current Document 1. 3可行性分析4 HYPERLINK l bookmark10 o Current Document 第2章系統需求分析5 HYPERLINK l bookmark1

2、2 o Current Document 系統功能需求描述5基本信息管理功能5商品信息管理功能5銷售操作管理功能5統計查詢管理功能6 HYPERLINK l bookmark14 o Current Document 第3章總體設計7 HYPERLINK l bookmark16 o Current Document 3. 1功能模塊劃分7 HYPERLINK l bookmark18 o Current Document 3.2系統流程分析8 HYPERLINK l bookmark20 o Current Document 第4章系統詳細設計及實現9 HYPERLINK l bookmar

3、k22 o Current Document 數據庫設計9創建數據庫9數據庫邏輯結構設計10 HYPERLINK l bookmark24 o Current Document 2功能模塊設計及實現14421設計工程框架14422系統主界面設計21登錄模塊設計22供應商管理模塊設計23用戶管理模塊設計26商品管理模塊設計30銷售操作管理模塊32統計查詢管理模塊設計35 HYPERLINK l bookmark35 o Current Document 第5章系統性能測試38 HYPERLINK l bookmark37 o Current Document 1軟件測試概述38 HYPERLIN

4、K l bookmark39 o Current Document 2測試本系統38通過單元測試本系統: 38 HYPERLINK l bookmark41 o Current Document 5.3測試結果39 HYPERLINK l bookmark43 o Current Document 結束語40致謝41 HYPERLINK l bookmark45 o Current Document 參考文獻42第1章概論現狀概述隨著人們的生活水平和消費水平的提高,超市已成為我們生活中不可缺少的一部分。隨 著經濟文化水平的顯著提高,人們對生活質量及工作環境的要求也越來越高。 隨著社會 經濟的迅

5、速發展和科學技術的全面進步,計算機事業的飛速發展,以計算機與通信技術為 基礎的信息系統正處于蓬勃發展的時.期。將計算機這一信息處理利器應用于超市的日常管 理已是勢必所然,與此同時.,為了管理大量的超市商品,超市商品超市也大量的出現,超 市的管理問題也就提上了日程。隨著超市商品的大量增加,其管理難度也越來越大,如何 優化超市的日常管理也就成為了 一個大眾化的課題O在計算機飛速發展的今天,將計算機這一信息處理利器應川于超市的日常管理已是勢 必所然,而且這也將為超市管理帶來前所未有的改變,它可以帶來意想不到的效益,同時 也會為企業的飛速發展提供無限潛力。采用計算機管理信息系統已成為超市管理科學化和

6、現代化的重要標志,它給企業管理來了明顯的經濟效益和社會效益。主要體現在:極大提 高了超市工作人員的工作效率,大大減少了以往入出存流程繁瑣,雜亂,周期長的弊端工 基于超市管理的全面自動化,可以減少入庫管理、出庫管理及庫存管理中的漏洞,可以節 約不少管理開支,增加企業收入。 超市的管理的操作自動化和信息的電子化,全面提高 了超市的管理水平。隨著我國改革開放的不斷深入,經濟飛速的發展,企業要想生存、發展,要想在激烈 的市場競爭中立于不敗之地,沒有現代化的管理是萬萬不行的,超市管理的全面自動化、 信息化則是其中極其重要的部分。為了加快超市管理自動化的步伐,提高超市的管理業務 處理效率,建立超市管理系統

7、已變得十分心要。入庫、庫存、出庫還是現在企業超市管理的常規基本模式,雖然,最近乂出現了很多新 的管理模式,如:基于零庫存思想的沃爾瑪特管理方式,但這些新的思想在中國大部分企 業的管理中還是難以實現的。所以如何設計好超市管理系統,盡可能地減少超市管理的重 復性和低效性就成為當前最為重要的問題。超市供銷管理的核心是入庫、庫存和出庫之間 的聯系,如何處理好三者之間的關系是系統最為關鍵的部分。另外,經辦人信息和廠家信 息管理也是超市管理中一個必不可少的部分,它提供著與入庫和出庫相關的地一些信息, 使得整個系統更加完整,更加實用。通過對超市管理日常工作的詳細調查,搜集了大量的資料,從系統結構的組織,功能

8、的 實現,技術的要求以及可行性等多方面進行考慮,認為本課題是一個適應現今超市管理需 求的計算機信息管理系統,具有一定的實際開發價值和使用價值。發展前景明天,我們怎樣在超市購物?當然,未來的超市還會有小推車、還會有一排排擺滿商 品的貨架,但你購物的體驗將完全不同。IBM零售業解決方案部全球總經理湯姆彼得森近 日在上海為記者展示了一段未來超市購物的“現場版”在美國馬薩諸塞州,已經有人這樣在超市購物了。走進一家名為“停車購買”的大賣場,購物者得到的小手推車的把手上裝著一臺平板電 腦,同時,你會拿到一張會員卡和一個類似于無線紅外掃描儀之類的東西。掃描一下你的 卡,手推車上平板電腦的屏幕上就會出現你在這

9、家店購物的“歷史記錄”,電腦其至提醒你, 該買雞蛋或者餐巾紙了,或者告訴你,你每次都購買的某某品牌的商品現在有優惠。在屏 幕上觸摸一下,整個超市的貨架平面圖躍然屏上,屏幕上同時顯示你當前的位置,想去買 什么,按圖索驥就行了。如果你是個連左右都不分的路盲,還是有辦法在面積巨大的超市里順利找到你想要的 商品。來到貨架前,這個貨架的最上面一層并沒堆放貨物,而是幾塊電腦觸摸屏,在上面 查詢到你想要的商品后,從你的頭頂會有一束光打到腳下,例如你想買奶粉,就會投下三 個光柱:脫脂奶粉、無糖奶粉和標準奶粉。踩上“脫脂奶粉”的那個圓點,奇跡發生了:以 這個小圓點為起點,出現了一串光束投影在地上的腳印,只要踩著

10、這些腳印走,你就能走 到自己所需要的商品面前!感覺像是科幻小說,但在全球17個地方,IBM已經開始實驗 這樣的信息化零售系統,據悉,到明年年底前,在美國將有17。家“停車.購買”的門店應用 上面提到的那套系統。據透露,IBM正在上海興建其亞太區零售業解決方案展示中心,集中展示全球最先進 的零售業信息技術以及針對中國的市場解決方案。此外,IBM明年還將與復旦大學合作建 立一個“零售體驗創新中心”,至IJ那時,我們可以在上海親身體驗不可思議的購物經歷。可行性分析為了提高超市管理自動化進程,降低員工的勞動強度,縮短勞動時間,使超市管理更 科學,更快捷,我們開發了這個小型超市管理系統。.整個系統能在5

11、86以上的通用微機上運行;.操作系統環境為Windows95/98或Windows NT 3.51以上的版本;.系統工作模式采用C/S;.數據庫采用SQL Server 2000,川Microsoft公司的Visual Basic 6. 0版作為軟件開 發工具;從可維護性分析:.采用“所見即所得得Windows視窗界面,便于操作;.系統具有良好得安全保護措施及高可靠性與穩定性。從社會效應和經濟效應分析:1、超市的管理的操作自動化和信息的電子化,全面提高了超市的管理水平和經營效益。 即方便了超市的管理者乂方便了消費者。2、由于小型超市的經濟實力有限,著重考慮了經濟問題。盡量降低成本、節約開支、提

12、 高效率。因此,綜合上述超市管理系統的方案是可行的。第2章系統需求分析系統功能需求描述本系統所描述的超市管理系統的主要功能包括:基本信息管理功能商品信息管理功能銷售操作管理功能統計查詢管理功能基本信息管理功能基本信息包括供應商信息、會員信息、用戶信息。供應商信息包括供應商單位名稱、商品和聯系人等信息,在入庫時需要提供供應商 的信息。b.會后淄息包括會員編號、會員名字、積分等信息,在購買商品時會員享受折扣時需 要用到。C.用戶信息包括用戶名、密碼、用戶類型等信息。在登錄窗口中,根據用戶名,判斷 用戶的類型后,根據用戶的權限打開相應得用戶信息窗口。基本信息模塊可以實現以下的功能:L供應商信息的錄入

13、、修改和刪除;.會員信息的錄入、修改和刪除;.用戶信息的錄入、修改和刪除。商品信息管理功能系統需要對庫存商品進行分類管理,用戶可以創建和編輯商品類目。本系統采用二級商 品類目的方法,一級類目描述商品所屬的大致類別,例如日用品、電器、食品等;二級類 目則在以及類目的基礎上,對商品進行細致的劃分,例如食品乂可劃分為素菜類、葷菜類、 水果類、熟食類、南食類等。商品信息管理可以實現以下功能:L商品類目的錄入(包括商品類目編號、類目名稱和類目級別等信息),修改和刪除;2.商品信息的錄入(包括商品編號、所屬類目、商品名稱和商品價格等信息),修改 和刪除。銷售操作管理功能銷售操作包括入庫和俏售兩個部分。其中

14、入庫操作由經理執行,銷售由收銀員執行。.入庫操作入庫操作需記錄相關商品信息、供應商信息、經辦人、涉及金額和入庫時間等信息。.銷售操作.箱售操作需記錄相關商品的信息、庫存信息、經辦人、涉及金額和銷售時間、折扣 等信息統計查詢管理功能統計查詢管理模塊可以對庫存商品進行各種類型的統計和查詢,從而使用戶能全面地了 解庫存情況。本模塊可以實現以下的功能:L商品入庫統計報表.商品箱售報表.庫存商品統計報表第3章總體設計功能模塊劃分從功能描述的內容可以看到,本系統可以實現4個完整的功能。根據這些功能,設計出 的系統功能模塊如圖3-1所示。超市管理系統圖3-1超市管理系統功能模塊示意圖在功能模塊示意圖的樹狀結

15、構圖中,每一個葉結點都是一個最小的功能模塊。每一個功 能模塊都需要針對不同的表完成相同的數據庫操作,即添加記錄、修改記錄、刪除記錄、 以及查詢顯示記錄。. 2系統流程分析所謂的系統流程就是用戶在使用系統時的工作過程。多用戶系統的工作流程是從用戶登 錄開始的,對用戶身份進行認證。身份認證可以分為以下兩個過程:1確認用戶是否為有效的系統用戶2確定用戶類型第一個過程決定用戶能否進入系統。第二個過程決定用戶的操作權限,從而決定用戶的 工作界面。本系統的流程分析如圖3-2所示圖3-2系統流程分析圖在系統流程分析圖中可以看到,每個用戶有3次機會進行身份認證。如果3次輸入的 用戶名和密碼都無法與數據庫中的數

16、據匹配,則強制退出系統。第4章系統詳細設計及實現4.1數據庫設計創建數據庫在設計數據庫表結構前,首先需創建一個數據庫。本系統的數據庫為Supermarket。可以 在企業管理器中創建,也可以在查詢分析器中執行以下Transact-SQL語句:USE masterGOCREATE DATABASE SupermarketONPRIMARY ( NAME = Supermarket 1,FILENAME = E:studlkiSiiSr.latciSiipermarketData 1. mdf,SIZE = 10MB,MAXSIZE = 200,FILEGROWTH = 2),(NAME = Su

17、permarket!,FILENAME = E心畢業設ii超市Sih 內 upe miarket Data2 .ndf,SIZE = 10MB,MAXSIZE = 200,FILEGROWTH = 2),(NAME = Supermarkets,FILENAME = E:md義畢業設計超市小Supe 口narketData3.ndf,SIZE = 10MB,MAXSIZE = 200,FILEGROWTH = 2)LOGON(NAME = SupennarketLogl,FILENAME =心畢業設討超市Sih 內 upemiarketLog 11df,SIZE = 1MB,MAXSIZE =

18、 20,FILEGROWTH = 1),(NAME = SupennarketLog2,FILENAME = E:stiuly-ii/Si:LlataSiipermarketLog2.ldf,SIZE = 1MB,MAXSIZE = 2, FILEGROWTH = 1)GO其中E:tiul義畢業設iR超市UikN是創建數據庫的地址。數據庫邏輯結構設計數據庫Supermarket包含以下8個表:供應商信息表Client、會員信息表Member、用戶 信息表Users、商品類目表ProType、商品信息表Product、銷售操作信息表Sale、庫 存商品信息表Stock,入庫操作信息表Storei

19、no下面分別介紹這些表的結構。并且由 于要產生報表,還包含了 4 個視圖:v_storeinx v_Sale、v_stock Reportso.供應商信息表Client供應商信息表Client用來保存供應商信息,結構如表4-1所示:其中Clientld是供應商編號,ClientName是供應商名稱,ClientType是供應商類型, Contact是聯系人,Address是地址,Postcode是郵政編碼,Phone是聯系電話,Fax是 傳真。.會員信息表Member會員信息表Member用來保存會員顧客信息,結構如表4-2所示:表4-2會員信息表列名數據類型長度允許空|MemberIdint

20、4hkmberNamev ar ch ar10Addressvar char50FKonev ar char50Scorevar char20其中Member Id是會員編號,MemberName是會員姓名,Address是地址,Phone是聯系 電話,Score是會員積分。. 用戶信息表Users用戶信息表Users用來保存用戶信息,結構如表4-3所示: 表4-3用戶信息表列名數據類型1長度允許空|UserlTainevarchr8Fwdvarchar6VUEerTypevarch4r50EmpNamevarchr207UserName是用戶名,Pwd是密碼,UserType是用戶類型,Em

21、pName是員工姓名。.商品類目表ProType商品類目表ProType用來保存商品類目信息,結構如表4-4所示:表4-4商品類目表列名1數據類型長度允許空Tjzpeldint4Typellnevarchr50Vpperldint4V其中Typeld是類型編號,TypeName是類型名,Upperld是上級類型編號。.商品信息表Product商品信息表Product用來保存商品基本信息,結構如表4-5所示:表4-5商品信息表列名數據類型長度允許空|gFroidint4ProNamevarchr207Typ eldint47ProStylevarchar107FroUnitvarchr10Fro

22、Lowfloat8FroHighfloat8VFroPricedecimiL9U其中Prold是商品編號,ProName是商品名稱,Typeld是商品類型編號,ProStyle是 商品規格,ProUnit是計量單位,ProLow是商品數量下限,ProHigh是商品數量上限, ProPrice是價格(總計15個字節,小數部分2個字節)。.銷售操作信息表Sale銷售操作信息表Sale用來保存銷售操作信息,結構如表4-6所示:表4-6銷售操作信息表列名數據類型|長度允許空Shieldint4OptDatedatetime8EmpNairifiv ar char20Froidint4FroHajnev

23、archar20/Typeldint42ProPricedecimal97Prollufnfloat8PSwiNujtifloat8MemberIdint47Sunpricesfloat/Discountfloat87R叨小Ekv ar char502其中Saleld是銷售編號,OptDate是銷售日期,EmpName是經手人名,Prold是商品編號, ProName是商品名稱,Typeld是商品類型編號,ProPrice是商品單價,ProNum是單件商 品數量,SumNum是商品總數量,Memberld是會員編號,SumPrices是商品總價,Discount 是會員折扣,Remark是備注

24、。.庫存商品信息表Stock庫存商品信息表Stock用來保存庫存商品信息,結構如表4-7所示:表4-7庫存商品信息表列名數據類型|長度允許空StoreProIdint4Proldint4FroNamevarchar20FroPricedecimal9/FrcbNum87Typeldint47SwiH-umfloat8Describe50其中StoreProId是產品存儲編號(自動編號),Prold是商品編號,ProName是商品名稱, ProPrice是商品入庫單價,ProNum是單件商品數量,Typeld是商品類型編號,SumNum是 商品總數量,Describe 是簡單描述。.入庫操作信息

25、表Storein入庫操作信息表Storein用來保存入庫信息,結構如表4-8所示:表4-8入庫操作信息表列名 |數據類型|長度|允許空Storeinldint4Froidint4CreateDatechar10FroPricedeciriisl9Prollxunini4Clientldint4yEmpBainevar char20OptDateehar10其中Storeinld是入庫編號,Prold是入庫產品編號,CreateDate Char是生產日期, ProPrice是入庫產品單價,ProNum是入庫產品數量,Clientld是供應商編號,EmpName 是經辦人,OptDate是入庫日

26、期。.視圖 v_storeinv.storein的箱用是對每種商品統計入庫的總數量。結構如圖4-1:圖4-1入庫視圖.視圖 v_Salev.Sale的作用是對每種商品統計銷售的總數量和總金額。結構如圖4-2:圖4-2銷售視圖11.視圖 v_stockv.stock的作用是對每種商品統計庫存總數。結構如圖4-3所示:圖4-3庫存視圖12.視圖 ReportsReport3的作用是統計商品入庫和銷售的流水記錄。代碼如下:SELECT Storeinld, Prold, ProPrice, ProNum, Cl i ent Id. EmpNameFROM storeinUNIONSELECT Sal

27、eld, Prold, ProPrice, ProNum, (ProPrice * ProNum) AS SumPrices, EmpNameFROM sale2功能模塊設計及實現. 2.1設計工程框架首先創建一個名為Supermarket的新工程,并保存生成Supermarket. vbp文件。設主窗 體為 FormMain, frxo.添加模塊根據分析創建以下幾個模塊:Const用來管理工程中的常量;DbFunc用來管理工程中與數據庫操作相關的聲明、變量和函數;GeneralFunc用來管理工程中一些通用的自定義函數;Variable用來管理工程中的全局變量。) Const模塊代碼:,數據

28、庫訪問常量Public Const SQL_C_CHAR As Long = 1Public Const SQL_COLUMN_LABEL As Long = 18Public Const SQL_DROP As Long = 1Public Const SQL_DRROR As Long = -1Public Const SQL_NO_DATA_FOUND As Long = 100Public Const SQL_SUCCESS As Long = 0Public Const SQL_SUCCESS_WITHJNFO As Long = 1Public Const SQL_ATTR_MAX

29、_LENGTH As Long = 100,數據源信息常量Public Const DATABASE As String = ,Supermarket,f Public Const DSN As String = uSupennarkett,一次執行connect操作可以訪問數據庫的次數Public Const CONNECT_LOOP_MAX = 10(2 ) Variable模塊代碼:保用丸行SQL語句的字符串Public SqlStmt As String服務器名稱Public SCHOOL As String,讀取表中列值的變量Public Col Vai As String,客戶名稱

30、數組Public Arr_Client() As String商品類目數組Public Arr_ProType() As String,商品名稱數組Public Arr_Product() As String,倉庫名稱數組Public Arr_Stock() As String庫存商品編號和商品數量數組Public Arr_SupennarketProId() As LongPublic A rr_SupenmuaketProNum() As Integer 類模塊對象Public Myuser As New user,用戶對象Public Ciiruser As New user 當前用戶對

31、象Public My Member As New Member,會員對象Public MyPro As New Product,商品對象Public My ProType As New ProType,商品類別對象Public MyStorein As New Storein ,入庫對象Public MySale As New Sale,銷售對象Public Mystock As New stock,庫存商品對象Public MyClt As New Client,供應商對象2.添加類模塊根據VB功能模塊的劃分原則,將為每一個表創建一個類模塊,將對此表的所有數據庫 操作封裝在類中。1. Cli

32、ent類(如表4-9所示)表4一9 Client類的成員函數函數名具體說明Init初始化成員變量Delete刪除指定客戶記錄。參數Tmpld表示要刪除的供應商編號Getld根據指定的客戶名稱,返回供應商的編號。參數TmpName表示指定的供應 商名稱。Getlnfo讀取指定的供應商記錄。參數Tmpld表示要讀取的供應商編號。GetName根據指定的供應商編號讀取供應商名稱。參數Tmpld表示指定的供應商編 號。In_DB判斷指定的供應商是否已經在數據庫中。參數TmpClientName表示指定的 供應商名稱。Insert插入新的供應商記錄Update修改指定的供應商記錄。參數Tmpld表示要修

33、改的供應商編號。其中Init函數的代碼如下:Public SubClientld = -1ClientName =ClientType = -1Contact =Address =Postcode =Phone =Fax =Describe =End Sub2. Member類(如表4-10所示)表4To Memb er類的成員函數函數名具體說明Init初始化成員變量Delete刪除指定會員記錄。參數Tmpld表示要刪除的會員編號Getld根據指定的會員名字,返回會員的編號。參數TmpName表示指定的會員名 字。Getlnfo讀取指定的會員記錄。參數Tmpld表示要讀取的會員編號。GetNa

34、me根據指定的會員編號讀取會員名稱。參數Tmpld表示指定的會員編號。Insert插入新的會員記錄Update修改指定的會員記錄。參數Tmpld表示要修改的會員編號。3. Product3. Product類(如表4Tl所示)表4Tl Product類的成員函數函數名具體說明Init初始化成員變量Delete刪除指定商品記錄。參數Tmpld表示要刪除的商品編號Getld根據指定的商品,返回商品的編號。參數TiupName表示指定的商品名 稱。Getlnfo讀取指定的商品記錄。參數Tmpld表示要讀取的商品編號。GetName根據指定的商品編號讀取商品名稱。In_DB判斷指定的商品名稱是否已經在

35、數據庫中。參數TmpClientName表示 指定的商品名稱。Insert插入新的商品記錄Load_by_Upper根據指定的商品類目,讀取所屬的商品名稱。參數TmpTypeld表示指 定商品類目的編號。HaveType判斷指定的商品類目中是否包含商品。參數TmpTypeld表示指定的商 品類目編號。如果返回True,則表示指定的商品類目下存在商品:否 則表示不存在商品。此函數將在刪除商品類目數據之前調用,如果返 回True,則不能刪除指定的數據。Update修改指定的商品記錄。參數Tmpld表示要修改的商品編號。其中Insert過程的代碼如下:Public Sub Insert(),連接數據

36、庫DB_Connect,ISMInsert 語句SqlStmt = INSERT INTO Product (ProName, ProStyle,u _+ Typeld, Pro Unit, ProPrice, ProLow, ProHigh)” _+ “ VaiuesC + Trim(ProName) + Trim(ProStyle) _+ + Trim(Str(TypeId) + J + Tnm(Pro Unit) + Trim(ProPrice) + ; + Triin(ProLow) + Trim(ProHigh) + ),執行SQL語句OdbcExt (SqlStmt)Rc = SQ

37、LFreeStmtfHstmt, SQL_DROP)斷開與數據庫的連接DB_DisconnectEnd Sub4. ProType類(如表4-12所示)表4T2 ProType類的成員函數函數名具體說明Init初始化成員變量Delete刪除指定商品類目記錄。參數Tmpld表示記錄編號Getld根據指定的商品類目名稱,返回商品類目編號。參數TmpName表示指 定的商品類目名稱。Getlnfo讀取指定的商品類目記錄。參數Tmpld表示要讀取的商品類目編號。GetName根據指定的商品類目編號讀取商品類目名稱。參數Tmpld表示指定的 商品類目編號。HaveSon判斷指定的商品類目中是否存在下級商

38、品類目。參數TmpUpperld表 示指定的商品類目編號。如果返回True,則表示存在下級目錄;否 則表示沒有下級目錄。此函數在刪除商品類目前調用,如果返回 True,則不能刪除指定數據。In_DB判斷指定的商品類目名稱是否已經在數據庫中。參數TypeName表示 指定的商品類目名稱。Insert插入新的商品類目記錄Load_by_Upper根據指定的商品類目,讀取下一級商品類目。參數Upperld表示指定 商品類目的編號。Update修改指定的商品類目記錄。參數Tmpld表示要修改的商品類目編號。其中HaveSon函數的代碼如下:Public Function HaveSon(ByVal T

39、mpUpperld As Long) As Boolean,連接數據庫DB_Connect設置SQL語句,讀取指定的產品類目編號SqlStmt = SELECT Typekl FROM ProType WHERE Upperld= + Trim( Str(Tmp Upperld)執行SQL語句OdbcExt (SqlStmt)如果結果集中有數據,則返回True ;否則返回FalseIfSQLFetch(Hstmt) = SQL_NO_DATA_FO UND ThenHaveSon = FalseElseHaveSon = TrueEnd IfRc = SQLFreeStmt(Hstmt, SQ

40、L_DROP)斷開與數據庫的連接DB_DisconnectEnd Function5. Sale類(如表4-13所示)表4-13 Sale類的成員函數函數名具體說明Init初始化成員變量HaveMemberld讀取指定的會員記錄。參數Memberld表示要讀取的會員編號。HavePro判斷指定的商品數據是否出現在銷售記錄中。參數TmpProId表示指定的 商品編號GetNewId生成新的銷售記錄編號。Insert插入新的銷售記錄其中GetNewId過程的代碼如下:Public Function GetNewkl() As LongDim Tmpld As Long,連接數據庫DB_Connec

41、t假置要執行的SQL語句SqlStmt = SELECTSaleld FROM Sale ORDER BYSaleld,執行SQL語句OdbcExt (SqlStmt),讀取SELECT語句返回的查詢結果i= 1Do While SQLFetch(Hstmt) SQL_NO_DATA_FOUND CoWal = Stnng(40, 0)Rc = SQLGetData( Hstmt, 1, 1, Co I Vai, Len(ColVal), pcblen) Tmpld = Val(ColVal),把讀取的編號與自然數序列匕戢If Tmpld = i Theni = i+ 1Else,如果編號是不

42、連續的,則用新編號來填充GetNewId = iRc = SQLFreeStmtiHstmt, SQL_DROP)DB_DisconnectExit FunctionEnd IfLoopRc = SQLFreeStmt(Hstmt, SQL_DROP)斷開與數據庫的連接DB_DisconnectGetNewId = iEnd Function此函數的功能是生成新的銷售編號,在Insert。過程中將調用此函數。生成新的銷售編 號的算法是:把讀取的銷售編號與自然數序列比較,如果銷售編號是不連續的,則用新的 編號來填充;如果銷售編號是連續的,則用最大的銷售編號加1作為新的編號。6. stock類(如

43、表4-14所示)表4T4 stock類的成員函數函數名具體說明Init初始化成員變量DeleteZero刪除數量為0的商品庫存記錄。Getld根據指定的商品庫存信息,返回商品庫存編號。參數TmpProId表示指 定的商品編號,TmpProPrice表示商品的價格。Getlnfo讀取指定的記錄。參數Tmpld表示要讀取的商品庫存編號。GetSumPro計算庫存商品的總數量。參數TmpProId表示商品編號。HavePro判斷指定的商品數據是否出現在庫存記錄中。參數TmpProId表示指定 的商品編號In_DB判斷指定的商品庫存信息是否已經在數據庫中。參數TmpProId表示商 品編號參數,Tmp

44、ProPrice表示商品的價格。Insert插入新的商品庫存記錄LoadPro將指定的商品信息讀取到數組Arr_StoreProNum()中。參數TmpProId 表示商品編號。Update修改指定的商品庫存記錄。參數Orild表示要修改的商品庫存記錄。UpdateDiff修改指定的商品庫存數量,把當前的商品數量增加ProNum, ProNum可 以為負。7. Storein類(如表4T5所示)表4T5 Storein類的成員函數函數名具體說明Init初始化成員變量HaveClt判斷指定的供應商數據是否出現在入庫記錄中。參數TmpCltld表示指定 的供應商編號HavePro判斷指定的商品數據

45、是否出現在入庫記錄中。參數TmpProId表示指定的 商品編號GetNewId生成新的入庫編號。Insert插入新的入庫記錄8. User類(如表4T6所示)表4T6 User類的成員函數函數名具體說明Init初始化成員變量Delete刪除指定用戶記錄。參數TmpUser表示指定的用戶名。Getlnfo讀取指定的用戶記錄。參數TmpUser表示指定的用戶名。In_DB判斷指定的用戶名是否已經在數據庫中。參數TmpUser表示指定的用戶名Insert插入新的記錄Update修改指定的記錄。參數TmpUser表示要修改的用戶名。其中In_DB過程的代碼如下:Public Function In_D

46、B(ByVal TmpUser As String) As Boolean,連接數據庫DB_Connect設置SQL語句,讀取指定的用戶名SqlStmt = SELECT * FROM Users WHERE UserName=_+ Tnm(TmpUser) +,執行SQL語句OdbcExt (SqlStmt)如果結果集中有數據,則返回True ;否則返回FalseIfSQLFetch(Hstmt) = SQL_NO_DATA_FOUND ThenIn_DB = FalseElseIn_DB = TrueEnd IfRc = SQLFreeStmt(Hstmt, SQL_DROP),斷開與數據

47、庫的連接DB_DisconnectEnd Function.創建數據源為了能夠在程序中訪問到數據庫Supermarket,需要在ODBC中創建一個名為 Supermarket的數據源。具體步驟省略。. 2. 2系統主界面設計1.按表4T7設計主窗體的屬性:表4T7主窗體屬性表窗體屬性設置值具體說明名稱FrmMain設置窗體名稱BroderStyle1- Fixed Single設置窗體的邊框屬性Caption超市管理系統窗體的標題條文本MaxButtonFalse取消最大化按鈕MinButtonTrue激活最小化按鈕PictrueImageMain. gif設置窗體背景StartUpPosit

48、ion2-屏幕中心設置窗體彈出時,位置在屏幕中心。.按表4-18設置菜單項設置:表4-18主窗體菜單項設置表標題名稱標題名稱系統設置mn_sys銷售mn_Sale戶管理mn_user入庠mn_StoreinPro供應商管理mn_Client銷售商品mn_SalePro會員管理mn_Member統計查詢mn_static退出系統mn_exit商品銷售統計表mn_Report1商品管理mn3roduct商品入庫統計表mn_Report2商品類目mn_ProType庫存產品統計表mn_Report3商品信息mn_ProInfo由此得到本系統的主界面,如圖4-3所示:圖4-3超市管理系統主界面.添加退

49、出系統的代碼。當用戶單擊mn_exit按鈕H寸,將執行mn_exit_Click()過程, 退出系統。代碼如下:Private Sub mn_exit_Click()DBapi_DisconnectEndEnd Suh4. 2. 3登錄模塊設計用戶要使用本系統,首先要通過系統的身份驗證,即登錄。登錄過程需完成以下任務:.根據用戶名和密碼判斷是否可以進入系統:.根據用戶類型決定用戶擁有的權限。設計得到如圖4-4的登錄窗體:圖4-4登錄窗體布置4.2.4供應商管理模塊設計供應商管理模塊可以實現以下的功能:.添加供應商;.修改供應商信息:.刪除供應商;.查看供應商信息。1)設計客戶信息編輯窗體編輯供

50、應商信息的窗體可以用來添加和修改供應商信息。創建一個名為FrmCltEdit,設 置好窗體屬性,得到如圖4-5的布局。圖4-5窗體FrmCltEdit的界面下面分析窗體FrmCltEdit中的公共變量:窗體FrmCltEdit中有3個公共變量。變量Modify用來標記當前的數據庫訪問狀態。當 Modify二True時,表示修改已有的數據;當Modify=False時,表示插入新的數據;變量 Orild表示當前編輯的供應商編號;變量OriName表示當前編輯的供應商名稱。2)設計供應商信息管理窗體創建一個名為FrmCltMan的新窗體,設置好控件屬性,得如圖4-6和4-7的布局:圖4-6供應商信

51、息管理窗體(一)N供應商信息管理供應商類別|供應商二J郵政編碼聯系電話傳百電話4iuuyb13化4521bU8默松和41002513958467521410069133528645882618005提供南侵4100525214856主營電器450023135458751428代理商卜1添加修改刪除返回圖4-7供應商信息管理窗體(二)下面分析窗體FrmCltMan中幾個過程的代碼。Refresh_Clt 過程Refresh_Clt ()過程的功能是為Adodc 1控件設置數據源,從而決定在DateGridl 控件中顯示的數據內容,代碼如下:Private Sub Refresh_Clt(),設置

52、數據源,啟示客戶數據Adodc 1.RecordSource = SELECT Clientld AsClientNcune as 單位名稱+ Contact as 聯系人,Address as 通信地址,Postcode as 郵政編碼J _+ Phone As聯系電話,Fax As傳真電話,Describe As描述信息”一+ FROM Client WHERE CiientType= + Tnm(Str(ComboType.ListIndex + 1)刷新數據源,把新的內容反映到界面上Adodc 1.RefreshEnd SubCmb_Del_Click 過程Private Sub Cm

53、d_Del_Click()Dim Tmpld As Long判斷是否已經選擇了記錄If Adodc 1. Recordset.BOF = True ThenMsgBox ”請選擇記錄”Exit SubEnd If,記錄當前的位置p = Adodc 1 .Recordset.AbsolutePosition讀取當前記錄的客戶單位信息Tmpld = Adodc 1. Record set. Fields( 0),判斷入庫單中是否包含此客戶的信息If MyStorein.HaveClt(TmpId) = True ThenMsgBox ”客戶出現在入庫單中,不能刪除”Exit SubEnd If判斷

54、庫存產品信息中是否包含此客戶的信息If My stock. HaveClt(TmpId) = True ThenMsgBox ”客戶出現在庫存產品信息中,不能刪除,Exit SubEnd If確認刪除If MsgBoxC是否刪除當前行? vbYesNo. ”確認)=vbYes ThenMyClt.Delete (Tmpld)MsgBox ”刪除成功”Refresh_CltIfp - 1 0 ThenAdodc 1. Recordset. Move p - 1End IfEnd IfEnd Sub4.2.5用戶管理模塊設計根據用戶類型的不同,用戶管理模塊的功能也不相同。可以包含以下情形:Admi

55、n用戶可以創建普通用戶,對普通用戶的用戶名和密碼進行修改,刪除普通用戶;Admin用戶也可以修改自身的密碼;普通用戶只能修改自身的用戶名和密碼。1)設計編輯用戶信息的窗體編輯用戶信息的窗體可以用來添加和修改用戶信息。創建一個名為FrmUserEdit的窗體, 設置好屬性后,得到如圖4-8所示的布局。.編輯用戶信息圖4-8編輯用戶信息窗體當用戶單擊“確定”按鈕時,將觸發Cmd_OK_Click事件,對應代碼如下:Private Sub Cmd_OK_Click()If Trini( txtUserName) = ThenMsgBox ”請輸入用戶名”txtUserName. Set FocusE

56、xit SubEnd IfIf Len(txtPass) 6 ThenMsgBox ”密碼長度不能小于6”txtPass. Set FocustxtPass.SelStart = 0txtPass. Sei Length = Len(txtPass2) Exit SuhEnd IfIf txtPass txtPass2 Then MsgBox”密碼和確認密碼不相同,請重新確認”txtPass2. Set FocustxtPass2. Sei Start = 0txtPass2. Sei Length = Len(txtPass2) Exit SuhEnd IfIf txt Ename = Th

57、enMsgBox”請輸入員工姓名”txtEname. SetFocusExit SubEnd IfWith MyuserIf Modify = False Or Ori User Trim( txtUserName) ThenIf. In_DB(MakeStr(txtUserName) = True Then MsgBox”用戶名已經存在,請重新輸入”txtUserName. SetFocustxtUserName. Sei Start = 0txtUserName. Sei Length = Len( txtUserName)Exit SuhEnd IfEnd If.EmpNarne = M

58、akeStr( txt Ename).UserName = MakeStr( txtUserName).Pwd = MakeStr( txt Pass)If Modify = False Then.InsertMsgBox 添加完成,Else, Update (Ori User)MsgBox ”修改完成,如果修改自身用戶名,則更新CurUser對象If Ori User = Curuser. UserName And Trim( txtUserName) Ori User ThenCuntser. UserName = Tiini( txtUserName)Curuser.Getlnfo (C

59、uruser.UserName)End IfEnd IfEnd WithUnload MeEnd Sub程序將判斷用戶名是否存在、密碼和確認密碼是否相同、以及密碼長度是否大于等于6 等。如果輸入的數據完全滿足條件,則保存到數據庫中。如果改變了當前用戶名,則必須 更新CurUser對象。2)設計用戶管理窗體創建名為FrmUserMan的新窗體,設置各屬性后,得到如圖4-9的布局。只有當用戶是 Admin時,才打開這個窗體。圖4-9用戶管理系統窗體當用戶為Admin時為系統操作員,其他用戶都為普通用戶。如圖4-10所示:圖4-10系統管理員用戶管理窗體窗體FrmUserMan中的幾段代碼:Date

60、Listl_Click()函數當用戶單擊用不名列時.,觸發DateListLClick事件,代碼如下:Private Sub DataListl_Click()IfDataListl.Text = ThenExit SubEnd If讀取用戶數據Myuser.Getlnfo (DataListl.Text)IhlUserName = Myuser. UserNameIblEmpName = Myuser. EmpNameIf Format(Myuser. UserName, ) = admin ThenIblUserType = 系統管理員”ElseIblUserType = 普通用戶”End

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論