版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 本科畢業(yè)設(shè)計(jì)(論文)</p><p><b> ( 屆)</b></p><p> 論文題目基于C#與IDEF0的進(jìn)銷(xiāo)存管理系統(tǒng)</p><p> 所在學(xué)院 </p><p> 專(zhuān)業(yè)班級(jí) 信息管理與信息系統(tǒng) &l
2、t;/p><p> 學(xué)生姓名 學(xué)號(hào) </p><p> 指導(dǎo)教師 職稱(chēng) </p><p> 完成日期 年 月 日</p><p> 基于C#與IDEF0的進(jìn)銷(xiāo)存管理系統(tǒng)研究</p><p&g
3、t; 摘要:隨著經(jīng)濟(jì)的高速發(fā)展,企業(yè)的信息化工作也在如火如荼地進(jìn)行,由于企業(yè)規(guī)模的不斷擴(kuò)大以及商務(wù)往來(lái)的日益增多,企業(yè)對(duì)進(jìn)銷(xiāo)存信息的掌握和使用也越來(lái)越多,以前原始的手工操作方式不能適應(yīng)企業(yè)快速發(fā)展的需要,由此,提出了本研究課題。在研究中,在IDEF0建?;A(chǔ)上,結(jié)合進(jìn)銷(xiāo)存業(yè)務(wù)流程,以軟件工程的思想作為指導(dǎo),對(duì)系統(tǒng)的實(shí)現(xiàn)進(jìn)行了研究,最后開(kāi)發(fā)出一個(gè)進(jìn)銷(xiāo)存管理系統(tǒng)。此系統(tǒng)經(jīng)初步檢驗(yàn),可以迅速提高企業(yè)的業(yè)務(wù)效率,節(jié)省人力資源,提高管理水平,從
4、而降低企業(yè)的管理成本。</p><p> 關(guān)鍵詞:進(jìn)銷(xiāo)存,C#,IDEF0,管理系統(tǒng)</p><p> Invoicing Management System based on C# and IDEF0</p><p> Abstract :With the rapid economic development, enterprise information
5、technology is also working quickly, due to the continuous expansion of business scale and the increasing number of business contacts, business-to-Invoicing and the use of information to grasp more and more, before the or
6、iginal manual mode of operation can not meet the needs of rapid development of enterprises, which is proposed in this research topic. In the study, lied to the IDEF0 modeling foundation, combined with Invoicing</p>
7、<p> Key Words: Invoicing,C#,IDEF0, Management System</p><p><b> 目錄</b></p><p><b> 1 引言1</b></p><p> 1.1 問(wèn)題的提出1</p><p> 1.2 研究意
8、義1</p><p><b> 2 系統(tǒng)分析2</b></p><p> 2.1 系統(tǒng)需求分析2</p><p> 2.2 可行性分析3</p><p> 3 相關(guān)技術(shù)介紹及分析3</p><p> 3.1 SQL Server概述3</p><
9、p> 3.2 .Net平臺(tái)介紹4</p><p> 3.3 C#語(yǔ)言概述5</p><p> 4 系統(tǒng)模塊設(shè)計(jì)及功能需求分析5</p><p> 4.1 基于IDEF0的系統(tǒng)建模5</p><p> 4.2 系統(tǒng)主要功能模塊分析9</p><p> 5 系統(tǒng)設(shè)計(jì)10</p
10、><p> 5.1 數(shù)據(jù)庫(kù)設(shè)計(jì)10</p><p> 5.1.1 數(shù)據(jù)庫(kù)概述10</p><p> 5.1.2 數(shù)據(jù)庫(kù)分析11</p><p> 5.1.3 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)13</p><p> 5.1.4 存儲(chǔ)過(guò)程以及觸發(fā)器18</p><p> 5.2 系
11、統(tǒng)詳細(xì)設(shè)計(jì)20</p><p> 5.2.1 數(shù)據(jù)庫(kù)連接20</p><p> 5.2.2 系統(tǒng)登陸設(shè)計(jì)21</p><p> 5.2.3 數(shù)據(jù)統(tǒng)計(jì)及打印21</p><p> 5.2.4 系統(tǒng)的安全性措施22</p><p> 5.2.5 系統(tǒng)測(cè)試運(yùn)行22</p><
12、;p> 6 系統(tǒng)實(shí)現(xiàn)23</p><p> 6.1 系統(tǒng)登陸實(shí)現(xiàn)23</p><p> 6.2 主界面實(shí)現(xiàn)25</p><p> 6.3 部分基礎(chǔ)數(shù)據(jù)管理25</p><p> 6.4 業(yè)務(wù)管理27</p><p> 6.5 商品入庫(kù)、出庫(kù)管理30</p><
13、;p> 6.6 財(cái)務(wù)管理實(shí)現(xiàn)32</p><p><b> 7 總結(jié)34</b></p><p> 致謝錯(cuò)誤!未定義書(shū)簽。</p><p><b> 參考文獻(xiàn)35</b></p><p><b> 1 引言朗讀</b></p><
14、;p> 顯示對(duì)應(yīng)的拉丁字符的拼音</p><p> 字典 - 查看字典詳細(xì)內(nèi)容</p><p> 中國(guó)工業(yè)和信息化部總工程師朱宏任26日在西安舉行的“2010中國(guó)(陜西)非公有制經(jīng)濟(jì)發(fā)展論壇”上表示,目前中國(guó)中小企業(yè)總數(shù)已占全國(guó)企業(yè)總數(shù)的99%以上,創(chuàng)造的最終產(chǎn)品和服務(wù)價(jià)值相當(dāng)于國(guó)內(nèi)生產(chǎn)總值的60%左右,在繁榮經(jīng)濟(jì)、推動(dòng)創(chuàng)新、擴(kuò)大出口、增加就業(yè)等方面發(fā)揮了重要作用[1]。雖然中
15、小企業(yè)在現(xiàn)階段取得了很好的成績(jī),但是伴隨著經(jīng)濟(jì)的高速發(fā)展,中小企業(yè)規(guī)模的不斷擴(kuò)大以及商務(wù)往來(lái)的日益增多,中小企業(yè)的一些弊端就暴露了出來(lái),其中最大的就是由于業(yè)務(wù)量的增大,對(duì)進(jìn)銷(xiāo)存信息的掌握要求越來(lái)越高,以前原始的手工操作方式已經(jīng)不能適應(yīng)企業(yè)快速發(fā)展的需要,因此進(jìn)行有效的進(jìn)銷(xiāo)存管理已經(jīng)成為中小企業(yè)生存的一個(gè)要事。</p><p> 1.1 問(wèn)題的提出</p><p> 就目前來(lái)說(shuō)大量的中
16、小型企業(yè)存在這樣的問(wèn)題:由于進(jìn)銷(xiāo)存方面管理的不完善,一些相關(guān)的管理人員都無(wú)法得到企業(yè)全面的進(jìn)銷(xiāo)存信息,例如相關(guān)的報(bào)表,這就導(dǎo)致了整個(gè)企業(yè)管理人員中的信息無(wú)法保持一致。并且由于高速發(fā)展帶來(lái)的市場(chǎng)競(jìng)爭(zhēng)日趨激烈,產(chǎn)品的日趨同質(zhì)以及電子商務(wù)的快速發(fā)展帶來(lái)了貿(mào)易方式的變革以及經(jīng)濟(jì)活動(dòng)的革命,這些雖然給中小企業(yè)帶來(lái)了與大公司競(jìng)爭(zhēng)的有利條件,但是由于中小企業(yè)在管理體制上的不完善,并且企業(yè)的競(jìng)爭(zhēng)目標(biāo)也從單純的產(chǎn)品競(jìng)爭(zhēng)轉(zhuǎn)向?yàn)楣?yīng)鏈的競(jìng)爭(zhēng),企業(yè)不僅僅關(guān)心銷(xiāo)
17、售的擴(kuò)大,更加開(kāi)始關(guān)心進(jìn)、銷(xiāo)、存的各個(gè)環(huán)節(jié)。企業(yè)開(kāi)始從成本控制方面加強(qiáng)企業(yè)的競(jìng)爭(zhēng)力,這些無(wú)疑會(huì)使中小企業(yè)在競(jìng)爭(zhēng)中處于及其不利的地位,使中小企業(yè)在日趨激烈的競(jìng)爭(zhēng)中無(wú)法占有一席之地。</p><p><b> 1.2 研究意義</b></p><p> 進(jìn)銷(xiāo)存系統(tǒng)通過(guò)對(duì)企業(yè)擁有的人力、物力、財(cái)力、設(shè)備、技術(shù)等資源的調(diào)查了解,建立正確的數(shù)據(jù),加工處理并編制成各種信息資
18、料及時(shí)提供給管理人員,極大提高了工作人員的工作效率,并且大大減少了以往采購(gòu)、入庫(kù)、銷(xiāo)售、出庫(kù)流程繁瑣,雜亂,周期長(zhǎng)的弊端。利用進(jìn)銷(xiāo)存軟件對(duì)企業(yè)進(jìn)行管理,及時(shí)全面的共享關(guān)鍵信息,可以很好的降低消耗,提高了供應(yīng)鏈的管理水平[2],并且進(jìn)銷(xiāo)存系統(tǒng)通過(guò)各種數(shù)據(jù)的計(jì)算,可以為管理層提供大量基礎(chǔ)數(shù)據(jù),以便進(jìn)行正確的決策,不斷提高企業(yè)的管理水平和經(jīng)濟(jì)效益。</p><p> 在實(shí)際的應(yīng)用中本系統(tǒng)可以為企業(yè)具體提供以下的服務(wù):
19、</p><p> 能對(duì)企業(yè)內(nèi)的各類(lèi)貨物進(jìn)行分類(lèi)管理,并提供最低庫(kù)存量、最高庫(kù)存量、安全庫(kù)存量的預(yù)警功能。</p><p> 可以存儲(chǔ)各種基本信息檔案包括客戶檔案、產(chǎn)品基本信息、供貨單位信息、倉(cāng)庫(kù)信息、員工信息等。</p><p> 可以方便快捷的進(jìn)行商品的采購(gòu)、銷(xiāo)售管理。</p><p> 還必須要有退貨管理。</p>
20、<p> 可以通過(guò)查詢(xún)功能及報(bào)表分析功能對(duì)企業(yè)的基本商品采購(gòu)及銷(xiāo)售信息有所了解為企業(yè)的決策提供依據(jù)。</p><p> 支持庫(kù)存的盤(pán)點(diǎn)功能。</p><p><b> 2 系統(tǒng)分析</b></p><p> 2.1 系統(tǒng)需求分析</p><p> 經(jīng)過(guò)對(duì)系統(tǒng)的業(yè)務(wù)流程、系統(tǒng)流程的調(diào)查以及對(duì)所需提
21、供的服務(wù),一個(gè)成功的進(jìn)銷(xiāo)存信息系統(tǒng)應(yīng)該具備如下的條件: </p><p> 此信息系統(tǒng)要具有方便的數(shù)據(jù)查詢(xún)功能,查詢(xún)數(shù)據(jù)的速度的效率要高,這就要求在建立數(shù)據(jù)庫(kù)的時(shí)候要建立合適的索引;</p><p> 此信息系統(tǒng)要具有良好的人機(jī)交互界面,人機(jī)交互界面作為軟件與客戶的溝通渠道,必須是清楚,簡(jiǎn)單;</p><p> 此信息系統(tǒng)將為用戶提供賬號(hào)管理工具,以便用戶對(duì)賬
22、號(hào)進(jìn)行管理,具體為添加用戶、刪除用戶、修改用戶密碼,并且在帳號(hào)管理的基礎(chǔ)之上,管理員具有權(quán)限管理的功能;</p><p> 此信息系統(tǒng)能通過(guò)圖表分析商品銷(xiāo)售狀況,圖表分析具有直觀,表達(dá)清楚的特點(diǎn),通過(guò)圖表可以為公司決策者的決策提供可靠的依據(jù);</p><p> 此系統(tǒng)可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份以及還原操作;</p><p> 此系統(tǒng)要求具有自動(dòng)編號(hào)的功能,例如,采購(gòu)
23、單的編號(hào)為PU+當(dāng)天日期+5位單據(jù)編號(hào);</p><p> 此系統(tǒng)大部分?jǐn)?shù)據(jù)都要進(jìn)行自動(dòng)計(jì)算,盡量減少人工的計(jì)算,以免產(chǎn)生錯(cuò)誤;</p><p> 2.2 可行性分析</p><p> 本系統(tǒng)后臺(tái)數(shù)據(jù)庫(kù)采用目前較流行的SQL Sever,該數(shù)據(jù)庫(kù)在安全性、準(zhǔn)確性、運(yùn)行速度上有著較好的表現(xiàn),并且可以處理大量的數(shù)據(jù);前臺(tái)則采用的是Visual Studio 20
24、08作為主要的開(kāi)發(fā)工具,.NET Framework3.5框架作為微軟公司已經(jīng)比較成熟的產(chǎn)品,現(xiàn)在有越來(lái)越多的企業(yè)及技術(shù)人員選擇它來(lái)作為開(kāi)發(fā)平臺(tái)使訪問(wèn)數(shù)據(jù)庫(kù)的操作更為簡(jiǎn)單易用。因此,在技術(shù)上是完全可以勝任這個(gè)平臺(tái)的開(kāi)發(fā)。</p><p> 3 相關(guān)技術(shù)介紹及分析</p><p> 3.1 SQL Server概述 </p><p> SQL Server
25、2005 是一個(gè)非常全面的數(shù)據(jù)庫(kù)平臺(tái),使用集成的商業(yè)智能 (BI) 工具提供了企業(yè)級(jí)的數(shù)據(jù)管理。SQL Server 2005 數(shù)據(jù)庫(kù)引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲(chǔ)功能,可以構(gòu)建和管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。本系統(tǒng)采用SQL Server2005作為后臺(tái)數(shù)據(jù)庫(kù)。SQL Server2005的性?xún)r(jià)比最高、運(yùn)行穩(wěn)定、安全性高、操作簡(jiǎn)單,并且由于本系統(tǒng)處理的數(shù)據(jù)量不是很大,所以選擇了SQL Server 2
26、005作為本系統(tǒng)的后臺(tái)數(shù)據(jù)支持系統(tǒng)。并且SQL Server 2005還具有如下的特點(diǎn):</p><p> ?。?)可編程性:CLR(Common Language Runtime,公共語(yǔ)言運(yùn)行時(shí))集成。本系統(tǒng)的開(kāi)發(fā)平臺(tái)是Visual Studio 2008,它與此數(shù)據(jù)庫(kù)同是微軟的產(chǎn)品,其核心已由.NET Framework 3.5改寫(xiě),可以達(dá)到數(shù)據(jù)庫(kù)與開(kāi)發(fā)平臺(tái)的無(wú)縫連接。</p><p>
27、; (2)安全性:SQL Server 2005 的安全達(dá)到了很強(qiáng)大水平,有著很更清晰的安全模型、安全對(duì)象和權(quán)限。 </p><p> ?。?)異步處理能力:Service Broker提供了一個(gè)功能強(qiáng)大的異步編程模型。Broker的最大好處一是異步執(zhí)行能力,提高了可伸縮性,二是可靠執(zhí)行,三是集成于數(shù)據(jù)庫(kù)中,備份數(shù)據(jù)庫(kù)就備份了broker 的消息隊(duì)列。 </p><p> ?。?)支持通
28、過(guò)HTTP SOAP協(xié)議直接訪問(wèn)數(shù)據(jù)庫(kù),增加X(jué)ML數(shù)據(jù)類(lèi)型,支持Xquery,使用新的SQL Server Management Studio 等等。</p><p> 3.2 .Net平臺(tái)介紹</p><p> .NET(全稱(chēng)Dot NET)是由Microsoft公司經(jīng)過(guò)長(zhǎng)時(shí)間的研發(fā)所推出的開(kāi)發(fā)平臺(tái),它吸取了以前開(kāi)發(fā)平臺(tái)的經(jīng)驗(yàn)和教訓(xùn),定義了開(kāi)發(fā)和運(yùn)行企業(yè)級(jí)客戶端應(yīng)用的一個(gè)標(biāo)準(zhǔn),一個(gè)
29、體系結(jié)構(gòu),它以開(kāi)發(fā)的可靠性、可擴(kuò)展性、可管理性和安全性很快被Web和Windows Form的開(kāi)發(fā)者所喜愛(ài)。.NET的體系結(jié)構(gòu)[3]如下:</p><p> 圖3.1 .Net平臺(tái)體系結(jié)構(gòu)</p><p> .Net平臺(tái)在開(kāi)發(fā)上還有以下的優(yōu)勢(shì)【4】:</p><p> ?。?)優(yōu)秀的設(shè)計(jì)。只有一個(gè)基類(lèi)庫(kù),并以一種非常直觀的方式設(shè)計(jì)出來(lái)。</p>&
30、lt;p> (2)語(yǔ)言無(wú)關(guān)性。在.NET中,VB.NET、C#、J#和Managed C++等語(yǔ)言都可以編譯為通用的中間語(yǔ)言(Intermediate Language),這說(shuō)明,語(yǔ)言可以用以前沒(méi)有的方式交互操作。</p><p> ?。?)高效的數(shù)據(jù)訪問(wèn)。一組.NET組件,總稱(chēng)為ADO.NET,提供了對(duì)關(guān)系數(shù)據(jù)庫(kù)和各種數(shù)據(jù)源的高效訪問(wèn),這些組件也可以訪問(wèn)文件系統(tǒng)和目錄。.NET內(nèi)置了XML支持,可以處
31、理從非Windows平臺(tái)導(dǎo)入或?qū)С龅臄?shù)據(jù)。</p><p> (4)增強(qiáng)的安全性。每個(gè)程序集還可以包含內(nèi)置的安全信息,這些信息可以準(zhǔn)確的指出誰(shuí)或哪種類(lèi)型的用戶或進(jìn)程可以調(diào)用什么類(lèi)的哪些方法,這樣就可以非常準(zhǔn)確的控制程序集的使用方式。</p><p> 3.3 C#語(yǔ)言概述</p><p> C#是一種面向?qū)ο缶幊痰恼Z(yǔ)言,主要用于在開(kāi)發(fā)可以在.Net平臺(tái)上運(yùn)行
32、的應(yīng)用程序。C#語(yǔ)言體系都構(gòu)建在.Net框架上,它是從C和C++派生出來(lái)的一種簡(jiǎn)單、現(xiàn)代、面向?qū)ο蠛皖?lèi)型安全的編程語(yǔ)言,并且能夠與.Net框架完美結(jié)合,除此之外,C#還具有以下特點(diǎn) [5]: </p><p> (1)語(yǔ)法簡(jiǎn)潔。不允許直接操作內(nèi)存,去掉了指針操作。</p><p> ?。?)徹底的面向?qū)ο笤O(shè)計(jì)。C#具有面向?qū)ο笳Z(yǔ)言所應(yīng)有的一切特性——封裝、繼承和多態(tài)。</p>
33、<p> ?。?)強(qiáng)大的安全機(jī)制。可以消除軟件開(kāi)發(fā)中的常見(jiàn)錯(cuò)誤(如語(yǔ)法錯(cuò)誤),.NET提供的垃圾回收器能夠幫助開(kāi)發(fā)者有效地管理內(nèi)存資源。</p><p> ?。?)兼容性。因?yàn)镃#遵循.NET的公共語(yǔ)言規(guī)范(CLS),從而保證能夠與其他語(yǔ)言開(kāi)發(fā)的組件兼容。</p><p> ?。?)靈活的版本處理技術(shù)。因?yàn)镃#語(yǔ)言本身內(nèi)置了版本控制功能,使得開(kāi)發(fā)人員可以更容易地開(kāi)發(fā)和維護(hù)。&
34、lt;/p><p> ?。?)完善的錯(cuò)誤、異常處理機(jī)制。C#提供了完善的錯(cuò)誤和異常處理機(jī)制,使程序在交付應(yīng)用時(shí)能夠更加健壯。</p><p> 4 系統(tǒng)模塊設(shè)計(jì)及功能需求分析</p><p> 4.1 基于IDEF0的系統(tǒng)建模</p><p> 建模的目的包括分析現(xiàn)有系統(tǒng)以及待建的未來(lái)系統(tǒng),是對(duì)企業(yè)整體運(yùn)營(yíng)活動(dòng)的描述以及開(kāi)發(fā)過(guò)程中各種關(guān)
35、系的分析。企業(yè)建模是實(shí)現(xiàn)信息系統(tǒng)集成和優(yōu)化的基礎(chǔ),是針對(duì)企業(yè)所需要解決的問(wèn)題【6】。</p><p> 企業(yè)信息系統(tǒng)建模作為企業(yè)信息集成的決策支持工具和方法的集合, 是信息系統(tǒng)開(kāi)發(fā)的關(guān)鍵。IDEF0作為IDEF中的一種已得到廣泛的應(yīng)用【7】。IDEF0的基本概念是在70年代提出的結(jié)構(gòu)化分析方法基礎(chǔ)上發(fā)展起來(lái)的。結(jié)構(gòu)化分析方法在許多應(yīng)用問(wèn)題中起了很好的作用。該方法在降低開(kāi)發(fā)費(fèi)用、減少系統(tǒng)中的錯(cuò)誤、促進(jìn)交流的一致性
36、及加強(qiáng)管理等方面都產(chǎn)生了較好的效益【8】。</p><p> IDEF0描述系統(tǒng)的功能活動(dòng)及其聯(lián)系,在ICAM中建立加工制造業(yè)的體系結(jié)構(gòu)模型,其基本內(nèi)容是SADT的活動(dòng)模型方法,是由Softech發(fā)展而來(lái)的。</p><p> 作為一種功能建模語(yǔ)言,IDEF0具有以下特點(diǎn):全面及表達(dá)能力強(qiáng);是一種連貫的簡(jiǎn)單的語(yǔ)言;易于學(xué)習(xí)并強(qiáng)調(diào)細(xì)節(jié)的層次化;在美國(guó)空軍、其他政府開(kāi)發(fā)工程以及私營(yíng)工業(yè)中的
37、應(yīng)用得到了很好的檢驗(yàn)和證明;能由多種計(jì)算機(jī)圖形工具生成[9]。</p><p> 進(jìn)銷(xiāo)存系統(tǒng)是一個(gè)比較復(fù)雜的過(guò)程,涉及多個(gè)方面的內(nèi)容,一般的說(shuō),一個(gè)系統(tǒng)可以被認(rèn)為是由對(duì)象物體(用數(shù)據(jù)表示)和活動(dòng)(由人、機(jī)器和軟件來(lái)執(zhí)行)以及他們之間的聯(lián)系組成。但如果是從數(shù)據(jù)或活動(dòng)來(lái)描述,那么至多只反映了一個(gè)側(cè)面,這樣的技術(shù)很難說(shuō)明系統(tǒng)的全貌[10],而IDEF0卻很好的解決了這個(gè)問(wèn)題,如圖4.1.1所示,IDEF0能同時(shí)表達(dá)系
38、統(tǒng)的活動(dòng)(盒子)和數(shù)據(jù)流(箭頭)以及他們之間的聯(lián)系,由此我們可以很好的看到整個(gè)系統(tǒng)。系統(tǒng)得到輸入的商品資料、供應(yīng)商資料及客戶資料等基本信息,根據(jù)市場(chǎng)情況以及人員資金等,得出各種報(bào)表數(shù)據(jù)以及為公司決策提供依據(jù)。圖4.1.2是系統(tǒng)頂層系統(tǒng)功能圖,它表明系統(tǒng)中各模塊之間的輸入輸出關(guān)系。系統(tǒng)主要由采購(gòu)管理,銷(xiāo)售管理,庫(kù)存管理,財(cái)務(wù)管理等模塊組成。采購(gòu)管理主要是根據(jù)實(shí)際需求進(jìn)行采購(gòu)活動(dòng),包括采購(gòu)單錄入,審核,明細(xì)單的錄入等功能。銷(xiāo)售管理主要是填寫(xiě)
39、銷(xiāo)售單錄入,審核,銷(xiāo)售明細(xì)單的錄入等。庫(kù)存管理主要是對(duì)當(dāng)前的庫(kù)存狀況進(jìn)行查詢(xún),對(duì)庫(kù)存進(jìn)行報(bào)警以及庫(kù)存盤(pán)點(diǎn)調(diào)撥等一系列的功能。財(cái)務(wù)管理是根據(jù)采購(gòu)明細(xì)單和銷(xiāo)售明細(xì)單形成欠款信息,根據(jù)欠款信息進(jìn)行收付款。</p><p> 圖4.1 進(jìn)銷(xiāo)存管理系統(tǒng)活動(dòng)圖</p><p> 圖4.2進(jìn)銷(xiāo)存管理系統(tǒng)頂層功能圖</p><p> 按照IDEF0功能模型的特點(diǎn),即從上到下,
40、逐層分解,可以得到一張系統(tǒng)功能模型的層次分解表。如表1所示:</p><p> 表4.1 系統(tǒng)功能模型層次分解表</p><p> 根據(jù)上表的內(nèi)容,由此可以得到系統(tǒng)功能分解圖,如圖3所示:</p><p> 圖4.3 系統(tǒng)功能分解圖</p><p> 根據(jù)IDEF0模型可以得到的信息模型如圖4所示,表達(dá)了整個(gè)進(jìn)銷(xiāo)存系統(tǒng)中各功能模塊之間
41、的聯(lián)系,讓整個(gè)進(jìn)銷(xiāo)存系統(tǒng)能夠完整的運(yùn)行。</p><p> 圖4.4 進(jìn)銷(xiāo)存系統(tǒng)信息模型</p><p> 4.2 系統(tǒng)主要功能模塊分析</p><p> 圖4.5 系統(tǒng)總功能模塊圖</p><p> 根據(jù)需求分析以及建立的IDEF0模型,將進(jìn)銷(xiāo)存管理系統(tǒng)的開(kāi)發(fā)具體劃分為9個(gè)模塊:基礎(chǔ)資料設(shè)置、業(yè)務(wù)管理、查詢(xún)中心、庫(kù)存管理、報(bào)表分析
42、、財(cái)務(wù)管理、基本工具以及系統(tǒng)管理。</p><p> 基礎(chǔ)資料設(shè)置模塊:主要負(fù)責(zé)對(duì)系統(tǒng)的基本數(shù)據(jù)錄入,眾所周知,我們?cè)谡麄€(gè)系統(tǒng)的運(yùn)行中,最基本的操作就是對(duì)數(shù)據(jù)進(jìn)行操作,本模塊就是對(duì)進(jìn)銷(xiāo)存中所涉及到的數(shù)據(jù)輸入到數(shù)據(jù)庫(kù),在這里我們總共有6方面的基礎(chǔ)資料:客戶資料、員工資料、供應(yīng)商資料、倉(cāng)庫(kù)信息資料、商品資料、商品類(lèi)別資料。通過(guò)本模塊可以對(duì)數(shù)據(jù)進(jìn)行增、刪、改、查是本系統(tǒng)的一個(gè)很基本的功能模塊。</p>
43、<p> 業(yè)務(wù)管理模塊下面又可以細(xì)分為采購(gòu)模塊和銷(xiāo)售模塊。</p><p> 采購(gòu)管理模塊:隨著時(shí)代的發(fā)展,企業(yè)對(duì)于采購(gòu)的管理越來(lái)越重視,對(duì)于供應(yīng)商的選擇也越來(lái)越慎重,雙方從討價(jià)還價(jià)的關(guān)系轉(zhuǎn)變成了相互依存的關(guān)系,企業(yè)更加充分的認(rèn)識(shí)到了企業(yè)的產(chǎn)品質(zhì)量要從采購(gòu)抓起,這就關(guān)系到了供貨商的供貨質(zhì)量。采購(gòu)業(yè)務(wù)的流程主要涉及到下面幾個(gè)環(huán)節(jié),由員工填寫(xiě)采購(gòu)訂單,主要內(nèi)容包括供應(yīng)商,采購(gòu)的商品,采購(gòu)價(jià)格,采購(gòu)數(shù)量等
44、。并且當(dāng)發(fā)現(xiàn)商品的質(zhì)量不合格,型號(hào)不對(duì)、運(yùn)輸錯(cuò)誤等原因造成的問(wèn)題作出采購(gòu)?fù)素浀奶幚恚谶@里我們的采購(gòu)?fù)素浻射N(xiāo)售單進(jìn)行處理,在單據(jù)類(lèi)型中選擇采購(gòu)?fù)素洝?lt;/p><p> 銷(xiāo)售管理模塊:自古以來(lái),銷(xiāo)售在企業(yè)的經(jīng)營(yíng)活動(dòng)中占據(jù)著很重要的地位,企業(yè)只有通過(guò)銷(xiāo)售才能實(shí)現(xiàn)自己的價(jià)值,創(chuàng)造出可觀的理論,因此企業(yè)必須加強(qiáng)銷(xiāo)售管理,才能提高自己的經(jīng)濟(jì)效益。銷(xiāo)售管理的流程類(lèi)似于采購(gòu)管理,由員工填寫(xiě)銷(xiāo)售單之后,然后將銷(xiāo)售單發(fā)往倉(cāng)庫(kù),由
45、倉(cāng)庫(kù)對(duì)商品進(jìn)行發(fā)貨處理,并且根據(jù)銷(xiāo)售訂單生成出庫(kù)單(一張笑的訂單可以對(duì)應(yīng)多張出庫(kù)單),當(dāng)出現(xiàn)退貨的情況時(shí),在采購(gòu)管理中增加一條退貨單的記錄。</p><p> 查詢(xún)中心模塊:主要功能是對(duì)歷史記錄進(jìn)行查詢(xún)。</p><p> 庫(kù)存管理模塊:企業(yè)庫(kù)存不當(dāng)?shù)脑挄?huì)增加很多不必要的費(fèi)用,當(dāng)存貨過(guò)多的時(shí)候,將導(dǎo)致庫(kù)存產(chǎn)品的積壓、存儲(chǔ)的費(fèi)用也相應(yīng)的增加,造成流動(dòng)資金周轉(zhuǎn)不利,并且過(guò)量的庫(kù)存還會(huì)導(dǎo)致管
46、理上面出現(xiàn)問(wèn)題。而庫(kù)存不足的話則會(huì)造成企業(yè)正常的銷(xiāo)售環(huán)節(jié)無(wú)法展開(kāi)給企業(yè)造成經(jīng)濟(jì)上的損失,因此良好的庫(kù)存管理是一個(gè)十分必要的事情,庫(kù)存管理的目標(biāo)就是尋求最恰當(dāng)?shù)臉?biāo)準(zhǔn),使庫(kù)存的成本減到最低。</p><p> 報(bào)表分析模塊:市場(chǎng)預(yù)測(cè)是對(duì)影響市場(chǎng)供求變化的諸因素進(jìn)行調(diào)查研究,分析和預(yù)見(jiàn)其發(fā)展趨勢(shì),掌握市場(chǎng)供求變化的規(guī)律,為經(jīng)營(yíng)決策提供可靠的數(shù)據(jù)。預(yù)測(cè)為決策服務(wù),是為了提高管理的科學(xué)水平,減少?zèng)Q策的盲目性,我們需要通過(guò)
47、預(yù)測(cè)來(lái)把握企業(yè)發(fā)展或者未來(lái)市場(chǎng)變化的有關(guān)動(dòng)態(tài),減少未來(lái)的不確定性,降低決策可能遇到的風(fēng)險(xiǎn),使決策目標(biāo)得以順利實(shí)現(xiàn)。而報(bào)表分析就是一種很好的市場(chǎng)預(yù)測(cè)手段,通過(guò)報(bào)表分析可以知道近段時(shí)候商品的銷(xiāo)售情況,采購(gòu)情況以及員工的銷(xiāo)售業(yè)績(jī)等,從而預(yù)測(cè)出市場(chǎng)的一些信息。</p><p> 財(cái)務(wù)管理模塊:財(cái)務(wù)管理的流程是當(dāng)訂單下去之后就會(huì)自動(dòng)生成一張應(yīng)付或者應(yīng)收款的單據(jù),并且一張訂單可以有多張財(cái)務(wù)單據(jù),分多次付款或者收款。<
48、/p><p> 基本工具模塊主要有計(jì)算機(jī),天氣預(yù)報(bào)、記事本、鬧鐘等小功能。</p><p> 系統(tǒng)管理主要負(fù)責(zé)更改用戶、更改密碼、備份還原數(shù)據(jù)庫(kù),管理權(quán)限、用戶注冊(cè)。</p><p><b> 5 系統(tǒng)設(shè)計(jì)</b></p><p> 5.1 數(shù)據(jù)庫(kù)設(shè)計(jì)</p><p> 5.1.1
49、數(shù)據(jù)庫(kù)概述</p><p> 數(shù)據(jù)庫(kù)設(shè)計(jì)是整個(gè)系統(tǒng)設(shè)計(jì)的核心,數(shù)據(jù)庫(kù)的好壞直接影響到整個(gè)系統(tǒng)的效率,所以對(duì)于整個(gè)數(shù)據(jù)庫(kù)的開(kāi)發(fā)是十分重要的,在開(kāi)發(fā)中有著舉足輕重的作用,所有的數(shù)據(jù)都將存在于數(shù)據(jù)庫(kù)中,數(shù)據(jù)庫(kù)管理的思想是:對(duì)所有的數(shù)據(jù)實(shí)行統(tǒng)一的、集中的、獨(dú)立的管理,使數(shù)據(jù)存儲(chǔ)獨(dú)立于使用的數(shù)據(jù)程序,實(shí)現(xiàn)數(shù)據(jù)共享[11]。本研究的系統(tǒng)構(gòu)建也正是對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作的。</p><p> 數(shù)據(jù)庫(kù)技術(shù)最
50、初產(chǎn)生于20世紀(jì)60年代中期。第一代數(shù)據(jù)庫(kù)的代表是1968年IBM公司研制的層次模型的數(shù)據(jù)庫(kù)管理系統(tǒng)IMS和1969年美國(guó)數(shù)據(jù)庫(kù)系統(tǒng)語(yǔ)言協(xié)商CODASYL下屬數(shù)據(jù)庫(kù)任務(wù)組DBTG提議的網(wǎng)狀模型。層次數(shù)據(jù)庫(kù)的數(shù)據(jù)模型是有根的定向有序樹(shù),網(wǎng)狀模型對(duì)應(yīng)的是有向圖。第二代數(shù)據(jù)庫(kù)的主要特征是支持關(guān)系數(shù)據(jù)模。在20世紀(jì)70年代由時(shí)任IBM研究員的E.F.Codd博士在Communications of ACM 上發(fā)表的《大型共享數(shù)據(jù)庫(kù)數(shù)據(jù)的關(guān)系模型
51、》上提出,它首次明確而清晰地為數(shù)據(jù)庫(kù)系統(tǒng)提出了一個(gè)嶄新的模型,即關(guān)系模型。“關(guān)系”是數(shù)學(xué)中的一個(gè)基本概念,由集合中的任意元素所組成的若干有序偶對(duì)表示,用以反應(yīng)客觀事物之間所存在的一定關(guān)系,如數(shù)之間的大小關(guān)系,一個(gè)組織中成員間的領(lǐng)導(dǎo)與被領(lǐng)導(dǎo)關(guān)系等等[12]。而E.F.Codd博士也被人稱(chēng)為“關(guān)系數(shù)據(jù)庫(kù)之父”,并在1981年榮獲圖靈獎(jiǎng)。關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)管理的數(shù)據(jù)是以二維表的形式進(jìn)行存儲(chǔ);表之間的數(shù)據(jù)聯(lián)系是通過(guò)一個(gè)表的鍵與另一個(gè)表的鍵的連接來(lái)實(shí)
52、現(xiàn)。關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)為其管理的數(shù)據(jù)提供并發(fā)控制、應(yīng)急恢復(fù)和可伸縮性等功能。關(guān)系數(shù)據(jù)庫(kù)最重要的特征不是其存儲(chǔ)和讀</p><p> 5.1.2 數(shù)據(jù)庫(kù)分析</p><p> 針對(duì)企業(yè)進(jìn)銷(xiāo)存管理系統(tǒng)中分析所得出的功能,分別對(duì)三個(gè)重要的環(huán)節(jié)進(jìn)、銷(xiāo)、存進(jìn)行分析,總結(jié)出如下的數(shù)據(jù)庫(kù)設(shè)計(jì)需求,進(jìn)銷(xiāo)存系統(tǒng)中的每個(gè)環(huán)節(jié)幾乎都涉及到了商品,因此商品必須要有一張表,商品是按照類(lèi)別進(jìn)行分類(lèi)的,一個(gè)商品它必須
53、屬于一個(gè)類(lèi)別,如果沒(méi)有的話那就需要建立一個(gè)類(lèi)別,并且一個(gè)類(lèi)別下還有商品就無(wú)法對(duì)該類(lèi)別進(jìn)行刪除,因此需要有一張表來(lái)存儲(chǔ)商品類(lèi)別這個(gè)信息,在商品存放的時(shí)候,商品可以存放在多個(gè)倉(cāng)庫(kù),倉(cāng)庫(kù)信息也需要存儲(chǔ)到數(shù)據(jù)庫(kù)中,在整個(gè)系統(tǒng)的運(yùn)行過(guò)程中,需要有人對(duì)整個(gè)系統(tǒng)進(jìn)行操作,必須要有一張存儲(chǔ)員工的表,不是每個(gè)員工都有權(quán)限操作整個(gè)系統(tǒng),必須控制員工的權(quán)限,權(quán)限表跟角色表的配合能很好的完成這個(gè)功能。在采購(gòu)的過(guò)程中,涉及到的屬性有一個(gè)是供應(yīng)商信息,這就需要提供
54、一個(gè)表來(lái)存儲(chǔ)供應(yīng)商的信息,并且當(dāng)有單據(jù)涉及到該供應(yīng)商的時(shí)候該供應(yīng)商無(wú)法刪除,采購(gòu)本身還要提供一張采購(gòu)訂單表來(lái)存儲(chǔ)信息,與采購(gòu)訂單對(duì)應(yīng)的還有付款單和入庫(kù)單,在銷(xiāo)售過(guò)程中,涉及到的信息有客戶信息,收款信息還有出庫(kù)信息,這些信息都需要在數(shù)據(jù)庫(kù)中能夠查詢(xún)的到,庫(kù)存管理作為進(jìn)銷(xiāo)存中極其重要的一個(gè)環(huán)節(jié),他具有的功能:庫(kù)存調(diào)撥、庫(kù)存變動(dòng)、庫(kù)存盤(pán)點(diǎn),因此與之</p><p> 經(jīng)上述數(shù)據(jù)庫(kù)的分析,并且考慮到將來(lái)功能的擴(kuò)展,可以
55、得出如下的數(shù)據(jù)庫(kù)設(shè)計(jì)方案,用戶表、角色表、員工表、商品類(lèi)別表、客戶表、商品表、倉(cāng)庫(kù)信息表、權(quán)限表、采購(gòu)訂單表、采購(gòu)訂單明細(xì)表、入庫(kù)單、入庫(kù)單明細(xì)、銷(xiāo)售訂單、銷(xiāo)售訂單明細(xì)、出庫(kù)訂單、出庫(kù)訂單明細(xì),庫(kù)存盤(pán)點(diǎn)單、庫(kù)存調(diào)撥單、庫(kù)存變動(dòng)單、庫(kù)存表。</p><p> 根據(jù)以上的關(guān)系,得出了整個(gè)系統(tǒng)的總體ER圖(圖5.1):</p><p> 圖 5.1 數(shù)據(jù)庫(kù)ER圖</p><
56、;p> 5.1.3 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)</p><p> 根據(jù)對(duì)企業(yè)基本業(yè)務(wù)的分析,一個(gè)商品流通企業(yè)進(jìn)銷(xiāo)存管理系統(tǒng)可包括許多個(gè)數(shù)據(jù)表、數(shù)據(jù)視圖、存儲(chǔ)過(guò)程以及函數(shù)等,但有一些最基本的數(shù)據(jù)表,這里列出了系統(tǒng)設(shè)計(jì)中用到的最常用到的,最基本的數(shù)據(jù)表包括:商品信息表、商品類(lèi)別表、供應(yīng)商信息表、客戶信息表、采購(gòu)訂單表、采購(gòu)訂單明細(xì)表、銷(xiāo)售訂單表、銷(xiāo)售訂單明細(xì)表、庫(kù)存信息表、入庫(kù)單表、出庫(kù)單表、員工信息表、庫(kù)存盤(pán)點(diǎn)
57、表等。</p><p> 5.1.4 存儲(chǔ)過(guò)程以及觸發(fā)器</p><p> 存儲(chǔ)過(guò)程和觸發(fā)器在整個(gè)數(shù)據(jù)庫(kù)中有著及其重要的功能,存儲(chǔ)過(guò)程是微軟SQL Server數(shù)據(jù)庫(kù)中的重要技術(shù)。合理地使用存儲(chǔ)過(guò)程,可以有效地提高程序的性能。并且,將商業(yè)邏輯封裝在數(shù)據(jù)庫(kù)系統(tǒng)的存儲(chǔ)過(guò)程中,可以大大提高整個(gè)軟件系統(tǒng)的可維護(hù)【14】。</p><p> 觸發(fā)器是一種特殊的存儲(chǔ)過(guò)程
58、,它類(lèi)似于數(shù)據(jù)表中參照完整性約束,主要功能是監(jiān)視用戶對(duì)數(shù)據(jù)的修改、更新和刪除。如果對(duì)一個(gè)數(shù)據(jù)表創(chuàng)建了觸發(fā)器.則當(dāng)用戶欲對(duì)數(shù)據(jù)表進(jìn)行INSERT、UPDATE和DELETE操作時(shí),數(shù)據(jù)庫(kù)系統(tǒng)會(huì)使觸發(fā)器自動(dòng)觸發(fā)執(zhí)行,以便采取適當(dāng)?shù)拇胧?,?duì)相關(guān)數(shù)據(jù)表進(jìn)行級(jí)聯(lián)更新,從而保證數(shù)據(jù)的完整性。【13】</p><p> 在本次的系統(tǒng)開(kāi)發(fā)中,使用了存儲(chǔ)過(guò)程來(lái)完成了系統(tǒng)的登陸功能,并且使用大量的觸發(fā)器來(lái)保證數(shù)據(jù)庫(kù)中數(shù)據(jù)的一致性及
59、完整性;以下是一些比較重要的存儲(chǔ)過(guò)程以及觸發(fā)器。</p><p> 該存儲(chǔ)過(guò)程的功能是將程序中傳入的帳號(hào)和密碼跟數(shù)據(jù)庫(kù)中的進(jìn)行比對(duì),當(dāng)成功匹配的時(shí)候,將100返回給程序,從而可以進(jìn)入主界面進(jìn)行操作,反之則返回-100。</p><p> create procedure [dbo].[proc_Login]</p><p><b> (</b&
60、gt;</p><p> @UserName varchar (20),</p><p> @UserPwd varchar (20)</p><p><b> )</b></p><p><b> as</b></p><p> if exists(select
61、* from tb_User where UserName=@UserName and UserPwd=@UserPwd)</p><p> return 100</p><p><b> else</b></p><p> return -100</p><p> 以下是一個(gè)在本研究中十分重要的一個(gè)觸發(fā)器,通
62、過(guò)該觸發(fā)器可以實(shí)現(xiàn)當(dāng)商品入庫(kù)之后,級(jí)聯(lián)修改庫(kù)存里面的數(shù)量,并且判斷當(dāng)前庫(kù)存是否處于正常水平,若未處于正常水平則彈出提示,并且在入庫(kù)后判斷該單據(jù)是否已完成,若已完成,將單據(jù)狀態(tài)修改為已完成。</p><p> Create TRIGGER [Trigger_Inventory_In]</p><p> ON [dbo].[tb_InStockOrder]</p><p
63、> After INSERT</p><p><b> AS</b></p><p> declare @InStockNo varchar(20),@NewNo varchar(20),@TotalCount int,@x int,@Upper int</p><p> --從Inserted表中取得主鍵的自動(dòng)編號(hào)</p&
64、gt;<p> select @InStockNo=InStockNo from Inserted</p><p> select @Upper=(select UpperCount from tb_Inventory,inserted where tb_Inventory.GoodNo=inserted.GoodNo and tb_Inventory.Stock=inserted.Stock)
65、</p><p> select @x=(select count(*) from tb_Inventory,inserted where tb_Inventory.GoodNo=inserted.GoodNo and tb_Inventory.Stock=inserted.Stock)</p><p> select @NewNo=(select 'RK'+conve
66、rt(varchar,getdate(),112)+right(100001+isnull(max(cast(right(InStockNo,5) as int)),0),5) from tb_InStockOrder) </p><p> update tb_InStockOrder set InStockNo=@NewNo where InStockNo = @InStockNo</p>&
67、lt;p><b> if(@x>0)</b></p><p> begin </p><p> select @TotalCount=TotalCount+InStockCount from inserted,tb_Inventory where inserted.GoodNo=tb_Inventory.GoodNo and insert
68、ed.Stock=tb_Inventory.Stock</p><p> update tb_Inventory set tb_Inventory.GoodPrice =inserted.GoodPrice,TotalCount=@TotalCount,TotalMoney=inserted.GoodPrice*@TotalCount from tb_Inventory,inserted where tb_In
69、ventory.GoodNo=inserted.GoodNo and tb_Inventory.Stock=inserted.Stock</p><p> update tb_ProcureDetail set tb_ProcureDetail.CompleteCount=tb_ProcureDetail.CompleteCount+inserted.InStockCount from tb_ProcureDe
70、tail,inserted where tb_ProcureDetail.DetailNo=inserted.DetailNo</p><p> if((select count(*) from tb_ProcureDetail where CompleteCount=GoodCount and tb_ProcureDetail.ProcureNo=(select ProcureNo from tb_Procu
71、reDetail,inserted where tb_ProcureDetail.DetailNo=inserted.DetailNo))=(select count(*) from tb_ProcureDetail where tb_ProcureDetail.ProcureNo=(select ProcureNo from tb_ProcureDetail,inserted where tb_ProcureDetail.Detail
72、No=inserted.DetailNo)))</p><p><b> begin</b></p><p> update tb_Procure set ProcureState='已完成' where ProcureNo=(select ProcureNo from tb_ProcureDetail,inserted where tb_Proc
73、ureDetail.DetailNo=inserted.DetailNo)</p><p><b> end</b></p><p><b> end </b></p><p><b> if(@x<=0)</b></p><p><b> begin
74、</b></p><p> insert into tb_Inventory(GoodNo,GoodName,GoodClass,Stock,GoodPrice,TotalCount,TotalMoney,UpperCount,LowCount) select tb_Good.GoodNo,GoodName,c.GoodClass,Stock,GoodPrice,InStockCount,InSto
75、ckMoney,UpperLimit,LowerLimit from inserted I,tb_Good,tb_GoodClass as c where I.GoodNo=tb_Good.GoodNo and c.GoodClass=(select GoodClass from tb_Good,inserted where tb_Good.GoodNo=inserted.GoodNo)</p><p> up
76、date tb_ProcureDetail set tb_ProcureDetail.CompleteCount=tb_ProcureDetail.CompleteCount+inserted.InStockCount from tb_ProcureDetail,inserted where tb_ProcureDetail.DetailNo=inserted.DetailNo</p><p> if((sel
77、ect count(*) from tb_ProcureDetail where CompleteCount=GoodCount and tb_ProcureDetail.ProcureNo=(select ProcureNo from tb_ProcureDetail,inserted where tb_ProcureDetail.DetailNo=inserted.DetailNo))=(select count(*) from t
78、b_ProcureDetail where tb_ProcureDetail.ProcureNo=(select ProcureNo from tb_ProcureDetail,inserted where tb_ProcureDetail.DetailNo=inserted.DetailNo)))</p><p><b> begin</b></p><p>
79、update tb_Procure set ProcureState='已完成' where ProcureNo=(select ProcureNo from tb_ProcureDetail,inserted where tb_ProcureDetail.DetailNo=inserted.DetailNo)</p><p><b> end</b></p>
80、<p> end </p><p> if(@TotalCount>@Upper)</p><p><b> begin</b></p><p> print('庫(kù)存數(shù)量大于庫(kù)存上限,請(qǐng)及時(shí)出貨!')</p><p><b> end</b>
81、</p><p> 5.2 系統(tǒng)詳細(xì)設(shè)計(jì)</p><p> 5.2.1 數(shù)據(jù)庫(kù)連接</p><p> 一個(gè)信息管理系統(tǒng)能成功的運(yùn)行需要的就是對(duì)數(shù)據(jù)庫(kù)的控制,因此,如何連接數(shù)據(jù)庫(kù)以及對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)就成了整個(gè)系統(tǒng)設(shè)計(jì)的一個(gè)關(guān)鍵,所有的數(shù)據(jù)都要通過(guò)連接數(shù)據(jù)庫(kù)才能存入到數(shù)據(jù)庫(kù)中,但是在整個(gè)系統(tǒng)中需要連接數(shù)據(jù)庫(kù)的操作非常之多,一個(gè)個(gè)寫(xiě)是非常繁瑣的,在本系統(tǒng)中,所采用
82、的思想是采用類(lèi)來(lái)訪問(wèn)數(shù)據(jù)庫(kù),類(lèi)名為SqlClass,是連接數(shù)據(jù)庫(kù)的類(lèi),里面還有對(duì)數(shù)據(jù)的一些基本的操作,例如查詢(xún)數(shù)據(jù),打開(kāi)和關(guān)閉數(shù)據(jù)庫(kù)的連接操作。在本系統(tǒng)中對(duì)數(shù)據(jù)庫(kù)的操作主要是使用DataTable和DataSet來(lái)完成,將數(shù)據(jù)存放到DataTable或者DataSet中,在最后完成的時(shí)候一起存放到數(shù)據(jù)庫(kù)中,由于可以支持離線操作,因此在效率上是比較高的,但是相應(yīng)的需要一定的內(nèi)存作為代價(jià)。</p><p><b
83、> 主要代碼如下所示:</b></p><p> public void inorde(string sqlstr)</p><p><b> {</b></p><p> opensql(); 打開(kāi)數(shù)據(jù)庫(kù)連接</p><p> SqlCommand sqlcom = new SqlComma
84、nd(sqlstr, conn);</p><p> sqlcom.ExecuteNonQuery();</p><p> sqlcom.Dispose();釋放資源</p><p> sqlclose();關(guān)閉連接</p><p> }主要功能是對(duì)數(shù)據(jù)進(jìn)行更新操作</p><p> public DataS
85、et search(string sqlstr)</p><p><b> {</b></p><p> opensql();</p><p> SqlDataAdapter sqlsearch = new SqlDataAdapter(sqlstr, conn);</p><p> DataSet ds = n
86、ew DataSet();</p><p> sqlsearch.Fill(ds);</p><p> sqlclose();</p><p> return ds;</p><p> }主要功能是將數(shù)據(jù)庫(kù)中的數(shù)據(jù)查詢(xún)出來(lái)</p><p> 5.2.2 系統(tǒng)登陸設(shè)計(jì)</p><p>
87、 當(dāng)系統(tǒng)第一次登陸的時(shí)候,必須配置服務(wù)器,配置界面主要有以下內(nèi)容需填寫(xiě),IP地址是服務(wù)器所在地址,數(shù)據(jù)庫(kù)是服務(wù)器的數(shù)據(jù)庫(kù)名,用戶名和密碼是操作員對(duì)數(shù)據(jù)庫(kù)的權(quán)限賬號(hào)。當(dāng)配置完服務(wù)器后就可以進(jìn)行登陸操作了,下次登陸的時(shí)候只需選使用上次的配置即可(配置信息儲(chǔ)存在注冊(cè)表中)</p><p> 系統(tǒng)登陸主要用于對(duì)進(jìn)銷(xiāo)存系統(tǒng)的用戶安全性進(jìn)行檢查,沒(méi)有正確的賬號(hào)和密碼是無(wú)法進(jìn)入系統(tǒng)的,并且在登錄過(guò)程中會(huì)自動(dòng)驗(yàn)證該用戶的權(quán)限
88、,從而判斷該用戶是否可以進(jìn)行相應(yīng)的操作,而用戶的權(quán)限只有超級(jí)管理員才可以進(jìn)行分配。</p><p> 判斷用戶權(quán)限的操作主要是通過(guò)查詢(xún)賬號(hào)和密碼是否符合數(shù)據(jù)庫(kù)里面的值,如果值存在,則賬號(hào)和密碼正確,允許登錄,否則提示賬號(hào)和密碼錯(cuò)誤。</p><p> 5.2.3 數(shù)據(jù)統(tǒng)計(jì)及打印</p><p> 對(duì)于一個(gè)進(jìn)銷(xiāo)存的系統(tǒng)來(lái)說(shuō),數(shù)據(jù)統(tǒng)計(jì)及報(bào)表打印的功能是必不可少的
89、,本系統(tǒng)的設(shè)計(jì)思路是單據(jù)的打印通過(guò)打印控件進(jìn)行控制,是使用畫(huà)筆工具通過(guò)程序?qū)崿F(xiàn)單據(jù)格式以及內(nèi)容的顯示。對(duì)于報(bào)表來(lái)說(shuō)是使用了Visual Studio 2008的水晶報(bào)表功能來(lái)完成,將需要的數(shù)據(jù)以SQL語(yǔ)句的形式傳給數(shù)據(jù)庫(kù),并且得到返回的數(shù)據(jù),通過(guò)水晶報(bào)表可以將返回的數(shù)據(jù)顯示到水晶報(bào)表中,并且可以將數(shù)據(jù)以圖表的形式表現(xiàn)出來(lái),除此之外,水晶報(bào)表自帶打印功能可以將匯總的數(shù)據(jù)以及圖表等打印出來(lái)。</p><p> 5.
90、2.4 系統(tǒng)的安全性措施</p><p> 對(duì)于一個(gè)信息系統(tǒng)來(lái)說(shuō)安全性無(wú)疑是一個(gè)十分重要的部分,在本系統(tǒng)中總共在三個(gè)方面對(duì)安全性進(jìn)行了設(shè)計(jì)。</p><p> ?。?)權(quán)限管理:如果無(wú)相應(yīng)的權(quán)限,則無(wú)法進(jìn)行相應(yīng)的操作,具體的實(shí)施已經(jīng)在登陸設(shè)計(jì)中給出。</p><p> ?。?)信息記錄:在數(shù)據(jù)庫(kù)中建立一個(gè)系統(tǒng)日志表,用于查看操作員的登陸情況,可以知道什么時(shí)候誰(shuí)登
91、陸過(guò)系統(tǒng),什么時(shí)候退出系統(tǒng),可以做到有據(jù)可查。</p><p> (3)數(shù)據(jù)庫(kù)備份及還原:本系統(tǒng)提供客戶端的數(shù)據(jù)備份及還原功能,通過(guò)該功能可以將數(shù)據(jù)從數(shù)據(jù)中備份到客戶端中,并且當(dāng)數(shù)據(jù)發(fā)生意外的情況下,可進(jìn)行災(zāi)難恢復(fù),最大限度地避免損失。</p><p> 5.2.5 系統(tǒng)測(cè)試運(yùn)行</p><p> 本系統(tǒng)的測(cè)試分別選擇了白盒測(cè)試法和黑盒測(cè)試法,分別從系統(tǒng)的內(nèi)
92、部邏輯方面和外部功能出發(fā)做單元測(cè)試、組裝測(cè)試以及確認(rèn)測(cè)試。主要涉及到以下幾個(gè)方面的測(cè)試:</p><p> ?。?)系統(tǒng)管理員的賬號(hào)和密碼的正確性和一致性進(jìn)行檢查,檢驗(yàn)系統(tǒng)安全性。確保用戶沒(méi)有權(quán)限的話無(wú)法進(jìn)行相關(guān)的操作。</p><p> ?。?)對(duì)信息填寫(xiě)的正確性以及合法性的檢查,例如:在一些文本框中只能填入數(shù)字而無(wú)法填入字符,每個(gè)文本框最大可以填寫(xiě)的字符數(shù)等等,通過(guò)這些措施保證數(shù)據(jù)輸入
93、的正確性。</p><p> ?。?)系統(tǒng)在輸出的時(shí)候,檢查輸出的內(nèi)容是不是用戶所需要的。</p><p> ?。?)數(shù)據(jù)庫(kù)的完整性,建立數(shù)據(jù)庫(kù)的時(shí)候設(shè)定相關(guān)的主鍵,并且采用觸發(fā)器的機(jī)制來(lái)確保信息的一致性。</p><p><b> 6 系統(tǒng)實(shí)現(xiàn)</b></p><p> 6.1 系統(tǒng)登陸實(shí)現(xiàn)</p>
94、<p> 在進(jìn)入系統(tǒng)前需要進(jìn)入登陸界面,通過(guò)登陸界面限定用戶登陸和判斷權(quán)限。</p><p><b> 圖6.1登陸界面</b></p><p> 當(dāng)?shù)谝淮蔚顷懙臅r(shí)候,如果不是在服務(wù)器上運(yùn)行,需要配置服務(wù)器,服務(wù)器配置界面如下所示:</p><p> 圖6.2服務(wù)器配置界面</p><p><
95、b> 流程圖:</b></p><p> 圖6.3 系統(tǒng)登錄流程圖</p><p><b> 部分代碼設(shè)計(jì)如下:</b></p><p> private void btnlogin_Click(object sender, EventArgs e)</p><p><b> {&l
96、t;/b></p><p> if (txtuserid.Text == "" && txtuserpwd.Text == "")</p><p><b> {</b></p><p> MessageBox.Show("請(qǐng)輸入登陸信息!");</p&
97、gt;<p> txtuserid.Focus();</p><p><b> return;</b></p><p><b> }</b></p><p> Class.sqlOperate UserLogin = new Class.sqlOperate();</p><p&g
98、t; int P_int_returnValue = UserLogin.UserLogin(txtuserid.Text.Trim(), txtuserpwd.Text.Trim());</p><p> if (P_int_returnValue == 100)</p><p><b> {</b></p><p> SqlClas
99、s.login_name = txtuserid.Text;</p><p> this.Close();</p><p><b> }</b></p><p> if (P_int_returnValue == -100)</p><p><b> {</b></p><
100、;p> MessageBox.Show("用戶名或密碼錯(cuò)誤!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);</p><p> txtuserpwd.Text = "";</p><p> txtuserpwd.Focus();</p>
101、<p><b> } </b></p><p><b> }</b></p><p> 6.2 主界面實(shí)現(xiàn)</p><p><b> 圖6.4信息主界面</b></p><p> 當(dāng)?shù)卿浀较到y(tǒng)主界面的時(shí)候會(huì)根據(jù)用戶名對(duì)系統(tǒng)的用戶權(quán)限進(jìn)行判斷,并且將登陸時(shí)
102、間,登陸人員顯示在系統(tǒng)下方的狀態(tài)欄中。</p><p> 6.3 部分基礎(chǔ)數(shù)據(jù)管理</p><p> 圖6.5商品基本信息操作界面</p><p> 該界面是商品信息管理以及新增記錄的對(duì)話框,通過(guò)本窗口可以對(duì)基本的商品信息進(jìn)行添加、修改、刪除操作,除此之外可以將數(shù)據(jù)導(dǎo)出至Excel,方便數(shù)據(jù)管理,通過(guò)右側(cè)的ListBox還可以對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單的查詢(xún)。其它基礎(chǔ)數(shù)
103、據(jù)界面基本類(lèi)似于上述界面。</p><p> 圖6.6商品基本信息流程圖</p><p> 部分代碼:private void DataSave()</p><p><b> {</b></p><p> if (AlterValue[7] == "0")</p><p&g
104、t;<b> {</b></p><p><b> try</b></p><p><b> {</b></p><p> if (txtGoodNo.Text.Trim() == "" || txtGoodName.Text.Trim() == ""
105、|| txtGoodUnit.Text.Trim() == "" || txtGoodClass.Text.Trim() == "")</p><p><b> {</b></p><p> MessageBox.Show("請(qǐng)檢查,數(shù)據(jù)輸入有問(wèn)題!");</p><p><
106、b> return;</b></p><p><b> }</b></p><p> Class.SqlClass sql = new 進(jìn)銷(xiāo)存管理系統(tǒng)V3._1.Class.SqlClass();</p><p> string str = "insert into tb_Good values('&
107、quot; + txtGoodNo.Text.Trim() + "'" + ",'" + txtGoodName.Text.Trim() + "'" + ",'" + txtGoodClass.Text.Trim() + "'" + ",'" + txtGoodPinYi
108、n.Text.Trim() + "'" + ",'" + txtGoodUnit.Text.Trim() + "'" + ",'" + txtGoodLocation.Text.Trim() + "'" + ",'" + txtGoodModel.Text.Trim()
109、+ "')";</p><p> sql.inorde(str);</p><p><b> }</b></p><p> catch (Exception ex)</p><p><b> {</b></p><p> MessageB
110、ox.Show(ex.Message);</p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><
111、b> try</b></p><p><b> {</b></p><p> if (txtGoodNo.Text.Trim() == "" || txtGoodName.Text.Trim() == "" || txtGoodUnit.Text.Trim() == "" || txt
112、GoodClass.Text.Trim() == "")</p><p><b> {</b></p><p> MessageBox.Show("請(qǐng)檢查,數(shù)據(jù)輸入有問(wèn)題!");</p><p><b> return;</b></p><p><
113、b> }</b></p><p> Class.SqlClass sql = new 進(jìn)銷(xiāo)存管理系統(tǒng)V3._1.Class.SqlClass();</p><p> string str = "update tb_Good set GoodName='" + txtGoodName.Text.Trim() + "',Go
114、odClass='" + txtGoodClass.Text + "',GoodPinYin='" + txtGoodPinYin.Text.Trim() + "',GoodUnit='" + txtGoodUnit.Text.Trim() + "',GoodLocation='" + txtGoodLocati
115、on.Text.Trim() + "',GoodModel='" + txtGoodModel.Text.Trim() + "' where GoodNo='"+txtGoodNo.Text.Trim()+"'";</p><p> sql.inorde(str);</p><p><
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于c#進(jìn)銷(xiāo)存管理系統(tǒng)[文獻(xiàn)綜述]
- 基于c#進(jìn)銷(xiāo)存管理系統(tǒng)[任務(wù)書(shū)]
- 基于c#進(jìn)銷(xiāo)存管理系統(tǒng)[畢業(yè)論文]0
- 進(jìn)銷(xiāo)存管理系統(tǒng)畢業(yè)論文
- 進(jìn)銷(xiāo)存管理系統(tǒng)畢業(yè)論文
- 進(jìn)銷(xiāo)存管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文-進(jìn)銷(xiāo)存管理系統(tǒng)
- 畢業(yè)論文-- 商品進(jìn)銷(xiāo)存管理系統(tǒng)
- 倉(cāng)庫(kù)進(jìn)銷(xiāo)存管理系統(tǒng)畢業(yè)論文
- 超市進(jìn)銷(xiāo)存管理系統(tǒng)畢業(yè)論文
- 進(jìn)銷(xiāo)存管理系統(tǒng)畢業(yè)論文 (2)
- 畢業(yè)論文商品進(jìn)銷(xiāo)存管理系統(tǒng)
- 超市進(jìn)銷(xiāo)存管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文——企業(yè)進(jìn)銷(xiāo)存管理系統(tǒng)
- 畢業(yè)論文——企業(yè)進(jìn)銷(xiāo)存管理系統(tǒng)
- 畢業(yè)論文——企業(yè)進(jìn)銷(xiāo)存管理系統(tǒng)
- 畢業(yè)論文——企業(yè)進(jìn)銷(xiāo)存管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文——企業(yè)進(jìn)銷(xiāo)存管理系統(tǒng)畢業(yè)論文
- 企業(yè)進(jìn)銷(xiāo)存管理系統(tǒng)畢業(yè)論文(設(shè)計(jì))
- 畢業(yè)論文——進(jìn)銷(xiāo)存管理系統(tǒng)介紹 (2)
評(píng)論
0/150
提交評(píng)論