版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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)銷存管理系統(tǒng)</p><p> 所在學(xué)院 </p><p> 專業(yè)班級(jí) 信息管理與信息系統(tǒng) &l
2、t;/p><p> 學(xué)生姓名 學(xué)號(hào) </p><p> 指導(dǎo)教師 職稱 </p><p> 完成日期 年 月 日</p><p> 基于C#與IDEF0的進(jìn)銷存管理系統(tǒng)研究</p><p&g
3、t; 摘要:隨著經(jīng)濟(jì)的高速發(fā)展,企業(yè)的信息化工作也在如火如荼地進(jìn)行,由于企業(yè)規(guī)模的不斷擴(kuò)大以及商務(wù)往來的日益增多,企業(yè)對(duì)進(jìn)銷存信息的掌握和使用也越來越多,以前原始的手工操作方式不能適應(yīng)企業(yè)快速發(fā)展的需要,由此,提出了本研究課題。在研究中,在IDEF0建?;A(chǔ)上,結(jié)合進(jìn)銷存業(yè)務(wù)流程,以軟件工程的思想作為指導(dǎo),對(duì)系統(tǒng)的實(shí)現(xiàn)進(jìn)行了研究,最后開發(fā)出一個(gè)進(jìn)銷存管理系統(tǒng)。此系統(tǒng)經(jīng)初步檢驗(yàn),可以迅速提高企業(yè)的業(yè)務(wù)效率,節(jié)省人力資源,提高管理水平,從
4、而降低企業(yè)的管理成本。</p><p> 關(guān)鍵詞:進(jìn)銷存,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 問題的提出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#語言概述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ù)庫設(shè)計(jì)10</p><p> 5.1.1 數(shù)據(jù)庫概述10</p><p> 5.1.2 數(shù)據(jù)庫分析11</p><p> 5.1.3 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)13</p><p> 5.1.4 存儲(chǔ)過程以及觸發(fā)器18</p><p> 5.2 系
11、統(tǒng)詳細(xì)設(shè)計(jì)20</p><p> 5.2.1 數(shù)據(jù)庫連接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 商品入庫、出庫管理30</p><
13、;p> 6.6 財(cái)務(wù)管理實(shí)現(xiàn)32</p><p><b> 7 總結(jié)34</b></p><p> 致謝錯(cuò)誤!未定義書簽。</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ù)往來的日益增多,中小企業(yè)的一些弊端就暴露了出來,其中最大的就是由于業(yè)務(wù)量的增大,對(duì)進(jìn)銷存信息的掌握要求越來越高,以前原始的手工操作方式已經(jīng)不能適應(yīng)企業(yè)快速發(fā)展的需要,因此進(jìn)行有效的進(jìn)銷存管理已經(jīng)成為中小企業(yè)生存的一個(gè)要事。</p><p> 1.1 問題的提出</p><p> 就目前來說大量的中
16、小型企業(yè)存在這樣的問題:由于進(jìn)銷存方面管理的不完善,一些相關(guān)的管理人員都無法得到企業(yè)全面的進(jìn)銷存信息,例如相關(guān)的報(bào)表,這就導(dǎo)致了整個(gè)企業(yè)管理人員中的信息無法保持一致。并且由于高速發(fā)展帶來的市場(chǎng)競(jìng)爭(zhēng)日趨激烈,產(chǎn)品的日趨同質(zhì)以及電子商務(wù)的快速發(fā)展帶來了貿(mào)易方式的變革以及經(jīng)濟(jì)活動(dòng)的革命,這些雖然給中小企業(yè)帶來了與大公司競(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)心銷
17、售的擴(kuò)大,更加開始關(guān)心進(jìn)、銷、存的各個(gè)環(huán)節(jié)。企業(yè)開始從成本控制方面加強(qiáng)企業(yè)的競(jìng)爭(zhēng)力,這些無疑會(huì)使中小企業(yè)在競(jìng)爭(zhēng)中處于及其不利的地位,使中小企業(yè)在日趨激烈的競(jìng)爭(zhēng)中無法占有一席之地。</p><p><b> 1.2 研究意義</b></p><p> 進(jìn)銷存系統(tǒng)通過對(duì)企業(yè)擁有的人力、物力、財(cái)力、設(shè)備、技術(shù)等資源的調(diào)查了解,建立正確的數(shù)據(jù),加工處理并編制成各種信息資
18、料及時(shí)提供給管理人員,極大提高了工作人員的工作效率,并且大大減少了以往采購(gòu)、入庫、銷售、出庫流程繁瑣,雜亂,周期長(zhǎng)的弊端。利用進(jìn)銷存軟件對(duì)企業(yè)進(jìn)行管理,及時(shí)全面的共享關(guān)鍵信息,可以很好的降低消耗,提高了供應(yīng)鏈的管理水平[2],并且進(jìn)銷存系統(tǒng)通過各種數(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)的各類貨物進(jìn)行分類管理,并提供最低庫存量、最高庫存量、安全庫存量的預(yù)警功能。</p><p> 可以存儲(chǔ)各種基本信息檔案包括客戶檔案、產(chǎn)品基本信息、供貨單位信息、倉庫信息、員工信息等。</p><p> 可以方便快捷的進(jìn)行商品的采購(gòu)、銷售管理。</p><p> 還必須要有退貨管理。</p>
20、<p> 可以通過查詢功能及報(bào)表分析功能對(duì)企業(yè)的基本商品采購(gòu)及銷售信息有所了解為企業(yè)的決策提供依據(jù)。</p><p> 支持庫存的盤點(diǎn)功能。</p><p><b> 2 系統(tǒng)分析</b></p><p> 2.1 系統(tǒng)需求分析</p><p> 經(jīng)過對(duì)系統(tǒng)的業(yè)務(wù)流程、系統(tǒng)流程的調(diào)查以及對(duì)所需提
21、供的服務(wù),一個(gè)成功的進(jìn)銷存信息系統(tǒng)應(yīng)該具備如下的條件: </p><p> 此信息系統(tǒng)要具有方便的數(shù)據(jù)查詢功能,查詢數(shù)據(jù)的速度的效率要高,這就要求在建立數(shù)據(jù)庫的時(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)能通過圖表分析商品銷售狀況,圖表分析具有直觀,表達(dá)清楚的特點(diǎn),通過圖表可以為公司決策者的決策提供可靠的依據(jù);</p><p> 此系統(tǒng)可以對(duì)數(shù)據(jù)庫進(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ù)庫采用目前較流行的SQL Sever,該數(shù)據(jù)庫在安全性、準(zhǔn)確性、運(yùn)行速度上有著較好的表現(xiàn),并且可以處理大量的數(shù)據(jù);前臺(tái)則采用的是Visual Studio 20
24、08作為主要的開發(fā)工具,.NET Framework3.5框架作為微軟公司已經(jīng)比較成熟的產(chǎn)品,現(xiàn)在有越來越多的企業(yè)及技術(shù)人員選擇它來作為開發(fā)平臺(tái)使訪問數(shù)據(jù)庫的操作更為簡(jiǎn)單易用。因此,在技術(shù)上是完全可以勝任這個(gè)平臺(tái)的開發(fā)。</p><p> 3 相關(guān)技術(shù)介紹及分析</p><p> 3.1 SQL Server概述 </p><p> SQL Server
25、2005 是一個(gè)非常全面的數(shù)據(jù)庫平臺(tái),使用集成的商業(yè)智能 (BI) 工具提供了企業(yè)級(jí)的數(shù)據(jù)管理。SQL Server 2005 數(shù)據(jù)庫引擎為關(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ù)庫。SQL Server2005的性價(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ùn)行時(shí))集成。本系統(tǒng)的開發(fā)平臺(tái)是Visual Studio 2008,它與此數(shù)據(jù)庫同是微軟的產(chǎn)品,其核心已由.NET Framework 3.5改寫,可以達(dá)到數(shù)據(jù)庫與開發(fā)平臺(tái)的無縫連接。</p><p>
27、; ?。?)安全性:SQL Server 2005 的安全達(dá)到了很強(qiáng)大水平,有著很更清晰的安全模型、安全對(duì)象和權(quán)限。 </p><p> ?。?)異步處理能力:Service Broker提供了一個(gè)功能強(qiáng)大的異步編程模型。Broker的最大好處一是異步執(zhí)行能力,提高了可伸縮性,二是可靠執(zhí)行,三是集成于數(shù)據(jù)庫中,備份數(shù)據(jù)庫就備份了broker 的消息隊(duì)列。 </p><p> ?。?)支持通
28、過HTTP SOAP協(xié)議直接訪問數(shù)據(jù)庫,增加XML數(shù)據(jù)類型,支持Xquery,使用新的SQL Server Management Studio 等等。</p><p> 3.2 .Net平臺(tái)介紹</p><p> .NET(全稱Dot NET)是由Microsoft公司經(jīng)過長(zhǎng)時(shí)間的研發(fā)所推出的開發(fā)平臺(tái),它吸取了以前開發(fā)平臺(tái)的經(jīng)驗(yàn)和教訓(xùn),定義了開發(fā)和運(yùn)行企業(yè)級(jí)客戶端應(yīng)用的一個(gè)標(biāo)準(zhǔn),一個(gè)
29、體系結(jié)構(gòu),它以開發(fā)的可靠性、可擴(kuò)展性、可管理性和安全性很快被Web和Windows Form的開發(fā)者所喜愛。.NET的體系結(jié)構(gòu)[3]如下:</p><p> 圖3.1 .Net平臺(tái)體系結(jié)構(gòu)</p><p> .Net平臺(tái)在開發(fā)上還有以下的優(yōu)勢(shì)【4】:</p><p> ?。?)優(yōu)秀的設(shè)計(jì)。只有一個(gè)基類庫,并以一種非常直觀的方式設(shè)計(jì)出來。</p>&
30、lt;p> ?。?)語言無關(guān)性。在.NET中,VB.NET、C#、J#和Managed C++等語言都可以編譯為通用的中間語言(Intermediate Language),這說明,語言可以用以前沒有的方式交互操作。</p><p> ?。?)高效的數(shù)據(jù)訪問。一組.NET組件,總稱為ADO.NET,提供了對(duì)關(guān)系數(shù)據(jù)庫和各種數(shù)據(jù)源的高效訪問,這些組件也可以訪問文件系統(tǒng)和目錄。.NET內(nèi)置了XML支持,可以處
31、理從非Windows平臺(tái)導(dǎo)入或?qū)С龅臄?shù)據(jù)。</p><p> ?。?)增強(qiáng)的安全性。每個(gè)程序集還可以包含內(nèi)置的安全信息,這些信息可以準(zhǔn)確的指出誰或哪種類型的用戶或進(jìn)程可以調(diào)用什么類的哪些方法,這樣就可以非常準(zhǔn)確的控制程序集的使用方式。</p><p> 3.3 C#語言概述</p><p> C#是一種面向?qū)ο缶幊痰恼Z言,主要用于在開發(fā)可以在.Net平臺(tái)上運(yùn)行
32、的應(yīng)用程序。C#語言體系都構(gòu)建在.Net框架上,它是從C和C++派生出來的一種簡(jiǎn)單、現(xiàn)代、面向?qū)ο蠛皖愋桶踩木幊陶Z言,并且能夠與.Net框架完美結(jié)合,除此之外,C#還具有以下特點(diǎn) [5]: </p><p> ?。?)語法簡(jiǎn)潔。不允許直接操作內(nèi)存,去掉了指針操作。</p><p> ?。?)徹底的面向?qū)ο笤O(shè)計(jì)。C#具有面向?qū)ο笳Z言所應(yīng)有的一切特性——封裝、繼承和多態(tài)。</p>
33、<p> ?。?)強(qiáng)大的安全機(jī)制。可以消除軟件開發(fā)中的常見錯(cuò)誤(如語法錯(cuò)誤),.NET提供的垃圾回收器能夠幫助開發(fā)者有效地管理內(nèi)存資源。</p><p> (4)兼容性。因?yàn)镃#遵循.NET的公共語言規(guī)范(CLS),從而保證能夠與其他語言開發(fā)的組件兼容。</p><p> (5)靈活的版本處理技術(shù)。因?yàn)镃#語言本身內(nèi)置了版本控制功能,使得開發(fā)人員可以更容易地開發(fā)和維護(hù)。&
34、lt;/p><p> (6)完善的錯(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)以及待建的未來系統(tǒng),是對(duì)企業(yè)整體運(yùn)營(yíng)活動(dòng)的描述以及開發(fā)過程中各種關(guān)
35、系的分析。企業(yè)建模是實(shí)現(xiàn)信息系統(tǒng)集成和優(yōu)化的基礎(chǔ),是針對(duì)企業(yè)所需要解決的問題【6】。</p><p> 企業(yè)信息系統(tǒng)建模作為企業(yè)信息集成的決策支持工具和方法的集合, 是信息系統(tǒng)開發(fā)的關(guān)鍵。IDEF0作為IDEF中的一種已得到廣泛的應(yīng)用【7】。IDEF0的基本概念是在70年代提出的結(jié)構(gòu)化分析方法基礎(chǔ)上發(fā)展起來的。結(jié)構(gòu)化分析方法在許多應(yīng)用問題中起了很好的作用。該方法在降低開發(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ā)展而來的。</p><p> 作為一種功能建模語言,IDEF0具有以下特點(diǎn):全面及表達(dá)能力強(qiáng);是一種連貫的簡(jiǎn)單的語言;易于學(xué)習(xí)并強(qiáng)調(diào)細(xì)節(jié)的層次化;在美國(guó)空軍、其他政府開發(fā)工程以及私營(yíng)工業(yè)中的
37、應(yīng)用得到了很好的檢驗(yàn)和證明;能由多種計(jì)算機(jī)圖形工具生成[9]。</p><p> 進(jìn)銷存系統(tǒng)是一個(gè)比較復(fù)雜的過程,涉及多個(gè)方面的內(nèi)容,一般的說,一個(gè)系統(tǒng)可以被認(rèn)為是由對(duì)象物體(用數(shù)據(jù)表示)和活動(dòng)(由人、機(jī)器和軟件來執(zhí)行)以及他們之間的聯(lián)系組成。但如果是從數(shù)據(jù)或活動(dòng)來描述,那么至多只反映了一個(gè)側(cè)面,這樣的技術(shù)很難說明系統(tǒng)的全貌[10],而IDEF0卻很好的解決了這個(gè)問題,如圖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)管理,銷售管理,庫存管理,財(cái)務(wù)管理等模塊組成。采購(gòu)管理主要是根據(jù)實(shí)際需求進(jìn)行采購(gòu)活動(dòng),包括采購(gòu)單錄入,審核,明細(xì)單的錄入等功能。銷售管理主要是填寫
39、銷售單錄入,審核,銷售明細(xì)單的錄入等。庫存管理主要是對(duì)當(dāng)前的庫存狀況進(jìn)行查詢,對(duì)庫存進(jìn)行報(bào)警以及庫存盤點(diǎn)調(diào)撥等一系列的功能。財(cái)務(wù)管理是根據(jù)采購(gòu)明細(xì)單和銷售明細(xì)單形成欠款信息,根據(jù)欠款信息進(jìn)行收付款。</p><p> 圖4.1 進(jìn)銷存管理系統(tǒng)活動(dòng)圖</p><p> 圖4.2進(jìn)銷存管理系統(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)銷存系統(tǒng)中各功能模塊之間
41、的聯(lián)系,讓整個(gè)進(jìn)銷存系統(tǒng)能夠完整的運(yùn)行。</p><p> 圖4.4 進(jìn)銷存系統(tǒng)信息模型</p><p> 4.2 系統(tǒng)主要功能模塊分析</p><p> 圖4.5 系統(tǒng)總功能模塊圖</p><p> 根據(jù)需求分析以及建立的IDEF0模型,將進(jìn)銷存管理系統(tǒng)的開發(fā)具體劃分為9個(gè)模塊:基礎(chǔ)資料設(shè)置、業(yè)務(wù)管理、查詢中心、庫存管理、報(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)銷存中所涉及到的數(shù)據(jù)輸入到數(shù)據(jù)庫,在這里我們總共有6方面的基礎(chǔ)資料:客戶資料、員工資料、供應(yīng)商資料、倉庫信息資料、商品資料、商品類別資料。通過本模塊可以對(duì)數(shù)據(jù)進(jìn)行增、刪、改、查是本系統(tǒng)的一個(gè)很基本的功能模塊。</p>
43、<p> 業(yè)務(wù)管理模塊下面又可以細(xì)分為采購(gòu)模塊和銷售模塊。</p><p> 采購(gòu)管理模塊:隨著時(shí)代的發(fā)展,企業(yè)對(duì)于采購(gòu)的管理越來越重視,對(duì)于供應(yīng)商的選擇也越來越慎重,雙方從討價(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é),由員工填寫采購(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ò)誤等原因造成的問題作出采購(gòu)?fù)素浀奶幚?,在這里我們的采購(gòu)?fù)素浻射N售單進(jìn)行處理,在單據(jù)類型中選擇采購(gòu)?fù)素洝?lt;/p><p> 銷售管理模塊:自古以來,銷售在企業(yè)的經(jīng)營(yíng)活動(dòng)中占據(jù)著很重要的地位,企業(yè)只有通過銷售才能實(shí)現(xiàn)自己的價(jià)值,創(chuàng)造出可觀的理論,因此企業(yè)必須加強(qiáng)銷售管理,才能提高自己的經(jīng)濟(jì)效益。銷售管理的流程類似于采購(gòu)管理,由員工填寫銷售單之后,然后將銷售單發(fā)往倉庫,由
45、倉庫對(duì)商品進(jìn)行發(fā)貨處理,并且根據(jù)銷售訂單生成出庫單(一張笑的訂單可以對(duì)應(yīng)多張出庫單),當(dāng)出現(xiàn)退貨的情況時(shí),在采購(gòu)管理中增加一條退貨單的記錄。</p><p> 查詢中心模塊:主要功能是對(duì)歷史記錄進(jìn)行查詢。</p><p> 庫存管理模塊:企業(yè)庫存不當(dāng)?shù)脑挄?huì)增加很多不必要的費(fèi)用,當(dāng)存貨過多的時(shí)候,將導(dǎo)致庫存產(chǎn)品的積壓、存儲(chǔ)的費(fèi)用也相應(yīng)的增加,造成流動(dòng)資金周轉(zhuǎn)不利,并且過量的庫存還會(huì)導(dǎo)致管
46、理上面出現(xiàn)問題。而庫存不足的話則會(huì)造成企業(yè)正常的銷售環(huán)節(jié)無法展開給企業(yè)造成經(jīng)濟(jì)上的損失,因此良好的庫存管理是一個(gè)十分必要的事情,庫存管理的目標(biāo)就是尋求最恰當(dāng)?shù)臉?biāo)準(zhǔn),使庫存的成本減到最低。</p><p> 報(bào)表分析模塊:市場(chǎng)預(yù)測(cè)是對(duì)影響市場(chǎng)供求變化的諸因素進(jìn)行調(diào)查研究,分析和預(yù)見其發(fā)展趨勢(shì),掌握市場(chǎng)供求變化的規(guī)律,為經(jīng)營(yíng)決策提供可靠的數(shù)據(jù)。預(yù)測(cè)為決策服務(wù),是為了提高管理的科學(xué)水平,減少?zèng)Q策的盲目性,我們需要通過
47、預(yù)測(cè)來把握企業(yè)發(fā)展或者未來市場(chǎng)變化的有關(guān)動(dòng)態(tài),減少未來的不確定性,降低決策可能遇到的風(fēng)險(xiǎn),使決策目標(biāo)得以順利實(shí)現(xiàn)。而報(bào)表分析就是一種很好的市場(chǎng)預(yù)測(cè)手段,通過報(bào)表分析可以知道近段時(shí)候商品的銷售情況,采購(gòu)情況以及員工的銷售業(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ù)庫,管理權(quán)限、用戶注冊(cè)。</p><p><b> 5 系統(tǒng)設(shè)計(jì)</b></p><p> 5.1 數(shù)據(jù)庫設(shè)計(jì)</p><p> 5.1.1
49、數(shù)據(jù)庫概述</p><p> 數(shù)據(jù)庫設(shè)計(jì)是整個(gè)系統(tǒng)設(shè)計(jì)的核心,數(shù)據(jù)庫的好壞直接影響到整個(gè)系統(tǒng)的效率,所以對(duì)于整個(gè)數(shù)據(jù)庫的開發(fā)是十分重要的,在開發(fā)中有著舉足輕重的作用,所有的數(shù)據(jù)都將存在于數(shù)據(jù)庫中,數(shù)據(jù)庫管理的思想是:對(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ù)庫進(jìn)行操作的。</p><p> 數(shù)據(jù)庫技術(shù)最
50、初產(chǎn)生于20世紀(jì)60年代中期。第一代數(shù)據(jù)庫的代表是1968年IBM公司研制的層次模型的數(shù)據(jù)庫管理系統(tǒng)IMS和1969年美國(guó)數(shù)據(jù)庫系統(tǒng)語言協(xié)商CODASYL下屬數(shù)據(jù)庫任務(wù)組DBTG提議的網(wǎng)狀模型。層次數(shù)據(jù)庫的數(shù)據(jù)模型是有根的定向有序樹,網(wǎng)狀模型對(duì)應(yīng)的是有向圖。第二代數(shù)據(jù)庫的主要特征是支持關(guān)系數(shù)據(jù)模。在20世紀(jì)70年代由時(shí)任IBM研究員的E.F.Codd博士在Communications of ACM 上發(fā)表的《大型共享數(shù)據(jù)庫數(shù)據(jù)的關(guān)系模型
51、》上提出,它首次明確而清晰地為數(shù)據(jù)庫系統(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博士也被人稱為“關(guān)系數(shù)據(jù)庫之父”,并在1981年榮獲圖靈獎(jiǎng)。關(guān)系數(shù)據(jù)庫系統(tǒng)管理的數(shù)據(jù)是以二維表的形式進(jìn)行存儲(chǔ);表之間的數(shù)據(jù)聯(lián)系是通過一個(gè)表的鍵與另一個(gè)表的鍵的連接來實(shí)
52、現(xiàn)。關(guān)系數(shù)據(jù)庫系統(tǒng)為其管理的數(shù)據(jù)提供并發(fā)控制、應(yīng)急恢復(fù)和可伸縮性等功能。關(guān)系數(shù)據(jù)庫最重要的特征不是其存儲(chǔ)和讀</p><p> 5.1.2 數(shù)據(jù)庫分析</p><p> 針對(duì)企業(yè)進(jìn)銷存管理系統(tǒng)中分析所得出的功能,分別對(duì)三個(gè)重要的環(huán)節(jié)進(jìn)、銷、存進(jìn)行分析,總結(jié)出如下的數(shù)據(jù)庫設(shè)計(jì)需求,進(jìn)銷存系統(tǒng)中的每個(gè)環(huán)節(jié)幾乎都涉及到了商品,因此商品必須要有一張表,商品是按照類別進(jìn)行分類的,一個(gè)商品它必須
53、屬于一個(gè)類別,如果沒有的話那就需要建立一個(gè)類別,并且一個(gè)類別下還有商品就無法對(duì)該類別進(jìn)行刪除,因此需要有一張表來存儲(chǔ)商品類別這個(gè)信息,在商品存放的時(shí)候,商品可以存放在多個(gè)倉庫,倉庫信息也需要存儲(chǔ)到數(shù)據(jù)庫中,在整個(gè)系統(tǒng)的運(yùn)行過程中,需要有人對(duì)整個(gè)系統(tǒng)進(jìn)行操作,必須要有一張存儲(chǔ)員工的表,不是每個(gè)員工都有權(quán)限操作整個(gè)系統(tǒng),必須控制員工的權(quán)限,權(quán)限表跟角色表的配合能很好的完成這個(gè)功能。在采購(gòu)的過程中,涉及到的屬性有一個(gè)是供應(yīng)商信息,這就需要提供
54、一個(gè)表來存儲(chǔ)供應(yīng)商的信息,并且當(dāng)有單據(jù)涉及到該供應(yīng)商的時(shí)候該供應(yīng)商無法刪除,采購(gòu)本身還要提供一張采購(gòu)訂單表來存儲(chǔ)信息,與采購(gòu)訂單對(duì)應(yīng)的還有付款單和入庫單,在銷售過程中,涉及到的信息有客戶信息,收款信息還有出庫信息,這些信息都需要在數(shù)據(jù)庫中能夠查詢的到,庫存管理作為進(jìn)銷存中極其重要的一個(gè)環(huán)節(jié),他具有的功能:庫存調(diào)撥、庫存變動(dòng)、庫存盤點(diǎn),因此與之</p><p> 經(jīng)上述數(shù)據(jù)庫的分析,并且考慮到將來功能的擴(kuò)展,可以
55、得出如下的數(shù)據(jù)庫設(shè)計(jì)方案,用戶表、角色表、員工表、商品類別表、客戶表、商品表、倉庫信息表、權(quán)限表、采購(gòu)訂單表、采購(gòu)訂單明細(xì)表、入庫單、入庫單明細(xì)、銷售訂單、銷售訂單明細(xì)、出庫訂單、出庫訂單明細(xì),庫存盤點(diǎn)單、庫存調(diào)撥單、庫存變動(dòng)單、庫存表。</p><p> 根據(jù)以上的關(guān)系,得出了整個(gè)系統(tǒng)的總體ER圖(圖5.1):</p><p> 圖 5.1 數(shù)據(jù)庫ER圖</p><
56、;p> 5.1.3 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)</p><p> 根據(jù)對(duì)企業(yè)基本業(yè)務(wù)的分析,一個(gè)商品流通企業(yè)進(jìn)銷存管理系統(tǒng)可包括許多個(gè)數(shù)據(jù)表、數(shù)據(jù)視圖、存儲(chǔ)過程以及函數(shù)等,但有一些最基本的數(shù)據(jù)表,這里列出了系統(tǒng)設(shè)計(jì)中用到的最常用到的,最基本的數(shù)據(jù)表包括:商品信息表、商品類別表、供應(yīng)商信息表、客戶信息表、采購(gòu)訂單表、采購(gòu)訂單明細(xì)表、銷售訂單表、銷售訂單明細(xì)表、庫存信息表、入庫單表、出庫單表、員工信息表、庫存盤點(diǎn)
57、表等。</p><p> 5.1.4 存儲(chǔ)過程以及觸發(fā)器</p><p> 存儲(chǔ)過程和觸發(fā)器在整個(gè)數(shù)據(jù)庫中有著及其重要的功能,存儲(chǔ)過程是微軟SQL Server數(shù)據(jù)庫中的重要技術(shù)。合理地使用存儲(chǔ)過程,可以有效地提高程序的性能。并且,將商業(yè)邏輯封裝在數(shù)據(jù)庫系統(tǒng)的存儲(chǔ)過程中,可以大大提高整個(gè)軟件系統(tǒng)的可維護(hù)【14】。</p><p> 觸發(fā)器是一種特殊的存儲(chǔ)過程
58、,它類似于數(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ù)庫系統(tǒng)會(huì)使觸發(fā)器自動(dòng)觸發(fā)執(zhí)行,以便采取適當(dāng)?shù)拇胧?,?duì)相關(guān)數(shù)據(jù)表進(jìn)行級(jí)聯(lián)更新,從而保證數(shù)據(jù)的完整性?!?3】</p><p> 在本次的系統(tǒng)開發(fā)中,使用了存儲(chǔ)過程來完成了系統(tǒng)的登陸功能,并且使用大量的觸發(fā)器來保證數(shù)據(jù)庫中數(shù)據(jù)的一致性及
59、完整性;以下是一些比較重要的存儲(chǔ)過程以及觸發(fā)器。</p><p> 該存儲(chǔ)過程的功能是將程序中傳入的帳號(hào)和密碼跟數(shù)據(jù)庫中的進(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、過該觸發(fā)器可以實(shí)現(xiàn)當(dāng)商品入庫之后,級(jí)聯(lián)修改庫存里面的數(shù)量,并且判斷當(dāng)前庫存是否處于正常水平,若未處于正常水平則彈出提示,并且在入庫后判斷該單據(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('庫存數(shù)量大于庫存上限,請(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ù)庫連接</p><p> 一個(gè)信息管理系統(tǒng)能成功的運(yùn)行需要的就是對(duì)數(shù)據(jù)庫的控制,因此,如何連接數(shù)據(jù)庫以及對(duì)數(shù)據(jù)庫的訪問就成了整個(gè)系統(tǒng)設(shè)計(jì)的一個(gè)關(guān)鍵,所有的數(shù)據(jù)都要通過連接數(shù)據(jù)庫才能存入到數(shù)據(jù)庫中,但是在整個(gè)系統(tǒng)中需要連接數(shù)據(jù)庫的操作非常之多,一個(gè)個(gè)寫是非常繁瑣的,在本系統(tǒng)中,所采用
82、的思想是采用類來訪問數(shù)據(jù)庫,類名為SqlClass,是連接數(shù)據(jù)庫的類,里面還有對(duì)數(shù)據(jù)的一些基本的操作,例如查詢數(shù)據(jù),打開和關(guān)閉數(shù)據(jù)庫的連接操作。在本系統(tǒng)中對(duì)數(shù)據(jù)庫的操作主要是使用DataTable和DataSet來完成,將數(shù)據(jù)存放到DataTable或者DataSet中,在最后完成的時(shí)候一起存放到數(shù)據(jù)庫中,由于可以支持離線操作,因此在效率上是比較高的,但是相應(yīng)的需要一定的內(nèi)存作為代價(jià)。</p><p><b
83、> 主要代碼如下所示:</b></p><p> public void inorde(string sqlstr)</p><p><b> {</b></p><p> opensql(); 打開數(shù)據(jù)庫連接</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ù)庫中的數(shù)據(jù)查詢出來</p><p> 5.2.2 系統(tǒng)登陸設(shè)計(jì)</p><p>
87、 當(dāng)系統(tǒng)第一次登陸的時(shí)候,必須配置服務(wù)器,配置界面主要有以下內(nèi)容需填寫,IP地址是服務(wù)器所在地址,數(shù)據(jù)庫是服務(wù)器的數(shù)據(jù)庫名,用戶名和密碼是操作員對(duì)數(shù)據(jù)庫的權(quán)限賬號(hào)。當(dāng)配置完服務(wù)器后就可以進(jìn)行登陸操作了,下次登陸的時(shí)候只需選使用上次的配置即可(配置信息儲(chǔ)存在注冊(cè)表中)</p><p> 系統(tǒng)登陸主要用于對(duì)進(jìn)銷存系統(tǒng)的用戶安全性進(jìn)行檢查,沒有正確的賬號(hào)和密碼是無法進(jìn)入系統(tǒng)的,并且在登錄過程中會(huì)自動(dòng)驗(yàn)證該用戶的權(quán)限
88、,從而判斷該用戶是否可以進(jìn)行相應(yīng)的操作,而用戶的權(quán)限只有超級(jí)管理員才可以進(jìn)行分配。</p><p> 判斷用戶權(quán)限的操作主要是通過查詢賬號(hào)和密碼是否符合數(shù)據(jù)庫里面的值,如果值存在,則賬號(hào)和密碼正確,允許登錄,否則提示賬號(hào)和密碼錯(cuò)誤。</p><p> 5.2.3 數(shù)據(jù)統(tǒng)計(jì)及打印</p><p> 對(duì)于一個(gè)進(jìn)銷存的系統(tǒng)來說,數(shù)據(jù)統(tǒng)計(jì)及報(bào)表打印的功能是必不可少的
89、,本系統(tǒng)的設(shè)計(jì)思路是單據(jù)的打印通過打印控件進(jìn)行控制,是使用畫筆工具通過程序?qū)崿F(xiàn)單據(jù)格式以及內(nèi)容的顯示。對(duì)于報(bào)表來說是使用了Visual Studio 2008的水晶報(bào)表功能來完成,將需要的數(shù)據(jù)以SQL語句的形式傳給數(shù)據(jù)庫,并且得到返回的數(shù)據(jù),通過水晶報(bào)表可以將返回的數(shù)據(jù)顯示到水晶報(bào)表中,并且可以將數(shù)據(jù)以圖表的形式表現(xiàn)出來,除此之外,水晶報(bào)表自帶打印功能可以將匯總的數(shù)據(jù)以及圖表等打印出來。</p><p> 5.
90、2.4 系統(tǒng)的安全性措施</p><p> 對(duì)于一個(gè)信息系統(tǒng)來說安全性無疑是一個(gè)十分重要的部分,在本系統(tǒng)中總共在三個(gè)方面對(duì)安全性進(jìn)行了設(shè)計(jì)。</p><p> (1)權(quán)限管理:如果無相應(yīng)的權(quán)限,則無法進(jìn)行相應(yīng)的操作,具體的實(shí)施已經(jīng)在登陸設(shè)計(jì)中給出。</p><p> ?。?)信息記錄:在數(shù)據(jù)庫中建立一個(gè)系統(tǒng)日志表,用于查看操作員的登陸情況,可以知道什么時(shí)候誰登
91、陸過系統(tǒng),什么時(shí)候退出系統(tǒng),可以做到有據(jù)可查。</p><p> ?。?)數(shù)據(jù)庫備份及還原:本系統(tǒng)提供客戶端的數(shù)據(jù)備份及還原功能,通過該功能可以將數(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> (1)系統(tǒng)管理員的賬號(hào)和密碼的正確性和一致性進(jìn)行檢查,檢驗(yàn)系統(tǒng)安全性。確保用戶沒有權(quán)限的話無法進(jìn)行相關(guān)的操作。</p><p> (2)對(duì)信息填寫的正確性以及合法性的檢查,例如:在一些文本框中只能填入數(shù)字而無法填入字符,每個(gè)文本框最大可以填寫的字符數(shù)等等,通過這些措施保證數(shù)據(jù)輸入
93、的正確性。</p><p> (3)系統(tǒng)在輸出的時(shí)候,檢查輸出的內(nèi)容是不是用戶所需要的。</p><p> ?。?)數(shù)據(jù)庫的完整性,建立數(shù)據(jù)庫的時(shí)候設(shè)定相關(guān)的主鍵,并且采用觸發(fā)器的機(jī)制來確保信息的一致性。</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)入登陸界面,通過登陸界面限定用戶登陸和判斷權(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ì)話框,通過本窗口可以對(duì)基本的商品信息進(jìn)行添加、修改、刪除操作,除此之外可以將數(shù)據(jù)導(dǎo)出至Excel,方便數(shù)據(jù)管理,通過右側(cè)的ListBox還可以對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單的查詢。其它基礎(chǔ)數(shù)
103、據(jù)界面基本類似于上述界面。</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ù)輸入有問題!");</p><p><
106、b> return;</b></p><p><b> }</b></p><p> Class.SqlClass sql = new 進(jìn)銷存管理系統(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ù)輸入有問題!");</p><p><b> return;</b></p><p><
113、b> }</b></p><p> Class.SqlClass sql = new 進(jìn)銷存管理系統(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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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)銷存管理系統(tǒng)[文獻(xiàn)綜述]
- 基于c#進(jìn)銷存管理系統(tǒng)[任務(wù)書]
- 基于c#進(jìn)銷存管理系統(tǒng)[畢業(yè)論文]0
- 進(jìn)銷存管理系統(tǒng)畢業(yè)論文
- 進(jìn)銷存管理系統(tǒng)畢業(yè)論文
- 進(jìn)銷存管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文-進(jìn)銷存管理系統(tǒng)
- 畢業(yè)論文-- 商品進(jìn)銷存管理系統(tǒng)
- 倉庫進(jìn)銷存管理系統(tǒng)畢業(yè)論文
- 超市進(jìn)銷存管理系統(tǒng)畢業(yè)論文
- 進(jìn)銷存管理系統(tǒng)畢業(yè)論文 (2)
- 畢業(yè)論文商品進(jìn)銷存管理系統(tǒng)
- 超市進(jìn)銷存管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文——企業(yè)進(jìn)銷存管理系統(tǒng)
- 畢業(yè)論文——企業(yè)進(jìn)銷存管理系統(tǒng)
- 畢業(yè)論文——企業(yè)進(jìn)銷存管理系統(tǒng)
- 畢業(yè)論文——企業(yè)進(jìn)銷存管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文——企業(yè)進(jìn)銷存管理系統(tǒng)畢業(yè)論文
- 企業(yè)進(jìn)銷存管理系統(tǒng)畢業(yè)論文(設(shè)計(jì))
- 畢業(yè)論文——進(jìn)銷存管理系統(tǒng)介紹 (2)
評(píng)論
0/150
提交評(píng)論