超市銷售信息管理系統分析與設計 【摘要】根據目前超市管理方面的有關超市進貨、銷售、庫存管理等內容,對這一系列的問題提出分析和討論,有效的管理是信息化項目成功的必要條件。但是中小企業IT項目的實施情況一直很不樂觀,面臨著大量的困難和問題,主要體現在企業管理者感到毫無經驗和把握、需求描述不清、項目滿意度差、項目經常延期和超支、忽視培訓和維護等方面。本超市管理系統本系統使用可視化編程語言編寫,采用自上而的設計方法,以Windows2000為平臺采用java和jsp語言編寫程序與mysql作為后臺數據庫,有效的保證了系統兼容性和可擴展性,客戶端操作采用圖形化操作界面,簡單實用。 【關鍵詞】 信息化 系統分析 數據庫 管理 系統設計
目 錄 1 緒論 1.1 課題研發的目的與意義 1.2 可行性分析 2 系統需求分析 2.1 系統介紹 2.2 業務流程分析 3 系統設計 3.1 系統簡介 3.2 系統總體結構設計 3.3 系統數據庫設計 3.4 界面設計 4 基本信息查詢模塊 4.1 建立通用信息查詢模塊 4.2 建立商品查詢、更新窗體界面 4.3 代碼編寫要點 5 數據錄入模塊錄入窗體 5.1 建立商場日銷售數據錄入窗體 5.2 調用窗體代碼 5.3 系統部分代碼的編寫 6 權限管理與軟件維護 6.1 建立操作員權限管理窗體 6.2 建立數據維護窗體 7 軟件的使用方法 8 結 論
一、 緒論 1.1 課題研發的目的與意義 計算機已經成為我們學習和工作的得力助手: 今天,計算機的價格已經十分低廉,性能卻有了長足的進步。它已經被應用于許多領域,計算機之所以如此流行的原因主要有以下幾個方面: 首先,計算機可以代替人工進行許多繁雜的勞動; 其次,計算機可以節省許多資源; 第三,計算機可以大大的提高人們的工作效率; 第四,計算機可以使敏感文檔更加安全,等等。 1.2 可行性分析 以前我國的超市銷售管理水平沒有建立在計算機應用的基礎上,這樣的機制已經不能適應時代的發展,因為它浪費了許多人力和物力,在信息時代這種傳統的管理方法必然被計算機為基礎的信息管理所取代。我作為一個計算機應用的專科生,希望可以在這方面有所貢獻。改革的總設計師鄧小平同志說過“科學技術是第一生產力”,我希望能用我三年的所學編制出一實用的程序來幫助超市進行更有效的銷售管理。歸納起來,好處大約有以下幾點: (1) 可以存儲過去的商品信息、資料,安全、高效。 (2) 只需要少量的操作人員即可操作系統,節省大量人力。 (3) 可以迅速查到所需信息。
二、系統需求分析 2.1 系統介紹 1. 適用于目前所有遠程網絡通訊連接方式。 2. 企業總部和各個分支機構操作業務引起庫存數據變化的實時反應。 3. 數據在網絡上安全的傳送。 4. 由于軟件集中使用,降低了應用系統總體成本。 5. 由于軟件集中使用,降低了系統升級和維護成本。 商品超市管理系統主要包括以下四大功能模塊:1、信息查詢模塊,2、進銷存管理模塊,3、系統管理模塊。其中資料管理模塊包括:基礎資料。進銷存管理模塊包括:采購管理 、銷售管理 、盤點管理 、庫存管理。 2.2 業務流程分析 往來管理的業務發生比較頻繁,采購商品、銷售商品、收付款和退貨時都會發生相應的應收賬款或應付賬款。采購商品時和銷售商品時發生的業務具有很大的相似性,庫存部門的商品采購入庫單、商品銷售出庫單、商品采購退貨出庫單和商品銷售退貨入庫單,采購部門的付款單和銷售部門的收款單送給往來部門進行處理,往來部門根據這些單據編制記賬憑證,然后對憑證進行嚴格審核來檢查憑證的各項描述和原始單據是否一致,經審核合格后分別登入到應收明細匯總賬和應付明細匯總賬,同時可以對應收賬款和應付賬款進行賬齡分析,形成賬齡分析表。在錄入記賬憑證時,對憑證進行日記賬管理,通過日記賬可以對一定會計期間的現金日記賬進行查詢。商業超市在現金銀行管理中進行存取款后直接保存到記賬憑證中,進行相關的業務處理。
三、系統設計 3.1 系統簡介 根據實際情況,我們使用數據庫快速地構造一個可執行的軟件系統模型。使用戶和開發人員可以較快地確定需求,只要建立幾個相互比較獨立的表,對系統模型作連接,將系統需具備的性質逐漸增加上去,直到所有的性質全部滿足。此時模塊也發展成為最終產品了。 例如:
3.2 系統總體結構設計 總體設計主要是系統模塊結構設計。系統模塊結構設計的任務是劃分子系統,然后確定子系統的模塊結構,并畫出模塊結構圖。在這個過程中必須考慮以下幾個問題:如何將一個系統劃分成多個子系統;每個子系統如何劃分成多個模塊;如何確定子系統之間、模塊之間傳送的數據及其調用關系;如何評價并改進模塊結構的質量。
3.3 系統數據庫設計 針對一般小型超市后臺管理系統的需求,通過對學習過程的內容和數據流程分析,主要完成的功能有:商品基本信息維護、進貨管理、銷售管理、報損管理等,心及這一系列過程中涉及商品的數據修改與查詢統計等多種操作。在這里將系統數據庫建立命名為H。商品信息表(商品編號,商品名稱,價格,條形碼,促銷價格,促銷起日期,促銷止日期,允許打折,庫存數量,庫存報警數量,計劃進貨數,允許銷售,廠商編號,供貨商編號) 用戶表(用戶編號,用戶名稱,用戶密碼,用戶類型) 會員表(會員編號,會員卡號,累積消費金額,注冊日期) 銷售表(銷售編號,商品編號,銷售數量,銷售金額,銷售日期) 交易表(交易編號,用戶名稱,交易金額,會員卡號,交易日期) 進貨入庫表(入庫編號,入庫商品編號,入庫數量,單額,總額,入庫 日期,計劃進貨日期,入庫狀態) 供貨商表(供貨商編號,供貨商名稱,供貨商地址,供貨商電話) 廠商表(廠商編號,廠商名稱,廠商地址,廠商電話) 四、基本信息查詢模塊 4.1 建立通用信息查詢模塊 此模塊主要是用來查詢商品的信息,如:銷售數量、商品剩余數量、進貨數量等等;該模塊用JAVA語言做操作界面,并用SQL2000用做存儲的數據庫。然后將其二者連接起來,就可以實現該模塊的功能,在對商品的數量和一些其他3的基本信息更確切的了解;從而實現對商品的更好的管理。把該信息查詢模塊命名為A。 4.2 建立商品查詢、更新窗體界面 當商品的數量和信息發生改變時,此時應該改變相應的產品信息,如:數量、價格、是否是促銷或是打折產品等等;就應當及時的改變窗體中的內容是銷售人員或是其它人員能夠及時的了解到產品的當時的信息。這些產品的信息都是存儲在數據庫中要通過數據庫的關聯來實現這些功能,讓這些產品信息在窗體中及時的顯示給有關人員。在跨線程更新窗體的成員方法中應用如下結構:delegate void UpdateControlCallback (int x,int y);public void UpdataControl(int x,int y){ if(this.InvokeRequired) { UpdataControlCallback d=new UpdataControlCallback(UpdataControl); this.Invoke(d,new object[]{x,y}); } else { some code... } }4.3 代碼編寫要點 在代碼編寫的過程中要注意到各個方面,如 : 程序設計語言結構化程序設計程序設計風格程序復雜性度量從語言的內在特征來看,高級語言可分為系統實現語言、靜態高級語言、塊結構高級語言 和動態高級語言。 語言的選擇:1.應用領域的不同決定選擇的語言2.系統用戶的要求決定3.可以使用的編譯程序4.程序員的經驗和知識5.軟件可移植性要求6.當工程規模很大時,而又沒有完全合適的語言,可編一個專用的語言。7。算法與計算復雜性、軟件的可靠性8.數據結構的復雜性,軟件的可維護性9.效率的考慮10.了解語言的發展前景總之,選擇語言的原則為:最少的工作量原則最少技巧性原則最少錯誤原則最少維護原則減少記憶原則二 好程序標準 1.易于測試和調試 2.易于維護 3.易于修改 4.設計簡單 5.高效率
五、數據錄入模塊錄入窗體 5.1 建立商場日銷售數據錄入窗體 在建立錄入商場銷售數據的窗體過程中,要涉及到商品的一些特有的屬性,如:商品名稱、商品的價格,及當天的銷售日期等等。這樣可以保證類似的商品不相混淆,各種商品之間有明顯的劃分界限;才能使工作人員在錄入過程中不容易出錯,當商品錄的過程中商品的價格也隨之而定,一但出錯直接會影響商品的銷售,或者影響到商家的利益。通過JAVA編寫的人機界面把商品信息錄入到數據庫中去,進而把信息儲存在計算機中。 5.2 調用窗體代碼 在各個功能模塊完成之后,下一步就是在主界面的設計;在界面中添加功能標簽也就是各個模塊的功能,用JAVA語言來實現該功能是很容易做到的。即把功能模塊A、B、C...與主界面連為一個整體。而數據庫模塊H也與之相對應的模塊相連接,一個完整功能軟件就基本形成了。 5.3 系統部分代碼編寫 本系統的登陸界面部分代碼設計如下: 初始密碼:admin 用戶名:admin private void loginbutt_Click(object sender, System.EventArgs e) { for (int i=0;i<LogTable.Rows.Count;i++) { this.LogRow = LogTable.Rows[i]; //只有當輸入的用戶名和密碼同時對應上數據庫中記錄時,才能通過校驗 if (LogRow[1].ToString().Trim()==this.UserNameTxt.Text.ToString().Trim() && LogRow[2].ToString().Trim()==this.PwdTxt.Text.ToString().Trim()) { CanLogin = true; strUser = LogRow[1].ToString().Trim();//保存用戶名 strUserRole = LogRow[3].ToString().Trim();//保存用戶權限 strUserId=LogRow[0].ToString().Trim();//保存用戶ID號 this.Close();//關閉窗體 return; } } MessageBox.Show( "您輸入的用戶號或密碼不正確!"); return; } [STAThread] static void Main() { //整個程序啟動時先顯示登錄框,登錄成功再顯示主界面 Login log = new Login(); log.ShowDialog(); if (Login.CanLogin==true) { Application.Run(new MainFrm()); } } 密碼修改模塊界面,密碼修改模塊主要代碼: try { if(this.PwdTxt.Text==this.ConfPwdTxt.Text) { cn.Open(); SqlCommand cmd=cn.CreateCommand(); cmd.CommandText="update Syuser Set UserPW='"+PwdTxt.Text.ToString().Trim()+"'"+"where UserId='"+Login.strUserId+"'";// 更新記錄 cmd.ExecuteNonQuery(); MessageBox.Show("修改成功!", "提示", MessageBoxButtons.OK); } else { MessageBox.Show("輸入錯誤請重試!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); } }catch(Exception ex){} 超市進貨管理模塊界面 超市進貨管理模塊主要代碼: if (e.Button.ToolTipText == "首記錄") { this.FinishStockDGrid.UnSelect(FinishStockCurrenAmend.Position); //取消選中指定行 FinishStockCurrenAmend.Position = 0; this.FinishStockDGrid.Select(FinishStockCurrenAmend.Position); //選中指定行 this.FinishStockDGrid.CurrentRowIndex = FinishStockCurrenAmend.Position; //移動表頭指示圖標 return; } if (e.Button.ToolTipText == "上一記錄") { if (FinishStockCurrenAmend.Position > 0) { this.FinishStockDGrid.UnSelect(FinishStockCurrenAmend.Position); FinishStockCurrenAmend.Position--; this.FinishStockDGrid.Select(FinishStockCurrenAmend.Position); this.FinishStockDGrid.CurrentRowIndex = FinishStockCurrenAmend.Position; } return; } if (e.Button.ToolTipText == "下一記錄") { if (FinishStockCurrenAmend.Position < FinishStockCurrenAmend.Count-1) { this.FinishStockDGrid.UnSelect(FinishStockCurrenAmend.Position); FinishStockCurrenAmend.Position++; this.FinishStockDGrid.Select(FinishStockCurrenAmend.Position); this.FinishStockDGrid.CurrentRowIndex = FinishStockCurrenAmend.Position; } return; } if (e.Button.ToolTipText == "尾記錄") { if(FinishStockCurrenAmend.Count>0) { this.FinishStockDGrid.UnSelect(FinishStockCurrenAmend.Position); FinishStockCurrenAmend.Position = FinishStockCurrenAmend.Count-1; this.FinishStockDGrid.Select(FinishStockCurrenAmend.Position); this.FinishStockDGrid.CurrentRowIndex = FinishStockCurrenAmend.Position; return; } } if (e.Button.ToolTipText == "新記錄") { FinishStockCurrenAmend.AddNew(); return; } if (e.Button.ToolTipText == "刪除記錄") { if (MessageBox.Show(" 確實要刪除這條記錄嗎?","詢問",MessageBoxButtons.YesNo) == DialogResult.Yes) { try { if (FinishStockCurrenAmend.Count > 0) FinishStockCurrenAmend.RemoveAt(FinishStockCurrenAmend.Position); else { MessageBox.Show("沒有可以刪除的數據","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); } } catch(Exception express) { MessageBox.Show(express.ToString(),"提示",MessageBoxButtons.OK,MessageBoxIcon.Error); } return; } } if (e.Button.ToolTipText == "提交修改") { if (this.EditStockNumTxt.Text.Trim() == "")//檢查不能為空的字段 { MessageBox.Show("進貨數量不能為空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } if (this.EditStockPriceTxt.Text.Trim()=="") { MessageBox.Show("商品單價不能為空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } if (this.EditStockSumTxt.Text.Trim() == "")//檢查不能為空的字段 { MessageBox.Show("總額不能為空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } if (this.EditStockDateTxt.Text.Trim()=="") { MessageBox.Show("進貨日期不能為空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } if (this.EditStockManTxt.Text.Trim() == "")//檢查不能為空的字段 { MessageBox.Show("經手人數量不能為空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } if (this.StaticcomboBox.Text.Trim()=="") { MessageBox.Show("是否完成不能為空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } FinishStockCurrenAmend.EndCurrentEdit();//結束當前編輯操作并提交修改 if (FinishStockdtable.GetChanges() != null) { try { this.FinishStocksqlDataAdapter.Update(FinishStockdtable); } catch(Exception express) { MessageBox.Show(express.ToString(),"提示",MessageBoxButtons.OK,MessageBoxIcon.Error); this.FinishStockdtable.RejectChanges(); } } 超市銷售管理模塊界面,商品銷售模塊主要代碼: if (e.Button.ToolTipText == "首記錄") { this.InputSaledataGrid.UnSelect(SaleCurrenAmend.Position); //取消選中指定行 SaleCurrenAmend.Position = 0; this.InputSaledataGrid.Select(SaleCurrenAmend.Position); //選中指定行 this.InputSaledataGrid.CurrentRowIndex = SaleCurrenAmend.Position; //移動表頭指示圖標 return; } if (e.Button.ToolTipText == "上一記錄") { if (SaleCurrenAmend.Position > 0) { this.InputSaledataGrid.UnSelect(SaleCurrenAmend.Position); SaleCurrenAmend.Position--; this.InputSaledataGrid.Select(SaleCurrenAmend.Position); this.InputSaledataGrid.CurrentRowIndex = SaleCurrenAmend.Position; } return; } if (e.Button.ToolTipText == "下一記錄") { if (SaleCurrenAmend.Position < SaleCurrenAmend.Count-1) { this.InputSaledataGrid.UnSelect(SaleCurrenAmend.Position); SaleCurrenAmend.Position++; this.InputSaledataGrid.Select(SaleCurrenAmend.Position); this.InputSaledataGrid.CurrentRowIndex = SaleCurrenAmend.Position; } return; } if (e.Button.ToolTipText == "尾記錄") { if(SaleCurrenAmend.Count>0) { this.InputSaledataGrid.UnSelect(SaleCurrenAmend.Position); SaleCurrenAmend.Position = SaleCurrenAmend.Count-1; this.InputSaledataGrid.Select(SaleCurrenAmend.Position); this.InputSaledataGrid.CurrentRowIndex = SaleCurrenAmend.Position; return; } } if (e.Button.ToolTipText == "新記錄") { SaleCurrenAmend.AddNew(); this.strSqlConnection = "select top 1 * from sale order by saleId desc";// order by SaleId"; this.MerchsqlDataAdapter=new SqlDataAdapter(this.strSqlConnection,this.MerchConnection); this.MerchsqlDataAdapter.Fill(Sale1dtable); if(Sale1dtable.Rows.Count>0) { this.XSDId = Sale1dtable.Rows[0][7].ToString().Trim(); this.XSId= Sale1dtable.Rows[0][0].ToString().Trim(); } else { MessageBox.Show("還沒有銷售記錄!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } this.SaletableIdTxt.Text = (float.Parse(XSDId)+1).ToString(); this.SaleIdTxt.Text = (float.Parse(XSId)+1).ToString(); this.PaywayTxt.SelectedIndex = 0; this.SaleManTxt.Text = Login.strUserId; return; } if (e.Button.ToolTipText == "刪除記錄") { if (MessageBox.Show(" 確實要刪除這條記錄嗎?","詢問",MessageBoxButtons.YesNo) == DialogResult.Yes) { try { if (SaleCurrenAmend.Count > 0) SaleCurrenAmend.RemoveAt(SaleCurrenAmend.Position); else { MessageBox.Show("沒有可以刪除的數據","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); } } catch(Exception express) { MessageBox.Show(express.ToString(),"提示",MessageBoxButtons.OK,MessageBoxIcon.Error); } return; } } if (e.Button.ToolTipText == "提交修改") { if (this.MerchIdTxt.Text.Trim() == "")//檢查不能為空的字段 { MessageBox.Show("商品編號不能為空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } if (this.SaleDateTxt.Text.Trim() == "")//檢查不能為空的字段 { MessageBox.Show("銷售日期不能為空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } if (this.SaleNumTxt.Text.Trim()=="") { MessageBox.Show("銷售數量不能為空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } if (this.PaywayTxt.Text.Trim() == "")//檢查不能為空的字段 { MessageBox.Show("支付方式不能為空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } SaleCurrenAmend.EndCurrentEdit();//結束當前編輯操作并提交修改 if (Saledtable.GetChanges() != null) { try { this.SalesqlDataAdapter.Update(Saledtable); } catch(Exception express) { MessageBox.Show(express.ToString(),"提示",MessageBoxButtons.OK,MessageBoxIcon.Error); this.Saledtable.RejectChanges(); } } return; } if (e.Button.ToolTipText == "取消修改") { try { SaleCurrenAmend.CancelCurrentEdit(); //取消編輯 } catch(Exception express) { MessageBox.Show(express.ToString(),"提示",MessageBoxButtons.OK,MessageBoxIcon.Error); } return; } if (e.Button.ToolTipText == "退出") { this.Close(); } 銷售信息錄入信息管理界面,銷售信息錄入管理模塊主要代碼: if (e.Button.ToolTipText == "首記錄") { this.InputSaledataGrid.UnSelect(SaleCurrenAmend.Position); //取消選中指定行 SaleCurrenAmend.Position = 0; this.InputSaledataGrid.Select(SaleCurrenAmend.Position); //選中指定行 this.InputSaledataGrid.CurrentRowIndex = SaleCurrenAmend.Position; //移動表頭指示圖標 return; } if (e.Button.ToolTipText == "上一記錄") { if (SaleCurrenAmend.Position > 0) { this.InputSaledataGrid.UnSelect(SaleCurrenAmend.Position); SaleCurrenAmend.Position--; this.InputSaledataGrid.Select(SaleCurrenAmend.Position); this.InputSaledataGrid.CurrentRowIndex = SaleCurrenAmend.Position; } return; } if (e.Button.ToolTipText == "下一記錄") { if (SaleCurrenAmend.Position < SaleCurrenAmend.Count-1) { this.InputSaledataGrid.UnSelect(SaleCurrenAmend.Position); SaleCurrenAmend.Position++; this.InputSaledataGrid.Select(SaleCurrenAmend.Position); this.InputSaledataGrid.CurrentRowIndex = SaleCurrenAmend.Position; } return; } if (e.Button.ToolTipText == "尾記錄") { if(SaleCurrenAmend.Count>0) { this.InputSaledataGrid.UnSelect(SaleCurrenAmend.Position); SaleCurrenAmend.Position = SaleCurrenAmend.Count-1; this.InputSaledataGrid.Select(SaleCurrenAmend.Position); this.InputSaledataGrid.CurrentRowIndex = SaleCurrenAmend.Position; return; } } if (e.Button.ToolTipText == "新記錄") { SaleCurrenAmend.AddNew(); this.strSqlConnection = "select top 1 * from sale order by saleId desc";// order by SaleId"; this.MerchsqlDataAdapter=new SqlDataAdapter(this.strSqlConnection,this.MerchConnection); this.MerchsqlDataAdapter.Fill(Sale1dtable); if(Sale1dtable.Rows.Count>0) { this.XSDId = Sale1dtable.Rows[0][7].ToString().Trim(); this.XSId= Sale1dtable.Rows[0][0].ToString().Trim(); } else { MessageBox.Show("還沒有銷售記錄!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } this.SaletableIdTxt.Text = (float.Parse(XSDId)+1).ToString(); this.SaleIdTxt.Text = (float.Parse(XSId)+1).ToString(); this.PaywayTxt.SelectedIndex = 0; this.SaleManTxt.Text = Login.strUserId; return; } if (e.Button.ToolTipText == "刪除記錄") { if (MessageBox.Show(" 確實要刪除這條記錄嗎?","詢問",MessageBoxButtons.YesNo) == DialogResult.Yes) { try { if (SaleCurrenAmend.Count > 0) SaleCurrenAmend.RemoveAt(SaleCurrenAmend.Position); else { MessageBox.Show("沒有可以刪除的數據","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); } } catch(Exception express) { MessageBox.Show(express.ToString(),"提示",MessageBoxButtons.OK,MessageBoxIcon.Error); } return; } } if (e.Button.ToolTipText == "提交修改") { if (this.MerchIdTxt.Text.Trim() == "")//檢查不能為空的字段 { MessageBox.Show("商品編號不能為空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } if (this.SaleDateTxt.Text.Trim() == "")//檢查不能為空的字段 { MessageBox.Show("銷售日期不能為空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } if (this.SaleNumTxt.Text.Trim()=="") { MessageBox.Show("銷售數量不能為空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } if (this.PaywayTxt.Text.Trim() == "")//檢查不能為空的字段 { MessageBox.Show("支付方式不能為空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } SaleCurrenAmend.EndCurrentEdit();//結束當前編輯操作并提交修改 if (Saledtable.GetChanges() != null) { try { this.SalesqlDataAdapter.Update(Saledtable); } catch(Exception express) { MessageBox.Show(express.ToString(),"提示",MessageBoxButtons.OK,MessageBoxIcon.Error); this.Saledtable.RejectChanges(); } } return; } if (e.Button.ToolTipText == "取消修改") { try { SaleCurrenAmend.CancelCurrentEdit(); //取消編輯 } catch(Exception express) { MessageBox.Show(express.ToString(),"提示",MessageBoxButtons.OK,MessageBoxIcon.Error); } return; } if (e.Button.ToolTipText == "退出") { this.Close(); }
庫存信息管理界面,庫存信息管理模塊主要代碼: if (e.Button.ToolTipText == "首記錄") { this.MerchInfodataG.UnSelect(MerchCurrenAmend.Position); //取消選中指定行 MerchCurrenAmend.Position = 0; this.MerchInfodataG.Select(MerchCurrenAmend.Position); //選中指定行 this.MerchInfodataG.CurrentRowIndex = MerchCurrenAmend.Position; //移動表頭指示圖標 return; } if (e.Button.ToolTipText == "上一記錄") { if (MerchCurrenAmend.Position > 0) { this.MerchInfodataG.UnSelect(MerchCurrenAmend.Position); MerchCurrenAmend.Position--; this.MerchInfodataG.Select(MerchCurrenAmend.Position); this.MerchInfodataG.CurrentRowIndex = MerchCurrenAmend.Position; } return; } if (e.Button.ToolTipText == "下一記錄") { if (MerchCurrenAmend.Position < MerchCurrenAmend.Count-1) { this.MerchInfodataG.UnSelect(MerchCurrenAmend.Position); MerchCurrenAmend.Position++; this.MerchInfodataG.Select(MerchCurrenAmend.Position); this.MerchInfodataG.CurrentRowIndex = MerchCurrenAmend.Position; } return; } if (e.Button.ToolTipText == "尾記錄") { if(MerchCurrenAmend.Count>0) { this.MerchInfodataG.UnSelect(MerchCurrenAmend.Position); MerchCurrenAmend.Position = MerchCurrenAmend.Count-1; this.MerchInfodataG.Select(MerchCurrenAmend.Position); this.MerchInfodataG.CurrentRowIndex = MerchCurrenAmend.Position; return; } } if (e.Button.ToolTipText == "新記錄") { MerchCurrenAmend.AddNew(); return; } if (e.Button.ToolTipText == "刪除記錄") { if (MessageBox.Show(" 確實要刪除這條記錄嗎?","詢問",MessageBoxButtons.YesNo) == DialogResult.Yes) { try { if (MerchCurrenAmend.Count > 0) MerchCurrenAmend.RemoveAt(MerchCurrenAmend.Position); else { MessageBox.Show("沒有可以刪除的數據","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); } } catch(Exception express) { MessageBox.Show(express.ToString(),"提示",MessageBoxButtons.OK,MessageBoxIcon.Error); } return; } } if (e.Button.ToolTipText == "提交修改") { if (this.EditMerchIdTxt.Text.Trim() == "")//檢查不能為空的字段 { MessageBox.Show("商品編號不能為空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } if (this.EditMerchNameTxt.Text.Trim()=="") { MessageBox.Show("商品名稱不能為空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } if (this.EditMerchPriceTxt.Text.Trim() == "")//檢查不能為空的字段 { MessageBox.Show("價格不能為空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } if (this.EditMerchStockTxt.Text.Trim()=="") { MessageBox.Show("庫存數量不能為空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } if (this.EditWaringTxt.Text.Trim() == "")//檢查不能為空的字段 { MessageBox.Show("庫存報警數量不能為空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } if (this.EditPlanStockAddsTxt.Text.Trim()=="") { MessageBox.Show("計劃進貨數不能為空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } if (this.EditGetoffCmb.Text.Trim() == "")//檢查不能為空的字段 { MessageBox.Show("允許打折不能為空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } if (this.EditSaleCmb.Text.Trim()=="") { MessageBox.Show("允許銷售不能為空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } if (this.EditFactTxt.Text.Trim()=="") { MessageBox.Show("廠商編號不能為空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } MerchCurrenAmend.EndCurrentEdit();//結束當前編輯操作并提交修改 if (Merchdtable.GetChanges() != null) { try { this.MerchsqlDataAdapter.Update(Merchdtable); } catch(Exception express) { &n, bsp; MessageBox.Show(express.ToString(),"提示",MessageBoxButtons.OK,MessageBoxIcon.Error); this.Merchdtable.RejectChanges(); } } return; } if (e.Button.ToolTipText == "取消修改") { try { MerchCurrenAmend.CancelCurrentEdit(); //取消編輯 } catch(Exception express) { MessageBox.Show(express.ToString(),"提示",MessageBoxButtons.OK,MessageBoxIcon.Error); } return; } 用戶管理模塊管理界面 ,用戶管理模塊主要代碼: private void DataGridStateControl() { DataGridTableStyle ts = new DataGridTableStyle(); ts.AlternatingBackColor = Color.LightGray; ts.MappingName = DGtable.TableName; ts.AllowSorting = false;//不允許進行排序 this.UserdGrid.TableStyles.Add(ts); this.UserdGrid.Select(0);//選定第一列 } private void DelUserbutt_Click(object sender, System.EventArgs e) { if (MessageBox.Show("確實要刪除這條記錄嗎?","詢問",MessageBoxButtons.YesNo) == DialogResult.Yes) { try { if (UserAmend.Count > 0) UserAmend.RemoveAt(UserAmend.Position); else { MessageBox.Show("沒有可以刪除的數據","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); } } catch(Exception express) { MessageBox.Show(express.ToString(),"提示",MessageBoxButtons.OK,MessageBoxIcon.Error); } return; } } private void UserdGrid_CurrentCellChanged(object sender, System.EventArgs e) { if(this.DGtable.Rows.Count>0) { int currRow = this.UserdGrid.CurrentCell.RowNumber; if(currRow>=0 && currRow<UserAmend.Count) UserAmend.Position = currRow; } } private void AddUserbutt_Click(object sender, System.EventArgs e) { try { AddUser AUser =new AddUser(); AUser.Show(); } catch(Exception Ex) { MessageBox.Show(Ex.ToString()); } } private void SubEditButt_Click(object sender, System.EventArgs e) { if (this.UserIdTxt.Text.Trim() == "")//檢查不能為空的字段 { MessageBox.Show("用戶編號不能為空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } if (this.UserNameTxt.Text.Trim()=="") { MessageBox.Show("用戶姓名不能為空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } if (this.RoleList.Text.Trim()=="") { MessageBox.Show("用戶權限不能為空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); return; } UserAmend.EndCurrentEdit();//結束當前編輯操作并提交修改 if (DGtable.GetChanges() != null) { try { this.UserMagsqlDataAdapter.Update(DGtable); } catch(Exception express) { MessageBox.Show(express.ToString(),"",MessageBoxButtons.OK,MessageBoxIcon.Error); this.DGtable.RejectChanges(); } } return; } private void CancelEdit_Click(object sender, System.EventArgs e) { try { UserAmend.CancelCurrentEdit(); //取消編輯 } catch(Exception express) { MessageBox.Show(express.ToString(),"",MessageBoxButtons.OK,MessageBoxIcon.Error); } return; } private void Refbutt_Click(object sender, System.EventArgs e) { //UserAmend.Refresh(); DGtable.Clear(); this.UserMagsqlDataAdapter.Fill(DGtable); this.UserdGrid.DataSource = DGtable.DefaultView; }
六、權限管理與軟件維護 6.1 建立操作員權限管理窗體 為了軟件使用安全不被他人盜用以及不同身份的人都產品的了解的信息是不同如收貨員只知道商品的價格即可,而老板則需要掌握更多的信息;為了保證軟件的這些功能就需要為該軟件設置一些不同的使用權限,從而在軟件中就要加入一個軟件使用安全的模塊。 6.2 建立數據維護窗體 在這個窗體中實現一些對存儲的數據能夠自動處理的一些功能,如:刪除一些繁瑣的信息、能夠處理數據庫中的冗余度、有些數據在不同的權限中有的可以修改而有的則不能修改;所以這個窗體主要是為了整個軟件的使用安全而設置的。
七、軟件的使用方法 本軟件分以下幾個步驟使用: 第一步:建立基本信息,在《基本信息》菜單中,分別建立商品、往來單位(包括供貨商、用戶等)等等8類基本信息。這些信息將長期保留在電腦里,供您日后直接選用。您可以對商品庫、往來單位庫作多級分類,把數據安排得更合理、簡明。 第二步:對該軟件進行定期的維護,該軟件數據庫對數據的容納量是有一定的限度的,當數據過度超過了數據庫的最大負荷,有可能導致數據庫癱瘓或者遭成運行速度過慢或者死機等現象。 第三步:對電腦進行定期的殺毒以便維護該軟件健康的運行。
八、結 論 基于先進的計算機技術開發的商業超市管理信息系統可以幫助商業超市改變落后的經營模式,并且可以使管理層及時、合理地進行管理和決策。因此設計開發的商業超市管理信息系統應順應社會發展的潮流。本次畢業設計主要負責商業超市管理信息系統中的管理子系統的設計與實現。主要是對應收賬款和應付賬款進行管理。從而提高企業的經濟效益。 本文對商業超市管理信息系統中的管理子系統的設計與開發過程進行詳細說明:首先,對管理子系統進行介紹;然后,通過對系統進行分析,描述了系統的業務流程與系統的數據流程;在系統分析的基礎上進行系統設計,主要完成了系統模塊功能劃分、數據庫設計、輸入輸出設計和界面設計。最后經過軟硬件環境的準備和各種工具的支持實現了系統的實施。
參 考 文 獻 薛華成. 管理信息系統 清華大學出版社 2005年4月第三版 謝希仁 計算機網絡 電子工業出版社 2008年1月第一版 劉斌 java web整合開發 電子工業出版社 2007年10月初版
本站部分文章來自網絡,如發現侵犯了您的權益,請聯系指出,本站及時確認刪除 E-mail:349991040@qq.com
論文格式網(www.donglienglish.cn--論文格式網拼音首字母組合)提供其他論文畢業論文格式,論文格式范文,畢業論文范文