劉宗佳LIU Zong-jia
(山東省濟(jì)寧市技師學(xué)院,濟(jì)寧272000)
隨著人們的生活水平和消費水平的提高,超級市場已成為我們生活中不可缺少的一部分。超級市場具有營業(yè)面積大、商品陳列直觀、營業(yè)人員少、流通成本低、節(jié)約購買時間、刺激消費欲望、避免人際磨擦等特點,因而對消費者和零售企業(yè)都有很強的吸引力。隨著超級市場在都市中的崛起和超市管理現(xiàn)代化的需要,把計算機應(yīng)用到超市管理領(lǐng)域的要求日益膨脹,這就為應(yīng)用于超級市場的管理系統(tǒng)的開發(fā)提供了廣闊的天地。
1.1 配置服務(wù)器 當(dāng)用戶第一次使用本系統(tǒng)時,系統(tǒng)會提示用戶輸入要連接的數(shù)據(jù)庫服務(wù)器的信息,包括:服務(wù)器名、登陸到服務(wù)器的用戶名和該用戶所對應(yīng)的密碼。如果本系統(tǒng)的用戶是系統(tǒng)管理員,系統(tǒng)還允許管理員修改服務(wù)器的連接信息。
1.2 登陸 當(dāng)用戶使用本系統(tǒng)時,系統(tǒng)首先要求用戶輸入其工號和該工號對應(yīng)的密碼,然后系統(tǒng)從操作系統(tǒng)的注冊表中讀入數(shù)據(jù)庫服務(wù)器的連接信息,把讀入的密碼進(jìn)行解密,解密的過程與加密時類似,不過順序要顛倒。接著系統(tǒng)根據(jù)服務(wù)器的連接信息與服務(wù)器進(jìn)行連接。
如果無法正確連接到服務(wù)器,系統(tǒng)將提示用戶連接錯誤,詢問用戶是否需要重新配置服務(wù)器的連接信息,如果能成功連接到服務(wù)器,系統(tǒng)將對數(shù)據(jù)庫中的員工表進(jìn)行查詢。如果用戶輸入的用戶名和密碼與員工表中的用戶名和密碼匹配,則根據(jù)用戶的權(quán)限來登陸到不同的用戶界面,并把用戶的登陸信息保存到系統(tǒng)的全局變量中,以便在程序中調(diào)用。如果員工表中沒有相應(yīng)的員工信息,則提示用戶的用戶信息錯誤,要求用戶重新輸入相應(yīng)的登陸信息。如果用戶連續(xù)三次輸入錯誤的登陸信息,系統(tǒng)將自動退出。
1.3 修改當(dāng)前用戶密碼 用戶正確登陸到系統(tǒng)后,用戶可以通過相應(yīng)界面的選項中調(diào)用密碼修改模塊,當(dāng)用戶點擊“修改密碼”時,系統(tǒng)要求用戶輸入用戶當(dāng)前的密碼和將要修改的新密碼,在用戶點擊“確定”后,系統(tǒng)檢查用兩次戶輸入的新密碼是否一致,如果不一致就提示用戶重新輸入新密碼,如果一致,則根據(jù)用戶登陸時的信息(用戶工號),在數(shù)據(jù)庫的員工表中查找該用戶的記錄,然后比較用戶輸入的當(dāng)前密碼是否與該用戶在數(shù)據(jù)庫中的密碼一樣,如果一樣就更新該用戶的登陸密碼,如果不一樣就提示用戶輸入的當(dāng)前密碼輸入錯誤,要求用戶重新輸入。
1.4 商品銷售 如果用戶以收銀員的身份登陸,系統(tǒng)將直接調(diào)用商品銷售模塊,如果用戶以系統(tǒng)管理員的身份登陸,則可通過在總控界面中通過相應(yīng)的菜單調(diào)用該模塊。
在登陸到商品銷售模塊后當(dāng)用戶點擊“購物”的按鈕時,系統(tǒng)就會彈出一個對話框,要求用戶輸入客戶購買的商品的商品代號,當(dāng)用戶輸入了一個商品代號后,點擊“添加”按鈕或直接按回車鍵,系統(tǒng)就會查詢數(shù)據(jù)庫中的商品表,如果商品表中存在與該商品代號匹配的記錄時,系統(tǒng)就把商品的相關(guān)信息顯示到銷售模塊的主窗口的表格中,如果商品表中不存在相應(yīng)的記錄,則提示用戶該上商品在系統(tǒng)中沒有相應(yīng)的記錄,要求用戶重新輸入。接著在用戶輸入的過程中,系統(tǒng)都要檢查用戶輸入的商品代號對應(yīng)的商品是否已經(jīng)顯示在銷售主窗口的表格中,如果存在就只更新商品的銷售數(shù)量,其它的信息都不做任何改變,如果不存在就通過查詢數(shù)據(jù)庫,判斷用戶輸入的商品代號是否在數(shù)據(jù)庫中有相應(yīng)記錄,如果有相應(yīng)的記錄就把該商品代號對應(yīng)的商品信息添加到表格中。這樣不斷重復(fù)操作,直到用戶點擊“完成”按鈕返回銷售主窗口。
只要銷售主窗口的表格中存在商品信息,窗口中的購物、注銷、退出、修改密碼等按鈕都變成無效,只有收銀和取消按鈕是有效的。當(dāng)用戶點擊“收銀”按鈕時,系統(tǒng)通過計算得到應(yīng)收的金額然后彈出合計窗口,當(dāng)用戶在文本框中輸入實收金額并按回車后,系統(tǒng)就檢查應(yīng)收金額是否不小于實收金額,如果是則計算應(yīng)找回客戶的金額,否則就提示用戶錯誤信息。當(dāng)用戶點擊“完成”時,系統(tǒng)就把銷售窗口中的銷售的商品信息寫到數(shù)據(jù)庫中的銷售表中,并在商品表中把售出的商品的相應(yīng)數(shù)量進(jìn)行更新,然后銷售窗口中的購物、注銷、退出、修改密碼等按鈕都變成有效,相反,收銀和取消按鈕就變成無效。當(dāng)用戶點擊“取消”按鈕時系統(tǒng)只清空表格中的商品信息,不對數(shù)據(jù)庫作任何操作,并把銷售窗口中的購物、注銷、退出、修改密碼等按鈕都變成有效,收銀和取消按鈕就變成無效,以防止用戶由于不小心產(chǎn)生的操作錯誤。
1.5 銷售記錄管理 當(dāng)用戶選擇了銷售記錄管理時,系統(tǒng)將顯示以上窗口,供用戶選擇要刪除的銷售記錄。如果用戶選擇了刪除一年的銷售記錄,則選擇月份的下拉列表框?qū)⒆優(yōu)椴豢捎?。用戶選擇要刪除的銷售記錄后點擊“刪除”按鈕時,系統(tǒng)就查詢是否存在該時間的銷售記錄,如果存在就從銷售記錄表中刪除該記錄,如果不存在,則提示用戶銷售記錄不存在。
1.6 統(tǒng)計 統(tǒng)計的過程是通過對數(shù)據(jù)庫的多次查詢,然后把幾次查詢的結(jié)果再進(jìn)行處理,最后才得到統(tǒng)計的結(jié)果。實現(xiàn)過程比較麻煩,無法只通過一次查詢來得到結(jié)果。下面以本月的按商品代號統(tǒng)計的過程為例,說明統(tǒng)計的實現(xiàn)過程。
統(tǒng)計的過程是首先從操作系統(tǒng)中得到當(dāng)前的日期,經(jīng)過一系列的字符處理,就可以得到本月第一天的日期(上述代碼中的A變量的最終值)。接著就通過執(zhí)行下面的SQL語句:
select gid,sum(s_quantity)as quantity from sell where s_date>=A group by gid就得到了一個關(guān)于本月每種商品的銷售量的一個RecordSet。然后以本月商品的銷售量的RecordSet為基礎(chǔ),對商品表進(jìn)行查詢。即在本月商品的銷售量的RecordSet中取一條記錄,在商品表中查詢該記錄對應(yīng)商品的進(jìn)價和售價,這樣就可以算出售出一個該商品的盈利,然后把該商品的單個盈利乘以當(dāng)前月商品的銷售量就可以得到該商品本月的總盈利。通過對本月商品的銷售量的RecordSet進(jìn)行遍歷,直到前月商品的銷售量的RecordSet遍歷完成,就可以得到當(dāng)前月銷售的每種商品的總盈利。
經(jīng)過一個多月時間的設(shè)計和開發(fā),超市營運系統(tǒng)基本開發(fā)完成,其功能基本上能滿足大部分超市的需求。不過由于設(shè)計時間比較短,我們所開發(fā)的超市營運系統(tǒng)還存在著不少不足的地方,比如沒有聯(lián)機幫助文檔,對即將過期的商品的打折問題還沒有解決好,用戶界面不夠美觀,出錯處理方面還做得不夠等,不過我們會針對這些問題對系統(tǒng)作進(jìn)一步改進(jìn)。
[1]Mike Gunderloy,Joseph L.Jorden.SQL Server 2000從入門到精通[M].電子工業(yè)出版社.
[2]薩師煊,王珊.數(shù)據(jù)庫系統(tǒng)概論[M].高等教育出版社.
[3]宋偉,吳建國.Visual Basic 6.0編程基礎(chǔ)[M].清華大學(xué)出版社.
[4]同志工作室.Visual Basic 6.0數(shù)據(jù)庫開發(fā)實例[M].人民郵電出版社.