【文章內(nèi)容簡(jiǎn)介】
對(duì)帳。該模塊主要對(duì)進(jìn)貨方面信息進(jìn)行管理,包含了 對(duì)退貨信息的反映 ,確保把每一筆的交易記錄都能準(zhǔn)確的反映出來(lái) ,還包含了進(jìn)貨分析 ,能準(zhǔn)確的顯示每一筆進(jìn)貨的信息和兼顧進(jìn)貨單據(jù)和對(duì)帳,保證數(shù)據(jù)的準(zhǔn)確性。 銷(xiāo)售信息模塊 銷(xiāo)售單、銷(xiāo)售退貨、銷(xiāo)售統(tǒng)計(jì)不含退貨、月銷(xiāo)售狀況、商品銷(xiāo)售排行、與代理商對(duì)帳、商品銷(xiāo)售成本表。該模塊能準(zhǔn)確的記錄了整個(gè)銷(xiāo)售方面所需的各個(gè)業(yè)務(wù) ,更增加了月銷(xiāo)售狀況的信息 ,能讓公司領(lǐng)導(dǎo)能快速了解到產(chǎn)品的銷(xiāo)售情況 ,了解市場(chǎng)熱點(diǎn) ,及時(shí)調(diào)整銷(xiāo)售策略 ,同時(shí)能顯示各種銷(xiāo)售信息,兼顧了單據(jù)和對(duì)帳的管理,保證數(shù)據(jù)不會(huì)出錯(cuò)。 庫(kù)存信息模塊 庫(kù)存狀況、庫(kù)存上限警報(bào)、庫(kù)存 下限報(bào)警、商品進(jìn)銷(xiāo)存變動(dòng)表、庫(kù)存盤(pán)點(diǎn)。該模塊能實(shí)現(xiàn)實(shí)時(shí)顯示庫(kù)存的狀況,能讓銷(xiāo)售人員能在銷(xiāo)售時(shí)準(zhǔn)確知道供貨能力 ,而且能夠協(xié)助采購(gòu)人員制定采購(gòu)計(jì)劃 ,確保公司產(chǎn)品的銷(xiāo)售庫(kù)存而不會(huì)積壓過(guò)多的產(chǎn)品而無(wú)故占用資金。 系統(tǒng)維護(hù)模塊 操作員設(shè)置、操作員權(quán)限設(shè)置、數(shù)據(jù)備份和恢復(fù)、數(shù)據(jù)清理。該模塊主要實(shí)現(xiàn)必要的操作員管理和權(quán)限設(shè)置,能很方便的對(duì)操作員進(jìn)行增加和刪除 ,并對(duì)其權(quán)限進(jìn)行管理分配 .該模塊同時(shí)能對(duì)數(shù)據(jù)進(jìn)行備份和恢復(fù) ,使數(shù)據(jù)的安全管理更容易實(shí)現(xiàn) ,還能對(duì)數(shù)據(jù)進(jìn)行清理 ,更方便對(duì)數(shù)據(jù)進(jìn)行管理。 幫助信息模塊 本單位信息、幫助信息 、系統(tǒng)關(guān)于。提供本單位信息和系統(tǒng)相關(guān)信息 ,讓客戶(hù)在使用過(guò)程中可了解本系統(tǒng)信息。同時(shí)該模塊更能為客戶(hù)提供使用本系統(tǒng)時(shí)所需的幫助信息 ,使客戶(hù)更容易熟悉本系統(tǒng)的使用。 編碼設(shè)計(jì) 編碼設(shè)計(jì)是數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)的前提條件,是系統(tǒng)不可缺少的重要內(nèi)容。編碼是指與原來(lái)名稱(chēng)對(duì)應(yīng)的編號(hào)、符號(hào)或記號(hào)。它是進(jìn)行信息交換、處理、傳輸和實(shí)現(xiàn)信息資源共享的關(guān)鍵。編碼也用于指定數(shù)據(jù)的處理方法、區(qū)別數(shù)據(jù)類(lèi)型,并指定計(jì)算機(jī)處理的內(nèi)容等。 基于 B/S 結(jié)構(gòu)的 企業(yè)進(jìn)銷(xiāo)存管理系統(tǒng) 計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)畢業(yè)論文(設(shè)計(jì)) 14 數(shù)據(jù)庫(kù)命名規(guī)則 數(shù)據(jù)庫(kù)命名統(tǒng)一以字母 db(小寫(xiě))開(kāi)頭,后面加數(shù)據(jù)庫(kù)相關(guān)英文單詞或縮寫(xiě)。 數(shù)據(jù)表命 名統(tǒng)一以字母 tb(小寫(xiě))開(kāi)頭,后面加數(shù)據(jù)表相關(guān)英文單詞或縮寫(xiě)。 字段命名一律采用英文單詞或詞組(可利用翻譯軟件)命名,如果找不到專(zhuān)業(yè)的英文單詞或者詞組,可以用相同意義的英文單詞或者詞組代替。 程序代碼命名規(guī)則 變量以及對(duì)象名稱(chēng)定義規(guī)則:根據(jù)不同的程序需要,編寫(xiě)代碼的時(shí)候都需要定義一定的變量或者常量,為了使代碼更容易讀懂和維護(hù),命名必須區(qū)分不同級(jí)別的變量或者常量 ,規(guī)則如下: 模塊級(jí)變量: M_+數(shù)據(jù)類(lèi)型簡(jiǎn)寫(xiě) +變量名稱(chēng),舉例: M_int_xx 全局變量: G_+數(shù)據(jù)類(lèi)型簡(jiǎn)寫(xiě) +變量名稱(chēng),舉例: G_int_xx 局部變量: P_+數(shù)據(jù)類(lèi)型簡(jiǎn)寫(xiě) +變量名稱(chēng),舉例: P_db1_sl 模塊級(jí)常量: Mc_+數(shù)據(jù)類(lèi)型簡(jiǎn)寫(xiě) +常量名稱(chēng),舉例: Mc_str_xx 全局常量: Gc_+數(shù)據(jù)類(lèi)型簡(jiǎn)寫(xiě) +常量名稱(chēng),舉例: Gc_str_xx 過(guò)程級(jí)常量: Pc_+數(shù)據(jù)類(lèi)型簡(jiǎn)寫(xiě) +常量名稱(chēng),舉例: Pc_str_xx 控件命名規(guī)則 窗體和控件的命名應(yīng)采用統(tǒng)一的規(guī)范,一般采用具有實(shí)際意義的英文單詞或者標(biāo)識(shí),也可以采用多個(gè)單詞的組合。窗體一般采用 frm_**或者 Frm_main 的形式,如 frm_main 等。 數(shù)據(jù)庫(kù)設(shè)計(jì) 開(kāi)發(fā)應(yīng)用程序時(shí),對(duì)數(shù)據(jù)庫(kù)的操作是必不可少的。數(shù)據(jù)庫(kù)設(shè)計(jì)是根據(jù)程序的需求及其實(shí)現(xiàn)功能所制定的,數(shù)據(jù)庫(kù)設(shè)計(jì)的合理與否將直接影響到程序的開(kāi)發(fā)過(guò)程。而本系統(tǒng)數(shù)據(jù)庫(kù)采用 SQL Server 2020 數(shù)據(jù)庫(kù),系統(tǒng)數(shù)據(jù)庫(kù)名稱(chēng)為 db_SSS。數(shù)據(jù)庫(kù) db_SSS 中包含 16 張表。 基于 B/S 結(jié)構(gòu)的 企業(yè)進(jìn)銷(xiāo)存管理系統(tǒng) 計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)畢業(yè)論文(設(shè)計(jì)) 15 為了對(duì)本系統(tǒng)后臺(tái)的數(shù)據(jù)庫(kù)中數(shù)據(jù)表有一個(gè)更清晰的認(rèn)識(shí),下面設(shè)計(jì)了一個(gè)數(shù)據(jù)表樹(shù)型結(jié)構(gòu)圖如圖 4所示,該數(shù)據(jù)表樹(shù)型結(jié)構(gòu)圖包含系統(tǒng)所有數(shù)據(jù)表。 圖 4 數(shù)據(jù)庫(kù)表 第四章 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 、 公共模塊實(shí)現(xiàn) 在開(kāi)發(fā)應(yīng)用程序時(shí),可以將數(shù)據(jù)庫(kù)的相關(guān)操作以及對(duì)一些控件的設(shè)置、遍歷等封裝在自定義模塊中,以便于在開(kāi)發(fā)程序時(shí)調(diào)用,這樣可以提高代碼的重用性。本系統(tǒng)創(chuàng)建了一個(gè)名基于 B/S 結(jié)構(gòu)的 企業(yè)進(jìn)銷(xiāo)存管理系統(tǒng) 計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)畢業(yè)論文(設(shè)計(jì)) 16 為 Module1 的標(biāo)準(zhǔn)模塊,在該模塊中定義了公共的變量、過(guò)程和函數(shù)。 主函數(shù)設(shè)定 在一個(gè)應(yīng)用程序中,一般都有一個(gè)主程序( Sub Main) ,程序的執(zhí)行從這個(gè)主程序開(kāi)始。 數(shù)據(jù)庫(kù)連接 數(shù)據(jù)庫(kù)連接在開(kāi)發(fā)數(shù)據(jù)庫(kù)管理系統(tǒng)中經(jīng)常用到。在本程序中為了優(yōu)化數(shù)據(jù)庫(kù)的連接,減少代碼的使用,在公共模塊中定義一個(gè)函數(shù)用 于執(zhí)行數(shù)據(jù)庫(kù)連接。編程過(guò)程中,如果需要使用數(shù)據(jù)庫(kù)連接,就可以直接調(diào)用數(shù)據(jù)庫(kù)連接函數(shù) n 來(lái)操作數(shù)據(jù)庫(kù)。 關(guān)鍵代碼如下: Public Function n() As 39。共享數(shù)據(jù)庫(kù)連接 Set n = New Provider=。Persist Security Info=False。User ID=sa。Initial Catalog=db_SSS End Function 拼音簡(jiǎn)碼函數(shù) 拼音簡(jiǎn)碼函數(shù)的設(shè)計(jì)很有必要性,在進(jìn)銷(xiāo)存管理系統(tǒng)中進(jìn)行商品的進(jìn)貨和銷(xiāo)售操作時(shí),可以讓操作者直接輸入商品的拼音簡(jiǎn)碼來(lái)完成商品的檢索,這樣可以為信息的錄入帶來(lái)極大的方便。 關(guān)鍵代碼如下: Public Function py(Mystr As String) As String 39。獲得漢字的拼音簡(jiǎn)碼 On Error Resume Next If Asc(Mystr) 0 Then If Asc(Left(Mystr, 1)) Asc(啊 ) Then py = 0 Exit Function End If If Asc(Left(Mystr, 1)) = Asc(啊 ) And Asc(Left(Mystr, 1)) Asc(芭 ) Then py = A Exit Function End If ‘? .此處代碼有省略 If UCase(Mystr) = Z And UCase(Mystr) = A Then py = UCase(Left(Mystr, 1)) Else py = Mystr End If End If End Function 基于 B/S 結(jié)構(gòu)的 企業(yè)進(jìn)銷(xiāo)存管理系統(tǒng) 計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)畢業(yè)論文(設(shè)計(jì)) 17 啟動(dòng)窗體的實(shí)現(xiàn) 啟動(dòng)窗體用作歡迎客戶(hù)使用之友好界面,可以在應(yīng)用程序啟動(dòng)時(shí)一閃而過(guò),也可以為用戶(hù)提示一定信息,但用戶(hù)無(wú)需對(duì)其進(jìn)行任何操作。本程序設(shè)計(jì)歡迎界面,是本著領(lǐng)導(dǎo)本程序界面更加友 好,同時(shí)避免數(shù)據(jù)加載過(guò)程中使用者由于等待時(shí)間過(guò)長(zhǎng)而產(chǎn)生焦慮。企業(yè)進(jìn)銷(xiāo)存管理系統(tǒng)中的啟動(dòng)窗體如圖 5 所示 : 圖 5 啟動(dòng)窗體 系統(tǒng)登錄實(shí)現(xiàn) 由于本系統(tǒng)內(nèi)容關(guān)乎一個(gè)企業(yè)的來(lái)貨以及銷(xiāo)售信息,因此,一個(gè)安全的登錄窗體設(shè)計(jì)是非常重要的。本窗體的設(shè)計(jì)主要就是用于對(duì)登錄到企業(yè)進(jìn)銷(xiāo)存管理系統(tǒng)中的用戶(hù)進(jìn)行安全檢查,以防止非法用戶(hù)進(jìn)入到本系統(tǒng),即只有合法的用戶(hù)才能登陸到本系統(tǒng)。 登錄窗體主要是通過(guò)對(duì)數(shù)據(jù)表 tbS_power 的查詢(xún),結(jié)合 IF 語(yǔ)句判斷選定的用戶(hù)以及輸入的密碼是否符合數(shù)據(jù)庫(kù)中的用 戶(hù)名和密碼是否正確,如果正確則正常登錄,否則錯(cuò)誤超過(guò) 3 次則強(qiáng)行退出系統(tǒng)。系統(tǒng)登錄窗體的界面效果如圖 6 所示: 圖 6 登錄界面 當(dāng)窗體啟動(dòng)后,單擊用戶(hù)頭像,將顯示該用戶(hù)的用戶(hù)名和編號(hào),并將焦點(diǎn)設(shè)置在“密碼”文本框中。 關(guān)鍵代碼如下: Private Sub ListView1_Click() 基于 B/S 結(jié)構(gòu)的 企業(yè)進(jìn)銷(xiāo)存管理系統(tǒng) 計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)畢業(yè)論文(設(shè)計(jì)) 18 If 0 Then 39。查詢(xún)操作員信息 select * from tbS_power where sysuser =39。 + + 39。, n, adOpenKeyset If 0 Then 39。給相應(yīng)的控件賦值 = (userid) = (sysuser) End If End If End Sub 選中用戶(hù)名以后,在“密碼”文本框中輸入該用戶(hù)的密碼,然后單擊“確定”按鈕,進(jìn)入系統(tǒng)內(nèi)部。當(dāng)用戶(hù)單擊“確定”按鈕時(shí)候,系統(tǒng)將核對(duì)該用戶(hù)所輸入密碼與數(shù)據(jù)庫(kù)中的密碼時(shí)候相同,如果相同則進(jìn)入到系統(tǒng)內(nèi)部;如果不正確,則提示信息并將輸入次數(shù)加 1,寫(xiě)入到 Txt_Time 文本框中;當(dāng) Txt_Time 文本框中的次數(shù)超過(guò) 3次,則提示信息,退出系統(tǒng) . 關(guān)鍵代碼如下: Private Sub Lbl_OK_Click() 39。確定 select * from tbS_power where sysuser =39。 + Trim() + 39。, n, adOpenKeyset If 0 Then 39。如果記錄數(shù)大于零 39。驗(yàn)證操作員及密碼 If = (password) Then 39。 為用戶(hù)分配權(quán)限 = select * from tbS_power where sysuser =39。 + Trim() + 39。 If 0 Then If (stock).Value Then 39。進(jìn)貨管理 = True Else = False End If If (vendition).Value Then 39。銷(xiāo)售管理 = True 基于 B/S 結(jié)構(gòu)的 企業(yè)進(jìn)銷(xiāo)存管理系統(tǒng) 計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)畢業(yè)論文(設(shè)計(jì)) 19 Else = False End If If (storage).Value Then 39。庫(kù)存管理 = True Else = False End If If (system).Value Then 39。系統(tǒng)管理 = True Else = False End If If (base).Value Then = True Else = False End If Else MsgBox 您輸入的信息不正確! 39。使控件獲得焦點(diǎn)