方霞
(新疆工程學(xué)院 計算機(jī)系,新疆 烏魯木齊 830091)
超級市場已成為生活中不可缺少的一部分,它具有營業(yè)面積大、商品陳列直觀、營業(yè)人員少、流通成本低、節(jié)約購買時間、刺激消費(fèi)欲望、避免人際磨擦等特點(diǎn),因而對消費(fèi)者和零售企業(yè)都有很強(qiáng)的吸引力。隨著超級市場在都市中的崛起和超市對管理現(xiàn)代化的要求,要求把計算機(jī)應(yīng)用到超市管理領(lǐng)域的要求日益膨脹,這就為應(yīng)用于超級市場的管理系統(tǒng)的開發(fā)提供了廣闊的天地。
通過調(diào)查研究,系統(tǒng)應(yīng)該有以下功能:
(1)系統(tǒng)應(yīng)該有友善的界面,能方便用戶的使用。
(2)系統(tǒng)管理員能對系統(tǒng)用戶的信息進(jìn)行增、刪、改等操作。
(3)不同權(quán)限的用戶,登陸到系統(tǒng)的不同操作界面。
能對倉庫中的商品信息進(jìn)行增、刪、改等操作。
(4)方便的數(shù)據(jù)查詢功能,能將查詢結(jié)果快速、清楚地反映給用戶。
(5)要有強(qiáng)大的統(tǒng)計功能,能按照用戶選擇的時間段產(chǎn)生該時間段的商品盈利報表。
(6)有方便的報表打印功能,能實現(xiàn)銷售單據(jù)和各種統(tǒng)計報表的輸出。
系統(tǒng)功能模塊圖如圖1所示。
1.3.1 系統(tǒng)管理模塊
系統(tǒng)管理模塊包括:登陸模塊和服務(wù)器配置模塊。登陸模塊負(fù)責(zé)用戶身份驗證,使不同權(quán)限用戶登陸到不同的模塊。服務(wù)器配置模塊提供用戶一個接口,用戶可以調(diào)用本模塊對數(shù)據(jù)庫服務(wù)器的連接信息進(jìn)行配置,以使客戶端能正確的連接到數(shù)據(jù)庫服務(wù)器。
圖1 系統(tǒng)功能模塊圖
1.3.2 員工管理模塊
提供系統(tǒng)管理員對人員信息的增、刪、改等權(quán)限。系統(tǒng)管理員通過調(diào)用本模塊就可以實現(xiàn)對新來銷售員入庫、對調(diào)走或因為其他原因而離開的人員進(jìn)行刪除,對錯誤的信息進(jìn)行修改。此外,本模塊還提供管理員對用戶信息的查找功能,以方便管理員能快速地查找到員工的信息。
1.3.3 商品銷售模塊
提供銷售信息的錄入功能,收銀員通過調(diào)用本模塊,就能快速地把客戶的購物信息寫到后臺數(shù)據(jù)庫的銷售表中,同時更新庫存信息。
1.3.4 倉庫管理模塊
通過調(diào)用本模塊,用戶能實現(xiàn)對商品信息進(jìn)行增、刪、改等操作。由于超市中的商品十分豐富,為了方便用戶及時了解商品信息,本模塊還提供用戶對商品信息的查詢功能。其中包括:商品基本信息的查詢、庫存信息的查詢和快要過期或已經(jīng)過期的商品查詢等。
1.3.5 統(tǒng)計模塊
能實現(xiàn)對上月、本月、每季度和每年所銷售的不同種類的商品的銷售數(shù)量以及盈利進(jìn)行統(tǒng)計的功能。此外,本月和上月熱銷商品的統(tǒng)計更能方便管理員對以后的銷售行情進(jìn)行預(yù)測。
1.3.6 打印模塊
能實現(xiàn)對銷售單據(jù)和各種統(tǒng)計報表的輸出。
超市營運(yùn)系統(tǒng)是基于C/S模式的超級市場電腦管理系統(tǒng),是一個數(shù)據(jù)庫前端應(yīng)用程序,Visual Basic 6.0提供了大量的控件,而這些控件可用于設(shè)計界面和實現(xiàn)各種功能,大大減少了開發(fā)人員的工作量,也簡化了界面設(shè)計過程,從而有效地壓縮了應(yīng)用程序的開發(fā)周期[1]。因此,選擇 Visual Basic 6.0作為應(yīng)用程序開發(fā)工具是十分適合的。
Microsoft SQL Server 2000作為一種強(qiáng)大的面向客戶機(jī)/服務(wù)器(Client/Server)的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),可以創(chuàng)建在 Windows9x/2000和Windows NT等多種操作系統(tǒng)平臺上的平穩(wěn)和高性能的數(shù)據(jù)庫應(yīng)用程序,其特點(diǎn)主要是能夠支持企業(yè)應(yīng)用,在存儲大容量數(shù)據(jù)方面、在數(shù)據(jù)的安全性和完整性方面、在分布式處理和具有高效的機(jī)制等方面都能實現(xiàn)[2-5]。所以,選擇 SQL Server 2000是比較合適的。
超市營運(yùn)系統(tǒng)中包含商品和員工兩個實體,數(shù)據(jù)庫中一共有五張數(shù)據(jù)表,其結(jié)構(gòu)如下:
(1)員工基本信息:員工工號、員工姓名、性別、身份證號碼、權(quán)限、登陸系統(tǒng)密碼和工作日期。
(2)權(quán)限表:權(quán)限、職務(wù)。
(3)商品表:商品代號、名稱、進(jìn)價、售價、數(shù)量、種類、產(chǎn)地、等級和過期日期。
(4)種類表:種類號和種類名。
(5)銷售表:商品代號、銷售數(shù)量、日期和員工工號。
3.2.1 前端應(yīng)用程序與后臺數(shù)據(jù)庫的連接
由于ADO能方便地實現(xiàn)對數(shù)據(jù)庫的各種操作,所以在系統(tǒng)開發(fā)過程中,就用ADO來實現(xiàn)前臺應(yīng)用程序和后臺數(shù)據(jù)庫的連接[6-7]。
3.2.2 系統(tǒng)的具體實現(xiàn)
1)配置服務(wù)器
當(dāng)用戶第一次使用本系統(tǒng)時,系統(tǒng)會提示用戶輸入要連接的數(shù)據(jù)庫服務(wù)器的信息,包括:服務(wù)器名、登陸到服務(wù)器的用戶名和該用戶所對應(yīng)的密碼。如果本系統(tǒng)的用戶是系統(tǒng)管理員,系統(tǒng)還允許管理員修改服務(wù)器的連接信息,實現(xiàn)流程如圖2所示。
圖2 實現(xiàn)流程圖
當(dāng)用戶輸入完相應(yīng)的配置信息后,系統(tǒng)將對服務(wù)器的配置信息中的用戶登陸密碼進(jìn)行加密操作,然后再連同數(shù)據(jù)庫服務(wù)器名和登陸到服務(wù)器的用戶名保存到操作系統(tǒng)的注冊表中。加密的VB代碼如下:
2)登陸
當(dāng)用戶使用本系統(tǒng)時,系統(tǒng)首先要求用戶輸入其工號和該工號對應(yīng)的密碼,然后系統(tǒng)從操作系統(tǒng)的注冊表中讀入數(shù)據(jù)庫服務(wù)的連接信息與服務(wù)器進(jìn)行連接。登陸圖如圖3所示。
圖3 系統(tǒng)登錄圖
3)修改當(dāng)前用戶密碼
密碼如圖4修改,用戶正確登陸到系統(tǒng)后,可以通過相應(yīng)界面的選項中調(diào)用密碼修改模塊,當(dāng)用戶點(diǎn)擊“修改密碼”時,系統(tǒng)要求輸入用戶當(dāng)前的密碼和將要修改的新密碼,在用戶點(diǎn)擊“確定”后,系統(tǒng)檢查用戶兩次輸入的新密碼是否一致,在數(shù)據(jù)庫的員工表中查找該用戶的記錄,然后比較用戶輸入的當(dāng)前密碼是否與該用戶在數(shù)據(jù)庫中的密碼一樣,如果一樣就更新該用戶的登陸密碼,如果不一樣就提示用戶輸入的當(dāng)前密碼輸入錯誤,要求用戶重新輸入。
4)商品銷售
如果用戶以收銀員的身份登陸,系統(tǒng)將直接調(diào)用商品銷售模塊,如果用戶以系統(tǒng)管理員的身份登陸,則可通過在總控界面中通過相應(yīng)的菜單調(diào)用該模塊。
程序的實現(xiàn)流程如圖5所示。
圖4 修改密碼圖
圖5 程序?qū)崿F(xiàn)流程圖
在系統(tǒng)實現(xiàn)的過程中,采用在內(nèi)存中創(chuàng)建一個空的Record-Set。它先創(chuàng)建一個ADO的Recordset對象 rsSell,然后在rsSell中添加商品代號、商品名等六個列,列名后面的參數(shù)是該列的數(shù)據(jù)類型和默認(rèn)長度,根據(jù)不同的需要創(chuàng)建不同的 Recordset對象。需要特別指出的是:Recordset對象的游標(biāo)類型在默認(rèn)情況下是服務(wù)器端游標(biāo),該類型的游標(biāo)是由服務(wù)器來管理的。要在客戶端對游標(biāo)處理,游標(biāo)類型必須要設(shè)成客戶端游標(biāo)。
5)銷售記錄管理
當(dāng)用戶選擇了銷售記錄管理時,系統(tǒng)就通過查詢銷售記錄表,找到最早的銷售記錄,然后從最早的銷售記錄的年份開始,把年份的內(nèi)容添加到下拉列表框中,直到添加到當(dāng)前的年份為止。
6)統(tǒng)計
圖6 統(tǒng)計具體流程圖
統(tǒng)計的過程是通過對數(shù)據(jù)庫的多次查詢,然后把幾次查詢的結(jié)果再進(jìn)行處理,最后才得到統(tǒng)計的結(jié)果。實現(xiàn)過程比較麻煩,無法只通過一次查詢來得到結(jié)果。下面以本月的按商品代號統(tǒng)計的過程為例,說明統(tǒng)計的實現(xiàn)過程。
統(tǒng)計的具體流程如圖6所示。
7)打印報表
本系統(tǒng)是通過水晶報表來實現(xiàn)打印的,但是水晶報表只支持從Access數(shù)據(jù)庫中讀出的數(shù)據(jù)進(jìn)行打印。所以需要打印時,系統(tǒng)把要打印的信息寫到一個Access數(shù)據(jù)庫的一張數(shù)據(jù)表中,然后再通過水晶報表把Access數(shù)據(jù)庫中的信息打印出來,不過實現(xiàn)起來還是比較方便的。
經(jīng)設(shè)計和開發(fā),超市營運(yùn)系統(tǒng)基本開發(fā)完成,其功能基本上能滿足大部分超市的需求,但還存在一些不足的地方,還需進(jìn)一步改進(jìn)。
[1]于鵬.中文版VisualBasic6.0程序設(shè)計項目教程.[M].北京:清華大學(xué)出版社.2010.
[2]杜柏林 .網(wǎng)絡(luò)數(shù)據(jù)庫 SQL Server 2000[M].北京:清華大學(xué)出版社.2010.
[3]宋曉峰.SQL SERVER 2000中文版基礎(chǔ)教程[M].北京:人民郵電出版社.2008.
[4]曹軍生.SQL SERVER 2000實用教程,2版[M].北京:北京理工大學(xué)出版社.2010.
[5]宋曉峰.SQL Server 2000中文版基礎(chǔ)教程,2版[M].北京:人民郵電出版社.2011.
[6]薩師煊,王珊.數(shù)據(jù)庫系統(tǒng)概論[M].北京:高等教育出版社,2006.
[7]陳寶明,許巨定,賈小軍.數(shù)據(jù)庫及其應(yīng)用[M].北京:北京郵電大學(xué)出版社.2009.