倉庫管理系統(tǒng)畢業(yè)設計
專業(yè)綜合設計
系統(tǒng)名稱: 倉庫管理系統(tǒng)
學 校: XXXXXXXXXXXXXXXX學院
系 別: 計算機科學與應用系s
專 業(yè): 計算機科學與技術
姓 名: XXX
學 號: XXXXXXXXX
指導教師: XX
日 期: 201X年X年X日
摘 要
隨著現(xiàn)代工業(yè)的發(fā)展,計算機信息管理系統(tǒng)越來越受到企業(yè)重視,庫存管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺數(shù)據庫的建立和維護以及前端應用程序的開發(fā)兩個方面。對于前者要求建立一個數(shù)據一致性、完整性以及安全性好的庫。而對于后者則要求應用程序功能完備,易使用等特點。
本設計采用Visual Studio 2005的開發(fā)環(huán)境,而后臺數(shù)據庫選用數(shù)據庫軟件SQL Server 2005,主要完成了庫存管理系統(tǒng)的需求分析、功能模塊的劃分、數(shù)據庫模式分析,并由此完成了數(shù)據庫結構和應用程序的實現(xiàn),系統(tǒng)基本實現(xiàn)了所需功能,界面友好,操作方便。
本系統(tǒng)主要是讓倉庫的管理實現(xiàn)信息化、系統(tǒng)化,方便化,把計算機用于倉庫管理中,這樣可以很大程度上提高管理者分析和決策的科學性,提高經營管理水平。
關鍵詞:倉庫管理 Visual Studio 2005 SQL Server 2005
ABSTRACT
With the development of modern industry, the information management system of the computer is being paid attention to by enterprises. The stock management system is a typical MIS.It’s development mostly include the foundation and maintenance of the Database and the development of the client application programme.For the former we must eatablish a better database,which has well data consistency and data security.For the latter we must make the programme has self-contained function and easy to be use.
The design of the development environment using Visual studio 2005 , the database software is SQL Server 2005,mainly completed inventory management system needs analysis, the division of functional modules, the database model analysis, and thus completed the database structure and application implementation, The system basically achieves the required function, its interface is good, and is used well.
The system is designed to allow the management informationized and systematic, used computer in the catering management of supermarket, so it can improve the scientific of ana- lysis and decision-making,and enhance the management level.
Keywords: stock management Visual Studio 2005 SQL Server 2005
目 錄
第一章 緒論 1
1.1 倉庫管理系統(tǒng) 1
1.2 倉庫管理系統(tǒng)的研究背景與意義 1
第二章 開發(fā)工具簡介 3
2.1 Visual Stdio 2005簡介 3
2.2 SQL Server 2005簡介 3
第三章 倉庫管理系統(tǒng)分析 4
3.1 開發(fā)系統(tǒng)的目的 4
3.2 需求分析 4
3.3 可行性分析 5
3.3.1 技術可行性 5
3.3.2 經濟可行性 5
3.3.3 管理可行性 5
3.3.4 社會可行性 6
3.5 系統(tǒng)流程圖 7
第四章 倉庫管理系統(tǒng)數(shù)據庫分析 8
4.1 數(shù)據庫介紹 8
4.1.1 用戶數(shù)據 8
4.2 創(chuàng)建數(shù)據庫 9
第五章 倉庫管理系統(tǒng)數(shù)據庫設計 10
5.1 數(shù)據庫概念設計 10
5.2 倉庫管理系統(tǒng)E-R圖 11
5.3 倉庫管理系統(tǒng)數(shù)據表清單 12
5.4 數(shù)據庫邏輯結構設計 12
第六章 界面展示及部分功能模塊主要代碼 17
6.1 模塊劃分 17
6.2 本程序登錄界面 17
6.3 本程序運行后的效果 18
6.4 選擇主窗體 19
6.4.1 入庫管理窗體 20
6.4.2 出庫管理窗體 21
6.4.3 借貨管理窗體 23
6.4.4 還貨管理窗體 24
6.4.5 盤點管理窗體 26
6.5 選擇主窗體 27
6.5.1 供應商信息窗體 28
6.5.2 倉庫管理窗體 29
6.5.3 貨物管理窗體 30
6.6 選擇主窗體 31
6.6.1 數(shù)據備份窗體 32
6.6.2 數(shù)據還原窗體 33
6.6.3 數(shù)據壓縮窗體 34
6.7 選擇主窗體 36
6.7.1 更改密碼窗體 36
6.7.2 用戶管理窗體 37
6.8 選擇主窗體 39
6.8.1 庫存查詢界面 40
第七章 軟件測試及維護 43
第八章 致謝 45
第九章 結論 46
參考文獻 47
IV
第一章 緒論
1.1 倉庫管理系統(tǒng)
當今時代是飛速發(fā)展的信息時代,在各行各業(yè)中離不開信息處理,計算機最大的好處在于利用它能夠進行信息管理,使用計算機進行信息控制,不僅提高了工作效率,而且大大的提高了其安全性,尤其針對復雜的信息管理,計算機能夠充分發(fā)揮它的優(yōu)越性。計算機進行信息管理與信息管理系統(tǒng)的開發(fā)密切相關,系統(tǒng)的開發(fā)是系統(tǒng)管理的前提。
倉庫作為一種貨品資源的集散地,貨品的種類繁多,包含很多的信息數(shù)據的管理。據調查得知,以前倉庫進行信息管理的方式主要是基于文本、表格等介質的手工處理,對于貨品的出入庫情況的統(tǒng)計和核實等往往采用對賬本的人工檢查,對管理者的管理權限等不受約束,任何人都可查看,這樣容易引起資料外泄。另外,數(shù)據信息處理工作量大,容易出錯,數(shù)據繁多,容易丟失,且不易查找??偟膩碚f,缺乏系統(tǒng)、規(guī)范的信息管理手段。而且,一般的存儲情況是記錄在賬本上的,倉庫的工作人員和管理員也只是當時記得比較清楚,時間一長,如果再要進行查詢,就得在眾多的資料中翻閱查找了,這樣造成費時、費力,如要對很長時間以前的貨品進行更改就更加困難了。因此,很有必要建立一個庫存管理系統(tǒng),使貨品管理工作規(guī)范化、系統(tǒng)化、程序化。提高信息處理的速度和準確性。
1.2 倉庫管理系統(tǒng)的研究背景與意義
眾所周知,倉庫管理是一種既麻煩又單調的工作,每天都是重復記錄一些貨物的存入與取出,而且貨物的種類繁多,存取有很大的隨機性,這樣為工作人員帶來了很大的不便,在操作過程中,由于人為的計算出錯率很高,一旦出錯改正也很困難,這樣簡單繁重的工作要很多人來做,為經營者增加了很多成本,所以開發(fā)一個可行的倉庫管理系統(tǒng)是十分必要的。
隨著我國經濟的飛速發(fā)展,各種類型規(guī)模的公司企業(yè)迅速崛起,許多從事生產和經營管理的企業(yè)都有自己生產和銷售的產品,而這些產品都需要儲存在倉庫中,對于每個企業(yè)來說,隨著企業(yè)規(guī)模的不斷擴大,產品數(shù)量的急劇增加,所生產產品的種類也會不斷地更新與發(fā)展,有關產品的各種信息量也會成倍增長。面對龐大的產品信息量,如何有效地管理庫存產品,對這些企業(yè)來說是非常重要的,庫存管理的重點是銷售信息能否及時反饋,從而確保企業(yè)運行效益。而庫存管理又涉及入庫、出庫的產品、經辦人員及客戶等方方面面的因素,如何管理這些信息數(shù)據,是一項復雜的系統(tǒng)工程,充分考驗著倉庫管理員的工作能力,工作量的繁重是可想而知的,所以這就需要由倉庫管理系統(tǒng)來提高庫存管理工作的效率,這對信息的規(guī)范管理、科學統(tǒng)計和快速查詢,減少管理方面的工作量,同時對于調動廣大員工的工作積極性,提高企業(yè)的生產效率,都具有十分重要的現(xiàn)實意義。
第二章 開發(fā)工具簡介
2.1 Visual Stdio 2005簡介
開發(fā)這個系統(tǒng)使用Visual Stdio 2005工具來開發(fā), Visual Stdio 2005是當前最流行的一款程序開發(fā)工具,利用它可以開發(fā)功能強大的、運行在Windows平臺上的、能夠操作數(shù)據庫的應用系統(tǒng),因此能夠適應我們開發(fā)本系統(tǒng)的要求,并且簡單易用,實現(xiàn)功能的代碼量比其他語言減少許多,這樣就縮短了軟件開發(fā)周期,大大節(jié)約了軟件開發(fā)成本。
2.2 SQL Server 2005簡介
SQL Server 2005 是一個全面的數(shù)據庫平臺,使用集成的商業(yè)智能 (BI) 工具提供了企業(yè)級的數(shù)據管理,SQL Server 2005 數(shù)據庫引擎為關系型數(shù)據和結構化數(shù)據提供了更安全可靠的存儲功能。SQL Server 2005 中包含了非常豐富的新特性:通過提供一個更安全、可靠和高效的數(shù)據管理平臺,增強企業(yè)組織中用戶的管理能力,大幅提升IT管理效率并降低運維風險和成本;通過提供先進的商業(yè)智能平臺滿足眾多客戶對業(yè)務的實時統(tǒng)計分析、監(jiān)控預測等多種復雜管理需求,推動企業(yè)管理信息化建設和業(yè)務發(fā)展;同時,SQL Server 2005將提供一個極具擴展性和靈活性的開發(fā)平臺,實現(xiàn)Internet數(shù)據業(yè)務互聯(lián)。
第三章 倉庫管理系統(tǒng)分析
3.1 開發(fā)系統(tǒng)的目的
開發(fā)倉庫管理系統(tǒng),主要為減輕倉庫管理人員的負擔,使貨物的存入記錄與取出記錄相對完善,便于貨物的增加與減少,降低出錯率,使管理更加合理、科學,也為經營者節(jié)省開支。本系統(tǒng)完面考慮了倉庫在管理中要解決的所有需求,最終向用戶提供一套方便可行的系統(tǒng),該系統(tǒng)具備以下特征:配置必要的數(shù)據庫和應用服務程序,提供查詢、統(tǒng)計貨物的種類、數(shù)量及所屬公司等所有信息的功能,操作人員使用的界面要清晰、美觀,布局合理,內容盡量簡單明了,提供的信息詳細全面。客戶端程序要求安全性高,可靠性高。
3.2 需求分析
市場經濟的一個重要特征,就是生產的相對過剩和產品的相對過剩。它決定了這是一個買方市場。對企業(yè)來說,庫存的增加或積壓,無論是原材料、半成品或制成品,都意味著企業(yè)運作處于一種不良的狀態(tài),都是一種直接的或潛在的損失。大量的庫存擠占了企業(yè)的有限資金,使得資金流速減緩,現(xiàn)金流發(fā)生困難,甚至導致資金緊張,影響企業(yè)的正常運作。此外,大量的庫存增加了保管與倉儲的壓力,占用了相當?shù)娜肆臀锪?,使得企業(yè)負擔加重。凡此種種,一直困擾著企業(yè)的生產經營管理活動,影響企業(yè)經濟效益的實現(xiàn)。顯而易見,切實而有效地控制庫存,是擺在眾多企業(yè)面前的當務之急,也是緩解企業(yè)經濟壓力、減負增效的重要途徑。
需求分析是軟件定義時期的最后一個階段,它的基本任務是準確地回答“系統(tǒng)必須做什么”這個問題,是對目標系統(tǒng)提出完整、準確、清晰、具體的要求。需求分析的結果是系統(tǒng)開發(fā)的基礎,關系到工程的成敗和軟件產品的質量。因此,必須用行之有效的方法對軟件需求進行嚴格的審查驗證。
軟件需求分析過程是整個系統(tǒng)開發(fā)的重要階段,分析的成功與否,決定著整個系統(tǒng)功能的完善性以及穩(wěn)定性。在該階段分析人員需要確定整個產品的功能要求,并將提供一種可轉化為數(shù)據設計、結構設計和過程設計的數(shù)據與功能表示。在軟件完成后,需求分析階段研究的對象是軟件項目的用戶要求。
3.3 可行性分析
可行性研究的目的就是用最小的代價在盡可能短的時間內確定問題是否能夠解決。要達到這個目的,必須分析幾種主要的可能解法的利弊,從而判斷原定的系統(tǒng)規(guī)模和目標是 的效益是否達到值得投資開發(fā)這個系統(tǒng)的程度。一般來說,可行性分析應從經濟可行性、技術可行性、經濟可行性、操作可行性、社會可行性等方面進行研究。本系統(tǒng)的可行性分析如下:
3.3.1 技術可行性
隨著國內軟件開發(fā)的日益發(fā)展壯大,各種中小企事業(yè)單位已具備獨立開發(fā)各種類型的軟件的能力,能夠滿足不同行業(yè)的特別的需求,現(xiàn)在,市場上可以選購的應用開發(fā)產品很多,流行的也有數(shù)十種。此外,從開發(fā)人員的水平考慮,作為計算機科學與技術專業(yè)畢業(yè)的學生,大學四年所積累的專業(yè)知識使我們從一定程度上具備了開發(fā)一個小型系統(tǒng)的能力,而且學校現(xiàn)有的計算機設備也完全能夠滿足開發(fā)的需要。本系統(tǒng)主要管理的是貨物的入庫,出庫,查詢相關的一些信息等,采用C#和Microsoft Visual Studio作為前臺用戶界面的開發(fā)語言和工具,而后臺的數(shù)據庫采用微軟的SQL Server 2005。由于主要采用數(shù)據庫來進行管理,實現(xiàn)起來比較簡單,從技術上來說是完全可行的。
3.3.2 經濟可行性
對于整個系統(tǒng)而言,在系統(tǒng)未運行之前,初期投資比較大,花費相當而言比較多。各部門必須配置電腦、服務器、打印機、傳真機及相關的網絡設備,但是在整個系統(tǒng)投入運行之后,將會給該企業(yè)帶來前所未有的方便和快捷,減少不必要的中間環(huán)節(jié)以及不必要的開支,而且可以給其帶來更大的利潤??傊?,這個系統(tǒng)的經濟效益遠遠大于開發(fā)成本,而同時又減少了數(shù)據的流通環(huán)節(jié),不必要花費那么多的時間,也就是說最重要的就是提高了效率,而又保證了各項數(shù)據的準確性,也避免了工作人員的流動造成的收據丟失等問題,適應了當前的發(fā)展形勢。
3.3.3 管理可行性
傳統(tǒng)的庫存管理系統(tǒng),一般有兩種方式:一是手工管理,這種方式應用最傳統(tǒng)的“筆紙操作系統(tǒng)”,將庫存的貨物信息、銷售信息、廠商信息管理及單據管理等均以純手工的形式進行,將信息以表格文件的表現(xiàn)形式記錄在紙上,再進行統(tǒng)一保存。這種方式雖然在簡單信息查詢時會有一定的方便,但是存在著更多的不便:信息保存時間和條件很受限制、容易被損壞、信息查詢不便、信息傳達容易造成失誤等。另一種常見的信息管理方法是應用管理系統(tǒng),本系統(tǒng)就是一款做的相對到位的庫存管理系統(tǒng),隨著時代的發(fā)展,人員素質已逐步提高,庫存管理人員已經有豐富的信息管理經驗,不論是對于電腦系統(tǒng)的基本操作還是對于系統(tǒng)的維護都有了一定的基礎,同時還可以配置專業(yè)的電腦維護人員來維護電腦不必擔心電腦故障問題。
3.3.4 社會可行性
該系統(tǒng)是作為畢業(yè)設計,不會對社會造成嚴重影響,也不用考慮到版權、法律等社會因素,所以在社會方面也是可行的。
3.4系統(tǒng)功能描述及系統(tǒng)安全性
一、庫存管理系統(tǒng)是一套對貨品入庫、出庫、庫存進行全面管理的系統(tǒng),在設計該系統(tǒng)時,應盡可能便于用戶管理和操作。系統(tǒng)在實現(xiàn)上應該具有如下功能:
(1)系統(tǒng)要求用戶必須輸入正確的用戶名和密碼才能進入系統(tǒng)。
(2)系統(tǒng)能實現(xiàn)貨物的入,出庫功能。
(3)系統(tǒng)提供查詢現(xiàn)在庫存的情況,及入庫、出庫和貨物年統(tǒng)計等的記錄。
(4)系統(tǒng)提供管理員設置倉庫信息和修改貨物信息等。
(5)系統(tǒng)提供管理員增加、刪除、修改用戶賬戶的功能。
二、由于庫存管理系統(tǒng)包含比較重要的信息,因此,在系統(tǒng)設計時除了注重用戶的需求,還要保證系統(tǒng)的安全性和一致性,該系統(tǒng)中管理權限上應當進行嚴格控制,體現(xiàn)如下:
(1)安全性:本系統(tǒng)中共分為三類不同的用戶,分別具有不同的權限。要想對該庫存管理系統(tǒng)進行操作就應當具有某些操作權限,沒有權限的用戶將不能通過任何渠道來登錄該系統(tǒng),查看該系統(tǒng)的任何信息和數(shù)據,以確保系統(tǒng)的嚴密性和安全性,系統(tǒng)用戶分為管理員用戶和普通用戶,管理員用戶可對普通用戶信息進行增、刪、改,普通用戶則只能查詢。在具體實現(xiàn)時還應為系統(tǒng)管理員和普通用戶設定不同的操作權限,系統(tǒng)管理員應當可以操作系統(tǒng)的所有模塊,普通用戶對于貨物管理和基本檔案管理模塊是無權使用的。
(2)一致性:系統(tǒng)的數(shù)據要保證一致性、準確性,當某一數(shù)據庫中記錄發(fā)生改變時,與之相關聯(lián)的數(shù)據庫也隨之變化。
3.5 系統(tǒng)流程圖
本系統(tǒng)流程圖如圖3-1所示。
圖3-1 系統(tǒng)流程圖
第四章 倉庫管理系統(tǒng)數(shù)據庫分析
4.1 數(shù)據庫介紹
數(shù)據庫在一個信息管理系統(tǒng)中占有非常重要的地位,數(shù)據庫結構設計的好壞將直接對應用系統(tǒng)的效率以及實現(xiàn)的效果產生影響。合理的數(shù)據庫結構設計可以提高數(shù)據存儲的效率,保證數(shù)據的完整和一致。同時,合理的數(shù)據庫結構也將有利于程序的實現(xiàn)。設計數(shù)據庫時應該首先充分了解用戶各個方面的需求,包括現(xiàn)有的以及將來可能增加的需求。
數(shù)據庫設計是在既定(本系統(tǒng)使用SQL Server)的數(shù)據庫管理系統(tǒng)基礎之上建立數(shù)據庫的過程。其過程是將現(xiàn)實存在的數(shù)據及其應用處理關系進行抽象,從而形成數(shù)據庫結構。數(shù)據庫是數(shù)據庫應用程序的核心,數(shù)據庫設計是建立一個應用程序最重要的一步。一個好的數(shù)據庫結構和文件設計可以使系統(tǒng)在已有的條件下具有處理速度快,占用存儲空間少,操作處理過程簡單,查找容易,系統(tǒng)開銷和費用低等特點。具體實現(xiàn)時,應首先明確用戶對數(shù)據的需求,在此基礎上,建立數(shù)據庫的概念模型,概念模型主要是用來反映用戶的現(xiàn)實環(huán)境和需求,它獨立于具體的數(shù)據庫管理系統(tǒng),并且與數(shù)據庫怎樣實現(xiàn)無關,建立概念模型的主要工具為實體關系(E-R)圖,在建立數(shù)據庫概念模型之后,要真正實現(xiàn)與數(shù)據庫管理系統(tǒng)的結合,即能夠由既定的數(shù)據庫管理系統(tǒng)所支持,還必須進行邏輯結構的設計,在邏輯設計階段,主要完成建立數(shù)據庫的邏輯模型,并解決數(shù)據的完整性、一致性、安全性和有效性等問題;最后一個階段是數(shù)據庫的物理結構設計,其任務是為系統(tǒng)邏輯結構模型確定合理的存儲結構、存取方法、以及數(shù)據表示和數(shù)據存儲空間分配等內容,從而得到具體的數(shù)據庫物理結構。
數(shù)據庫由DBMS(數(shù)據庫管理系統(tǒng))處理,DBMS則由開發(fā)人員和用戶通過應用程序直接或間接地使用。它主要包括四個要素:用戶數(shù)據、元數(shù)據、索引和應用元數(shù)據。
4.1.1 用戶數(shù)據
目前,大多數(shù)主流數(shù)據庫管理系統(tǒng)把用戶數(shù)據表示為關系?,F(xiàn)在把關系看作數(shù)據表,表的列包含域或屬性,表的行包含對應業(yè)務環(huán)境中的實體的記錄。并非所有的關系都同樣符合要求,有些關系比其它關系更結構化一些。
(1)元數(shù)據
數(shù)據庫是自描述的,這就意味著它自身包含了它的結構的描述,這種結構的描述稱作元數(shù)據。因為DBMS產品是用來存儲和操縱表的,所以大多數(shù)產品把元數(shù)據以表的形式存儲,有時稱作系統(tǒng)表。這些系統(tǒng)表存儲了數(shù)據庫中表的情況,指出每一個表中有多少列,那一列是主關鍵字,每一列的數(shù)據類型的描述,它也存儲索引、關鍵字、規(guī)則和數(shù)據庫結構的其他部分。
在表中存儲元數(shù)據不僅對DBMS是有效的,對用戶也是方便的,因為他們可以使用與查詢用戶數(shù)據同樣的查詢工具來查詢元數(shù)據。
(2)索引
第三種類型的數(shù)據改進了數(shù)據庫的性能和可訪問性,這種數(shù)據經常稱作開銷數(shù)據,盡管有時也采用其他類型的數(shù)據結構,如鏈表,但它主要還是索引。索引可以用來排序和快速訪問數(shù)據。
(3)應用元數(shù)據
存儲在數(shù)據庫中的第四種數(shù)據是應用元數(shù)據,它用來存儲用戶窗體、報表、查詢和其他形式的查詢組件。并非所有的DBMS都支持應用組件,支持組件的DBMS也不一定把全部組件的結構作為應用元數(shù)據存儲在數(shù)據庫中。然而,大多數(shù)現(xiàn)代的DBMS產品存儲這種數(shù)據作為數(shù)據庫的一部分。一般來說,數(shù)據庫開發(fā)人員和用戶都不直接訪問應用元數(shù)據,相反,他們通過DBMS中的工具來處理這些數(shù)據。
4.2 創(chuàng)建數(shù)據庫
數(shù)據庫模式定義了數(shù)據庫的結構、表、關系、域和業(yè)務規(guī)則。數(shù)據庫模式是一種設計,數(shù)據庫的應用正是建立在此基礎上的。
域是一列可能擁有的值的集合。必須為每一個表的每一列確定域。除了數(shù)據的物理格式外,還需要確定是否有些域對表來說是唯一的。
數(shù)據庫模式的最后一個要素是業(yè)務規(guī)則,它是對需要反映在數(shù)據庫和數(shù)據庫應用程序中的業(yè)務活動的約束。業(yè)務規(guī)則是模式的一個重要部分,因為他們指定了無論什么數(shù)據變化到達DBMS引擎,允許的數(shù)據值必須滿足的約束。不管無效的數(shù)據變化請求是來自窗體的用戶、查詢、修改請求還是應用程序,DBMS都應該拒絕。遺憾的是,不同的DBMS產品用不同的方法實施業(yè)務規(guī)則。在某些情況下,DBMS產品不具備實施必要業(yè)務規(guī)則的能力,必須以代碼形式把它們編入應用程序。
第五章 倉庫管理系統(tǒng)數(shù)據庫設計
5.1 數(shù)據庫概念設計
本系統(tǒng)涉及的實體有:管理員,商品,倉庫,供應商。他們的實體及其屬性圖分別如下:
(1)貨物的實體及其屬性圖如圖5-1所示。
圖5-1 貨物實體及其屬性圖
(2)倉庫的實體及其屬性圖如5-2所示。
圖5-2 倉庫實體及其屬性圖
(3)管理員的實體及其屬性圖如圖5-3所示。
圖5-3 管理員的實體及其屬性圖
(4)供應商的實體及其屬性圖如圖5-4所示。
圖5-4 供應商實體及其屬性圖
5.2 倉庫管理系統(tǒng)E-R圖
本系統(tǒng)E-R圖如圖5-5所示。
圖5-5 系統(tǒng)E-R圖
5.3 倉庫管理系統(tǒng)數(shù)據表清單
表5-1 庫存管理系統(tǒng)數(shù)據表清單
數(shù)據表名稱
數(shù)據表用途
tb_BorrowGoods
保存貨物的借貨詳細信息
tb_CheckGoods
保存貨物的盤點詳細信息
tb_GoodsIn
保存貨物的入庫詳細信息
tb_GoodsInfo
保存貨物的基本信息
tb_GoodsOut
保存貨物的出庫詳細信息
tb_ProviderInfo
保存供應商的基本信息
tb_ReturnGoods
保存貨物的還貨詳細信息
tb_StorehouseInfo
保存?zhèn)}庫的基本信息
tb_UserInfo
保存用戶的基本信息
表5-1
5.4 數(shù)據庫邏輯結構設計
在上面的實體以及實體之間的關系的基礎上,形成數(shù)據庫中的表格以及各個表格之間的關系。
倉庫管理系統(tǒng)數(shù)據庫中的各個表格的設計結果如下面的幾個表格所示。每個表格表示在數(shù)據庫中的一個表。
(1)tb_BorrowGoods表如表5-2
列名
數(shù)據類型
長度
是否為主鍵
可否為空
GoodsBorrowID
int
YES
不能為空
GoodsName
varchar
50
NO
可為空
GoodsStorehouse
varchar
50
NO
可為空
GoodsProvider
varchar
50
NO
可為空
GoodsUnit
varchar
50
NO
可為空
BorrowNum
int
10
NO
可為空
BorrowDate
datetime
NO
可為空
BorrowPeople
varchar
50
NO
可為空
Handler
varchar
50
NO
可為空
Info
varchar
1000
NO
不能為空
表5-3
(2)tb_CheckGoods表如表5-3
列名
數(shù)據類型
長度
是否為主鍵
可否為空
GoodsCheckID
int
YES
不能為空
GoodsBorrowID
int
NO
可為空
GoodsName
varchar
50
NO
可為空
GoodsStorehouse
varchar
50
NO
可為空
GoodsProvider
varchar
50
NO
可為空
InNum
int
NO
可為空
OutNum
int
NO
可為空
NeedNum
varchar
100
NO
可為空
CheckPeople
varchar
50
NO
可為空
CheckDate
datetime
NO
可為空
Info
varchar
100
NO
不能為空
表5-3
(3)tb_GoodsIn表如表5-4
列名
數(shù)據類型
長度
是否為主鍵
可否為空
GoodsInID
int
10
YES
不能為空
GoodsName
varchar
50
NO
可為空
GoodsStorehouse
varchar
50
NO
可為空
GoodsProvider
varchar
50
NO
可為空
GoodsUnit
varchar
50
NO
可為空
GoodsNum
int
NO
可為空
GoodsPriceIn
money
NO
可為空
GoodsAllPrice
NO
可為空
GoodsInDate
datetime
NO
可為空
GoodsAdder
varchar
50
NO
可為空
GoodsInfo
text
NO
不能為空
表5-4
(4)tb_GoodsInfo表如表5-5
列名
數(shù)據類型
長度
是否為主鍵
可否為空
GoodsID
int
10
YES
不能為空
GoodsName
varchar
50
NO
不能為空
GoodsStorehouse
varchar
50
NO
可為空
GoodsProvider
varchar
50
NO
可為空
GoodsUnit
varchar
50
NO
可為空
GoodsNum
int
NO
可為空
GoodsPriceIn
money
NO
可為空
GoodsPriceOut
money
NO
可為空
GoodsInfo
text
NO
可為空
AddDate
datetime
NO
可為空
AddUser
varchar
50
NO
可為空
GoodsLeast
int
NO
可為空
GoodsMost
int
NO
可為空
表5-5
(5)tb_GoodsOut表如表5-6
列名
數(shù)據類型
長度
是否為主鍵
可否為空
GoodsOutID
int
YES
不能為空
GoodsName
varchar
50
NO
可為空
GoodsProvider
varchar
50
NO
可為空
GoodsUnit
varchar
50
NO
可為空
GoodsNum
int
NO
可為空
GoodsPriceOut
money
NO
可為空
GoodsAllPrice
NO
可為空
GoodsOutDate
datetime
NO
可為空
GoodsOutPeople
varchar
50
NO
可為空
GoodsOutCompany
varchar
50
NO
可為空
Handler
varchar
50
NO
可為空
GoodsInfo
text
NO
不能為空
表5-6
(6) tb_ProviderInfo表如表5-7
列名
數(shù)據類型
長度
是否為主鍵
可否為空
ProviderID
int
YES
不能為空
ProviderName
varchar
50
NO
不能為空
ProviderManager
varchar
50
NO
可為空
ProviderPhone
varchar
50
NO
可為空
ProviderFax
varchar
50
NO
可為空
ProviderEmail
varchar
10
NO
可為空
ProviderAddress
varchar
1000
NO
可為空
ProviderInfo
text
NO
可為空
AddDate
datetime
NO
可為空
AddUser
varchar
1000
NO
可為空
表5-7
(7)tb_ReturnGoods表如表5-8
列名
數(shù)據類型
長度
是否為主鍵
可否為空
ReturnGoodsID
int
YES
不能為空
GoodsName
varchar
50
NO
可為空
GoodsStorehouse
varchar
50
NO
可為空
GoodsProvider
varchar
50
NO
可為空
GoodsUnit
varchar
50
NO
可為空
ReturnNum
int
NO
可為空
ReturnDate
datetime
NO
可為空
ReturnPeople
varchar
50
NO
可為空
Handler
varchar
50
NO
可為空
Info
varchar
1000
NO
可為空
表5-8
(8) tb_StorehouseInfo表如表5-9
列名
數(shù)據類型
長度
是否為主鍵
可否為空
StorehouseID
int
YES
不能為空
StorehouseName
varchar
50
NO
可為空
StorehouseManager
varchar
50
NO
可為空
StorehousePhone
varchar
50
NO
可為空
StorehouseInfo
text
NO
可為空
AddDate
datetime
NO
可為空
AddUser
varchar
50
NO
可為空
表5-9
(9)tb_UserInfo表如表5-10
列名
數(shù)據類型
長度
是否為主鍵
可否為空
UserID
int
YES
不能為空
UserName
varchar
20
NO
不能為空
UserPwd
varchar
20
NO
不能為空
UserLevel
varchar
20
NO
不能為空
表5-10
第六章 界面展示及部分功能模塊主要代碼
6.1 模塊劃分
本系統(tǒng)模塊圖如圖6-1所示。
圖6-1 系統(tǒng)模塊圖
6.2 本程序登錄界面
出于對系統(tǒng)安全性的考慮,本系統(tǒng)設置了登錄模塊,只有持有效用戶名和密碼的用戶才能登錄該系統(tǒng)。此外,本系統(tǒng)設置了訪問權限,不同訪問權限的用戶進入系統(tǒng)后能完成不同的操作,普通用戶只具有查詢的權限,管理員用戶可對普通用戶的信息進行更改和入出庫等所有操作。具體的登錄頁面如圖6-2所示。
圖6-2系統(tǒng)登錄界面
主要實現(xiàn)代碼如下:
private void frmLogin_Load(object sender, EventArgs e)
{
dataoperate.ComboxDataBind("SELECT * FROM tb_UserInfo", "UserInfo", "UserName", cboxUserName);
}
private void cboxUserName_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
string strCMD = "SELECT UserLevel FROM tb_UserInfo WHERE UserName=" + cboxUserName.Text + "";
SqlDataReader dr = dbcontrol.SqlExecuteReader(strCMD);
if (dr.Read())
{
strUserLevel = dr["UserLevel"].ToString();
lblUserLevel.Text = strUserLevel;
}
dr.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void btnLogin_Click(object sender, EventArgs e)
{
int iResult = dataoperate.Login(cboxUserName.Text.Trim(), txtPwd.Text.Trim());
if (iResult == 0)
{
MessageBox.Show("用戶名或密碼錯誤!", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
if (iResult == 1)
{
strUserName = cboxUserName.Text.Trim();
strUserPwd = txtPwd.Text.Trim();
frmMain frm = new frmMain();
frm.Show();
this.Hide();
}
}
6.3 本程序運行后的效果
當使用正確的用戶名和密碼登陸系統(tǒng)以后就進入系統(tǒng)的主界面,在系統(tǒng)的主界面中可以選擇你要進入的系統(tǒng)模塊,在系統(tǒng)的下面顯示了你登陸的用戶名,用戶權限以及登錄時間等。系統(tǒng)主界面如圖6-3所示。
圖6-3 系統(tǒng)主界面
6.4 選擇主窗體
選擇主窗體上的[貨物管理]或貨物管理頁面上的按鈕可以進入入庫管理、出庫管理、借貨還貨和盤點管理功能窗體,如圖6-4所示。
圖6-4 貨物管理菜單界面
6.4.1 入庫管理窗體
入庫管理窗體中設置了入庫管理的基本信息,如圖6-5所示。
圖6-6 貨物入庫管理窗體
主要實現(xiàn)代碼如下:
private void frmGoodsIn_Load(object sender, EventArgs e)
{
ds = dbcontrol.GetDataSet("SELECT * FROM tb_GoodsIn", "GoodsIn");
if (ds.Tables[0].Rows.Count == 0)
{
btnDelete.Enabled = false;
}
else
{
btnDelete.Enabled = true;
dgvGoodsIn.DataSource = ds.Tables[0];
}
dataoperate.ComboxDataBind("SELECT ProviderName FROM tb_ProviderInfo",
"ProviderName", "ProviderName", cboxProvider);
dataoperate.ComboxDataBind("SELECT StorehouseName FROM tb_StorehouseInfo",
"StorehouseName", "StorehouseName", cboxStorehouse);
}
private void btnGoodsIn_Click(object sender, EventArgs e)
{
if (txtGoodsName.Text.Trim() == "")
{
MessageBox.Show("貨物名稱不能為空!", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else if (txtGoodsNum.Text.Trim() == "")
{
MessageBox.Show("貨物數(shù)量不能為空!", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else if (txtGoodsPriceIn.Text.Trim() == "")
{
MessageBox.Show("貨物進價不能為空不能為空!", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
try
{
dataoperate.GoodsIn(txtGoodsName.Text.Trim(),
cboxProvider.Text.Trim(), cboxStorehouse.Text.Trim(),
cboxGoodsUnit.Text.Trim(),
txtGoodsNum.Text.Trim(),
txtGoodsPriceIn.Text.Trim(),
DateTime.Now, txtGoodsAdder.Text.Trim(),
txtGoodsInfo.Text);
MessageBox.Show("入庫成功!", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Information);
frmGoodsIn_Load(sender, e);
Clear();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
6.4.2 出庫管理窗體
出庫管理窗體中設置了出庫管理的基本信息,如圖6-7所示。
圖6-8 貨物出庫管理窗體
主要實現(xiàn)代碼如下:
private void frmGoodsOut_Load(object sender, EventArgs e)
{
ds = dbcontrol.GetDataSet("SELECT * FROM tb_GoodsOut", "GoodsOut");
if (ds.Tables[0].Rows.Count == 0)
{
btnDelete.Enabled = false;
}
else
{
btnDelete.Enabled = true;
}
dgvGoodsOut.DataSource = ds.Tables[0];
dataoperate.ComboxDataBind("SELECT DISTINCT GoodsStorehouse FROM tb_GoodsInfo",
"Storehouse", "GoodsStorehouse", cboxStorehouse);
}
private void cboxStorehouse_SelectedIndexChanged(object sender, EventArgs e)
{
dataoperate.ComboxDataBind("SELECT DISTINCT GoodsProvider FROM tb_GoodsInfo WHERE GoodsStorehouse=" + cboxStorehouse.Text + "",
"ProviderInfo", "GoodsProvider", cboxProvider);
cboxGoodsName.Text = "";
}
private void cboxProvider_SelectedIndexChanged(object sender, EventArgs e)
{
dataoperate.ComboxDataBind("SELECT GoodsName FROM tb_GoodsInfo WHERE GoodsStorehouse=" + cboxStorehouse.Text + " AND GoodsProvider=" + cboxProvider.Text + "",
"GoodsName", "GoodsName", cboxGoodsName);
}
private void cboxGoodsName_SelectedIndexChanged(object sender, EventArgs e)
{
SqlDataReader dr = dbcontrol.SqlExecuteReader("SELECT * FROM tb_GoodsInfo WHERE GoodsStorehouse=" + cboxStorehouse.Text + " AND GoodsProvider=" + cboxProvider.Text + " AND GoodsName=" + cboxGoodsName.Text + "");
if (dr.Read())
{
cboxGoodsUnit.Text = dr["GoodsUnit"].ToString();
txtNumNow.Text = dr["GoodsNum"].ToString();
txtPriceOut.Text = dr["GoodsPriceOut"].ToString();
}
dr.Close();
}
6.4.3 借貨管理窗體
借貨管理窗體中設置了借貨管理的基本信息,如圖6-9所
圖6-9 借貨管理窗體
主要實現(xiàn)代碼如下:
private void btnBorrow_Click(object sender, EventArgs e)
{
if (txtBorrowNum.Text.Trim() == "")
{
MessageBox.Show("數(shù)量不能為空!", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else if (errorNum.GetError(txtBorrowNum).Equals("數(shù)量格式不正確!"))
{
MessageBox.Show("格式有誤!", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
try
{
int iResult = da
收藏
- 資源描述:
-
專業(yè)綜合設計
系統(tǒng)名稱: 倉庫管理系統(tǒng)
學 校: XXXXXXXXXXXXXXXX學院
系 別: 計算機科學與應用系s
專 業(yè): 計算機科學與技術
姓 名: XXX
學 號: XXXXXXXXX
指導教師: XX
日 期: 201X年X年X日
摘 要
隨著現(xiàn)代工業(yè)的發(fā)展,計算機信息管理系統(tǒng)越來越受到企業(yè)重視,庫存管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺數(shù)據庫的建立和維護以及前端應用程序的開發(fā)兩個方面。對于前者要求建立一個數(shù)據一致性、完整性以及安全性好的庫。而對于后者則要求應用程序功能完備,易使用等特點。
本設計采用Visual Studio 2005的開發(fā)環(huán)境,而后臺數(shù)據庫選用數(shù)據庫軟件SQL Server 2005,主要完成了庫存管理系統(tǒng)的需求分析、功能模塊的劃分、數(shù)據庫模式分析,并由此完成了數(shù)據庫結構和應用程序的實現(xiàn),系統(tǒng)基本實現(xiàn)了所需功能,界面友好,操作方便。
本系統(tǒng)主要是讓倉庫的管理實現(xiàn)信息化、系統(tǒng)化,方便化,把計算機用于倉庫管理中,這樣可以很大程度上提高管理者分析和決策的科學性,提高經營管理水平。
關鍵詞:倉庫管理 Visual Studio 2005 SQL Server 2005
ABSTRACT
With the development of modern industry, the information management system of the computer is being paid attention to by enterprises. The stock management system is a typical MIS.It’s development mostly include the foundation and maintenance of the Database and the development of the client application programme.For the former we must eatablish a better database,which has well data consistency and data security.For the latter we must make the programme has self-contained function and easy to be use.
The design of the development environment using Visual studio 2005 , the database software is SQL Server 2005,mainly completed inventory management system needs analysis, the division of functional modules, the database model analysis, and thus completed the database structure and application implementation, The system basically achieves the required function, its interface is good, and is used well.
The system is designed to allow the management informationized and systematic, used computer in the catering management of supermarket, so it can improve the scientific of ana- lysis and decision-making,and enhance the management level.
Keywords: stock management Visual Studio 2005 SQL Server 2005
目 錄
第一章 緒論 1
1.1 倉庫管理系統(tǒng) 1
1.2 倉庫管理系統(tǒng)的研究背景與意義 1
第二章 開發(fā)工具簡介 3
2.1 Visual Stdio 2005簡介 3
2.2 SQL Server 2005簡介 3
第三章 倉庫管理系統(tǒng)分析 4
3.1 開發(fā)系統(tǒng)的目的 4
3.2 需求分析 4
3.3 可行性分析 5
3.3.1 技術可行性 5
3.3.2 經濟可行性 5
3.3.3 管理可行性 5
3.3.4 社會可行性 6
3.5 系統(tǒng)流程圖 7
第四章 倉庫管理系統(tǒng)數(shù)據庫分析 8
4.1 數(shù)據庫介紹 8
4.1.1 用戶數(shù)據 8
4.2 創(chuàng)建數(shù)據庫 9
第五章 倉庫管理系統(tǒng)數(shù)據庫設計 10
5.1 數(shù)據庫概念設計 10
5.2 倉庫管理系統(tǒng)E-R圖 11
5.3 倉庫管理系統(tǒng)數(shù)據表清單 12
5.4 數(shù)據庫邏輯結構設計 12
第六章 界面展示及部分功能模塊主要代碼 17
6.1 模塊劃分 17
6.2 本程序登錄界面 17
6.3 本程序運行后的效果 18
6.4 選擇主窗體 19
6.4.1 入庫管理窗體 20
6.4.2 出庫管理窗體 21
6.4.3 借貨管理窗體 23
6.4.4 還貨管理窗體 24
6.4.5 盤點管理窗體 26
6.5 選擇主窗體 27
6.5.1 供應商信息窗體 28
6.5.2 倉庫管理窗體 29
6.5.3 貨物管理窗體 30
6.6 選擇主窗體 31
6.6.1 數(shù)據備份窗體 32
6.6.2 數(shù)據還原窗體 33
6.6.3 數(shù)據壓縮窗體 34
6.7 選擇主窗體 36
6.7.1 更改密碼窗體 36
6.7.2 用戶管理窗體 37
6.8 選擇主窗體 39
6.8.1 庫存查詢界面 40
第七章 軟件測試及維護 43
第八章 致謝 45
第九章 結論 46
參考文獻 47
IV
第一章 緒論
1.1 倉庫管理系統(tǒng)
當今時代是飛速發(fā)展的信息時代,在各行各業(yè)中離不開信息處理,計算機最大的好處在于利用它能夠進行信息管理,使用計算機進行信息控制,不僅提高了工作效率,而且大大的提高了其安全性,尤其針對復雜的信息管理,計算機能夠充分發(fā)揮它的優(yōu)越性。計算機進行信息管理與信息管理系統(tǒng)的開發(fā)密切相關,系統(tǒng)的開發(fā)是系統(tǒng)管理的前提。
倉庫作為一種貨品資源的集散地,貨品的種類繁多,包含很多的信息數(shù)據的管理。據調查得知,以前倉庫進行信息管理的方式主要是基于文本、表格等介質的手工處理,對于貨品的出入庫情況的統(tǒng)計和核實等往往采用對賬本的人工檢查,對管理者的管理權限等不受約束,任何人都可查看,這樣容易引起資料外泄。另外,數(shù)據信息處理工作量大,容易出錯,數(shù)據繁多,容易丟失,且不易查找??偟膩碚f,缺乏系統(tǒng)、規(guī)范的信息管理手段。而且,一般的存儲情況是記錄在賬本上的,倉庫的工作人員和管理員也只是當時記得比較清楚,時間一長,如果再要進行查詢,就得在眾多的資料中翻閱查找了,這樣造成費時、費力,如要對很長時間以前的貨品進行更改就更加困難了。因此,很有必要建立一個庫存管理系統(tǒng),使貨品管理工作規(guī)范化、系統(tǒng)化、程序化。提高信息處理的速度和準確性。
1.2 倉庫管理系統(tǒng)的研究背景與意義
眾所周知,倉庫管理是一種既麻煩又單調的工作,每天都是重復記錄一些貨物的存入與取出,而且貨物的種類繁多,存取有很大的隨機性,這樣為工作人員帶來了很大的不便,在操作過程中,由于人為的計算出錯率很高,一旦出錯改正也很困難,這樣簡單繁重的工作要很多人來做,為經營者增加了很多成本,所以開發(fā)一個可行的倉庫管理系統(tǒng)是十分必要的。
隨著我國經濟的飛速發(fā)展,各種類型規(guī)模的公司企業(yè)迅速崛起,許多從事生產和經營管理的企業(yè)都有自己生產和銷售的產品,而這些產品都需要儲存在倉庫中,對于每個企業(yè)來說,隨著企業(yè)規(guī)模的不斷擴大,產品數(shù)量的急劇增加,所生產產品的種類也會不斷地更新與發(fā)展,有關產品的各種信息量也會成倍增長。面對龐大的產品信息量,如何有效地管理庫存產品,對這些企業(yè)來說是非常重要的,庫存管理的重點是銷售信息能否及時反饋,從而確保企業(yè)運行效益。而庫存管理又涉及入庫、出庫的產品、經辦人員及客戶等方方面面的因素,如何管理這些信息數(shù)據,是一項復雜的系統(tǒng)工程,充分考驗著倉庫管理員的工作能力,工作量的繁重是可想而知的,所以這就需要由倉庫管理系統(tǒng)來提高庫存管理工作的效率,這對信息的規(guī)范管理、科學統(tǒng)計和快速查詢,減少管理方面的工作量,同時對于調動廣大員工的工作積極性,提高企業(yè)的生產效率,都具有十分重要的現(xiàn)實意義。
第二章 開發(fā)工具簡介
2.1 Visual Stdio 2005簡介
開發(fā)這個系統(tǒng)使用Visual Stdio 2005工具來開發(fā), Visual Stdio 2005是當前最流行的一款程序開發(fā)工具,利用它可以開發(fā)功能強大的、運行在Windows平臺上的、能夠操作數(shù)據庫的應用系統(tǒng),因此能夠適應我們開發(fā)本系統(tǒng)的要求,并且簡單易用,實現(xiàn)功能的代碼量比其他語言減少許多,這樣就縮短了軟件開發(fā)周期,大大節(jié)約了軟件開發(fā)成本。
2.2 SQL Server 2005簡介
SQL Server 2005 是一個全面的數(shù)據庫平臺,使用集成的商業(yè)智能 (BI) 工具提供了企業(yè)級的數(shù)據管理,SQL Server 2005 數(shù)據庫引擎為關系型數(shù)據和結構化數(shù)據提供了更安全可靠的存儲功能。SQL Server 2005 中包含了非常豐富的新特性:通過提供一個更安全、可靠和高效的數(shù)據管理平臺,增強企業(yè)組織中用戶的管理能力,大幅提升IT管理效率并降低運維風險和成本;通過提供先進的商業(yè)智能平臺滿足眾多客戶對業(yè)務的實時統(tǒng)計分析、監(jiān)控預測等多種復雜管理需求,推動企業(yè)管理信息化建設和業(yè)務發(fā)展;同時,SQL Server 2005將提供一個極具擴展性和靈活性的開發(fā)平臺,實現(xiàn)Internet數(shù)據業(yè)務互聯(lián)。
第三章 倉庫管理系統(tǒng)分析
3.1 開發(fā)系統(tǒng)的目的
開發(fā)倉庫管理系統(tǒng),主要為減輕倉庫管理人員的負擔,使貨物的存入記錄與取出記錄相對完善,便于貨物的增加與減少,降低出錯率,使管理更加合理、科學,也為經營者節(jié)省開支。本系統(tǒng)完面考慮了倉庫在管理中要解決的所有需求,最終向用戶提供一套方便可行的系統(tǒng),該系統(tǒng)具備以下特征:配置必要的數(shù)據庫和應用服務程序,提供查詢、統(tǒng)計貨物的種類、數(shù)量及所屬公司等所有信息的功能,操作人員使用的界面要清晰、美觀,布局合理,內容盡量簡單明了,提供的信息詳細全面??蛻舳顺绦蛞蟀踩愿?,可靠性高。
3.2 需求分析
市場經濟的一個重要特征,就是生產的相對過剩和產品的相對過剩。它決定了這是一個買方市場。對企業(yè)來說,庫存的增加或積壓,無論是原材料、半成品或制成品,都意味著企業(yè)運作處于一種不良的狀態(tài),都是一種直接的或潛在的損失。大量的庫存擠占了企業(yè)的有限資金,使得資金流速減緩,現(xiàn)金流發(fā)生困難,甚至導致資金緊張,影響企業(yè)的正常運作。此外,大量的庫存增加了保管與倉儲的壓力,占用了相當?shù)娜肆臀锪?,使得企業(yè)負擔加重。凡此種種,一直困擾著企業(yè)的生產經營管理活動,影響企業(yè)經濟效益的實現(xiàn)。顯而易見,切實而有效地控制庫存,是擺在眾多企業(yè)面前的當務之急,也是緩解企業(yè)經濟壓力、減負增效的重要途徑。
需求分析是軟件定義時期的最后一個階段,它的基本任務是準確地回答“系統(tǒng)必須做什么”這個問題,是對目標系統(tǒng)提出完整、準確、清晰、具體的要求。需求分析的結果是系統(tǒng)開發(fā)的基礎,關系到工程的成敗和軟件產品的質量。因此,必須用行之有效的方法對軟件需求進行嚴格的審查驗證。
軟件需求分析過程是整個系統(tǒng)開發(fā)的重要階段,分析的成功與否,決定著整個系統(tǒng)功能的完善性以及穩(wěn)定性。在該階段分析人員需要確定整個產品的功能要求,并將提供一種可轉化為數(shù)據設計、結構設計和過程設計的數(shù)據與功能表示。在軟件完成后,需求分析階段研究的對象是軟件項目的用戶要求。
3.3 可行性分析
可行性研究的目的就是用最小的代價在盡可能短的時間內確定問題是否能夠解決。要達到這個目的,必須分析幾種主要的可能解法的利弊,從而判斷原定的系統(tǒng)規(guī)模和目標是 的效益是否達到值得投資開發(fā)這個系統(tǒng)的程度。一般來說,可行性分析應從經濟可行性、技術可行性、經濟可行性、操作可行性、社會可行性等方面進行研究。本系統(tǒng)的可行性分析如下:
3.3.1 技術可行性
隨著國內軟件開發(fā)的日益發(fā)展壯大,各種中小企事業(yè)單位已具備獨立開發(fā)各種類型的軟件的能力,能夠滿足不同行業(yè)的特別的需求,現(xiàn)在,市場上可以選購的應用開發(fā)產品很多,流行的也有數(shù)十種。此外,從開發(fā)人員的水平考慮,作為計算機科學與技術專業(yè)畢業(yè)的學生,大學四年所積累的專業(yè)知識使我們從一定程度上具備了開發(fā)一個小型系統(tǒng)的能力,而且學?,F(xiàn)有的計算機設備也完全能夠滿足開發(fā)的需要。本系統(tǒng)主要管理的是貨物的入庫,出庫,查詢相關的一些信息等,采用C#和Microsoft Visual Studio作為前臺用戶界面的開發(fā)語言和工具,而后臺的數(shù)據庫采用微軟的SQL Server 2005。由于主要采用數(shù)據庫來進行管理,實現(xiàn)起來比較簡單,從技術上來說是完全可行的。
3.3.2 經濟可行性
對于整個系統(tǒng)而言,在系統(tǒng)未運行之前,初期投資比較大,花費相當而言比較多。各部門必須配置電腦、服務器、打印機、傳真機及相關的網絡設備,但是在整個系統(tǒng)投入運行之后,將會給該企業(yè)帶來前所未有的方便和快捷,減少不必要的中間環(huán)節(jié)以及不必要的開支,而且可以給其帶來更大的利潤。總之,這個系統(tǒng)的經濟效益遠遠大于開發(fā)成本,而同時又減少了數(shù)據的流通環(huán)節(jié),不必要花費那么多的時間,也就是說最重要的就是提高了效率,而又保證了各項數(shù)據的準確性,也避免了工作人員的流動造成的收據丟失等問題,適應了當前的發(fā)展形勢。
3.3.3 管理可行性
傳統(tǒng)的庫存管理系統(tǒng),一般有兩種方式:一是手工管理,這種方式應用最傳統(tǒng)的“筆紙操作系統(tǒng)”,將庫存的貨物信息、銷售信息、廠商信息管理及單據管理等均以純手工的形式進行,將信息以表格文件的表現(xiàn)形式記錄在紙上,再進行統(tǒng)一保存。這種方式雖然在簡單信息查詢時會有一定的方便,但是存在著更多的不便:信息保存時間和條件很受限制、容易被損壞、信息查詢不便、信息傳達容易造成失誤等。另一種常見的信息管理方法是應用管理系統(tǒng),本系統(tǒng)就是一款做的相對到位的庫存管理系統(tǒng),隨著時代的發(fā)展,人員素質已逐步提高,庫存管理人員已經有豐富的信息管理經驗,不論是對于電腦系統(tǒng)的基本操作還是對于系統(tǒng)的維護都有了一定的基礎,同時還可以配置專業(yè)的電腦維護人員來維護電腦不必擔心電腦故障問題。
3.3.4 社會可行性
該系統(tǒng)是作為畢業(yè)設計,不會對社會造成嚴重影響,也不用考慮到版權、法律等社會因素,所以在社會方面也是可行的。
3.4系統(tǒng)功能描述及系統(tǒng)安全性
一、庫存管理系統(tǒng)是一套對貨品入庫、出庫、庫存進行全面管理的系統(tǒng),在設計該系統(tǒng)時,應盡可能便于用戶管理和操作。系統(tǒng)在實現(xiàn)上應該具有如下功能:
(1)系統(tǒng)要求用戶必須輸入正確的用戶名和密碼才能進入系統(tǒng)。
(2)系統(tǒng)能實現(xiàn)貨物的入,出庫功能。
(3)系統(tǒng)提供查詢現(xiàn)在庫存的情況,及入庫、出庫和貨物年統(tǒng)計等的記錄。
(4)系統(tǒng)提供管理員設置倉庫信息和修改貨物信息等。
(5)系統(tǒng)提供管理員增加、刪除、修改用戶賬戶的功能。
二、由于庫存管理系統(tǒng)包含比較重要的信息,因此,在系統(tǒng)設計時除了注重用戶的需求,還要保證系統(tǒng)的安全性和一致性,該系統(tǒng)中管理權限上應當進行嚴格控制,體現(xiàn)如下:
(1)安全性:本系統(tǒng)中共分為三類不同的用戶,分別具有不同的權限。要想對該庫存管理系統(tǒng)進行操作就應當具有某些操作權限,沒有權限的用戶將不能通過任何渠道來登錄該系統(tǒng),查看該系統(tǒng)的任何信息和數(shù)據,以確保系統(tǒng)的嚴密性和安全性,系統(tǒng)用戶分為管理員用戶和普通用戶,管理員用戶可對普通用戶信息進行增、刪、改,普通用戶則只能查詢。在具體實現(xiàn)時還應為系統(tǒng)管理員和普通用戶設定不同的操作權限,系統(tǒng)管理員應當可以操作系統(tǒng)的所有模塊,普通用戶對于貨物管理和基本檔案管理模塊是無權使用的。
(2)一致性:系統(tǒng)的數(shù)據要保證一致性、準確性,當某一數(shù)據庫中記錄發(fā)生改變時,與之相關聯(lián)的數(shù)據庫也隨之變化。
3.5 系統(tǒng)流程圖
本系統(tǒng)流程圖如圖3-1所示。
圖3-1 系統(tǒng)流程圖
第四章 倉庫管理系統(tǒng)數(shù)據庫分析
4.1 數(shù)據庫介紹
數(shù)據庫在一個信息管理系統(tǒng)中占有非常重要的地位,數(shù)據庫結構設計的好壞將直接對應用系統(tǒng)的效率以及實現(xiàn)的效果產生影響。合理的數(shù)據庫結構設計可以提高數(shù)據存儲的效率,保證數(shù)據的完整和一致。同時,合理的數(shù)據庫結構也將有利于程序的實現(xiàn)。設計數(shù)據庫時應該首先充分了解用戶各個方面的需求,包括現(xiàn)有的以及將來可能增加的需求。
數(shù)據庫設計是在既定(本系統(tǒng)使用SQL Server)的數(shù)據庫管理系統(tǒng)基礎之上建立數(shù)據庫的過程。其過程是將現(xiàn)實存在的數(shù)據及其應用處理關系進行抽象,從而形成數(shù)據庫結構。數(shù)據庫是數(shù)據庫應用程序的核心,數(shù)據庫設計是建立一個應用程序最重要的一步。一個好的數(shù)據庫結構和文件設計可以使系統(tǒng)在已有的條件下具有處理速度快,占用存儲空間少,操作處理過程簡單,查找容易,系統(tǒng)開銷和費用低等特點。具體實現(xiàn)時,應首先明確用戶對數(shù)據的需求,在此基礎上,建立數(shù)據庫的概念模型,概念模型主要是用來反映用戶的現(xiàn)實環(huán)境和需求,它獨立于具體的數(shù)據庫管理系統(tǒng),并且與數(shù)據庫怎樣實現(xiàn)無關,建立概念模型的主要工具為實體關系(E-R)圖,在建立數(shù)據庫概念模型之后,要真正實現(xiàn)與數(shù)據庫管理系統(tǒng)的結合,即能夠由既定的數(shù)據庫管理系統(tǒng)所支持,還必須進行邏輯結構的設計,在邏輯設計階段,主要完成建立數(shù)據庫的邏輯模型,并解決數(shù)據的完整性、一致性、安全性和有效性等問題;最后一個階段是數(shù)據庫的物理結構設計,其任務是為系統(tǒng)邏輯結構模型確定合理的存儲結構、存取方法、以及數(shù)據表示和數(shù)據存儲空間分配等內容,從而得到具體的數(shù)據庫物理結構。
數(shù)據庫由DBMS(數(shù)據庫管理系統(tǒng))處理,DBMS則由開發(fā)人員和用戶通過應用程序直接或間接地使用。它主要包括四個要素:用戶數(shù)據、元數(shù)據、索引和應用元數(shù)據。
4.1.1 用戶數(shù)據
目前,大多數(shù)主流數(shù)據庫管理系統(tǒng)把用戶數(shù)據表示為關系。現(xiàn)在把關系看作數(shù)據表,表的列包含域或屬性,表的行包含對應業(yè)務環(huán)境中的實體的記錄。并非所有的關系都同樣符合要求,有些關系比其它關系更結構化一些。
(1)元數(shù)據
數(shù)據庫是自描述的,這就意味著它自身包含了它的結構的描述,這種結構的描述稱作元數(shù)據。因為DBMS產品是用來存儲和操縱表的,所以大多數(shù)產品把元數(shù)據以表的形式存儲,有時稱作系統(tǒng)表。這些系統(tǒng)表存儲了數(shù)據庫中表的情況,指出每一個表中有多少列,那一列是主關鍵字,每一列的數(shù)據類型的描述,它也存儲索引、關鍵字、規(guī)則和數(shù)據庫結構的其他部分。
在表中存儲元數(shù)據不僅對DBMS是有效的,對用戶也是方便的,因為他們可以使用與查詢用戶數(shù)據同樣的查詢工具來查詢元數(shù)據。
(2)索引
第三種類型的數(shù)據改進了數(shù)據庫的性能和可訪問性,這種數(shù)據經常稱作開銷數(shù)據,盡管有時也采用其他類型的數(shù)據結構,如鏈表,但它主要還是索引。索引可以用來排序和快速訪問數(shù)據。
(3)應用元數(shù)據
存儲在數(shù)據庫中的第四種數(shù)據是應用元數(shù)據,它用來存儲用戶窗體、報表、查詢和其他形式的查詢組件。并非所有的DBMS都支持應用組件,支持組件的DBMS也不一定把全部組件的結構作為應用元數(shù)據存儲在數(shù)據庫中。然而,大多數(shù)現(xiàn)代的DBMS產品存儲這種數(shù)據作為數(shù)據庫的一部分。一般來說,數(shù)據庫開發(fā)人員和用戶都不直接訪問應用元數(shù)據,相反,他們通過DBMS中的工具來處理這些數(shù)據。
4.2 創(chuàng)建數(shù)據庫
數(shù)據庫模式定義了數(shù)據庫的結構、表、關系、域和業(yè)務規(guī)則。數(shù)據庫模式是一種設計,數(shù)據庫的應用正是建立在此基礎上的。
域是一列可能擁有的值的集合。必須為每一個表的每一列確定域。除了數(shù)據的物理格式外,還需要確定是否有些域對表來說是唯一的。
數(shù)據庫模式的最后一個要素是業(yè)務規(guī)則,它是對需要反映在數(shù)據庫和數(shù)據庫應用程序中的業(yè)務活動的約束。業(yè)務規(guī)則是模式的一個重要部分,因為他們指定了無論什么數(shù)據變化到達DBMS引擎,允許的數(shù)據值必須滿足的約束。不管無效的數(shù)據變化請求是來自窗體的用戶、查詢、修改請求還是應用程序,DBMS都應該拒絕。遺憾的是,不同的DBMS產品用不同的方法實施業(yè)務規(guī)則。在某些情況下,DBMS產品不具備實施必要業(yè)務規(guī)則的能力,必須以代碼形式把它們編入應用程序。
第五章 倉庫管理系統(tǒng)數(shù)據庫設計
5.1 數(shù)據庫概念設計
本系統(tǒng)涉及的實體有:管理員,商品,倉庫,供應商。他們的實體及其屬性圖分別如下:
(1)貨物的實體及其屬性圖如圖5-1所示。
圖5-1 貨物實體及其屬性圖
(2)倉庫的實體及其屬性圖如5-2所示。
圖5-2 倉庫實體及其屬性圖
(3)管理員的實體及其屬性圖如圖5-3所示。
圖5-3 管理員的實體及其屬性圖
(4)供應商的實體及其屬性圖如圖5-4所示。
圖5-4 供應商實體及其屬性圖
5.2 倉庫管理系統(tǒng)E-R圖
本系統(tǒng)E-R圖如圖5-5所示。
圖5-5 系統(tǒng)E-R圖
5.3 倉庫管理系統(tǒng)數(shù)據表清單
表5-1 庫存管理系統(tǒng)數(shù)據表清單
數(shù)據表名稱
數(shù)據表用途
tb_BorrowGoods
保存貨物的借貨詳細信息
tb_CheckGoods
保存貨物的盤點詳細信息
tb_GoodsIn
保存貨物的入庫詳細信息
tb_GoodsInfo
保存貨物的基本信息
tb_GoodsOut
保存貨物的出庫詳細信息
tb_ProviderInfo
保存供應商的基本信息
tb_ReturnGoods
保存貨物的還貨詳細信息
tb_StorehouseInfo
保存?zhèn)}庫的基本信息
tb_UserInfo
保存用戶的基本信息
表5-1
5.4 數(shù)據庫邏輯結構設計
在上面的實體以及實體之間的關系的基礎上,形成數(shù)據庫中的表格以及各個表格之間的關系。
倉庫管理系統(tǒng)數(shù)據庫中的各個表格的設計結果如下面的幾個表格所示。每個表格表示在數(shù)據庫中的一個表。
(1)tb_BorrowGoods表如表5-2
列名
數(shù)據類型
長度
是否為主鍵
可否為空
GoodsBorrowID
int
YES
不能為空
GoodsName
varchar
50
NO
可為空
GoodsStorehouse
varchar
50
NO
可為空
GoodsProvider
varchar
50
NO
可為空
GoodsUnit
varchar
50
NO
可為空
BorrowNum
int
10
NO
可為空
BorrowDate
datetime
NO
可為空
BorrowPeople
varchar
50
NO
可為空
Handler
varchar
50
NO
可為空
Info
varchar
1000
NO
不能為空
表5-3
(2)tb_CheckGoods表如表5-3
列名
數(shù)據類型
長度
是否為主鍵
可否為空
GoodsCheckID
int
YES
不能為空
GoodsBorrowID
int
NO
可為空
GoodsName
varchar
50
NO
可為空
GoodsStorehouse
varchar
50
NO
可為空
GoodsProvider
varchar
50
NO
可為空
InNum
int
NO
可為空
OutNum
int
NO
可為空
NeedNum
varchar
100
NO
可為空
CheckPeople
varchar
50
NO
可為空
CheckDate
datetime
NO
可為空
Info
varchar
100
NO
不能為空
表5-3
(3)tb_GoodsIn表如表5-4
列名
數(shù)據類型
長度
是否為主鍵
可否為空
GoodsInID
int
10
YES
不能為空
GoodsName
varchar
50
NO
可為空
GoodsStorehouse
varchar
50
NO
可為空
GoodsProvider
varchar
50
NO
可為空
GoodsUnit
varchar
50
NO
可為空
GoodsNum
int
NO
可為空
GoodsPriceIn
money
NO
可為空
GoodsAllPrice
NO
可為空
GoodsInDate
datetime
NO
可為空
GoodsAdder
varchar
50
NO
可為空
GoodsInfo
text
NO
不能為空
表5-4
(4)tb_GoodsInfo表如表5-5
列名
數(shù)據類型
長度
是否為主鍵
可否為空
GoodsID
int
10
YES
不能為空
GoodsName
varchar
50
NO
不能為空
GoodsStorehouse
varchar
50
NO
可為空
GoodsProvider
varchar
50
NO
可為空
GoodsUnit
varchar
50
NO
可為空
GoodsNum
int
NO
可為空
GoodsPriceIn
money
NO
可為空
GoodsPriceOut
money
NO
可為空
GoodsInfo
text
NO
可為空
AddDate
datetime
NO
可為空
AddUser
varchar
50
NO
可為空
GoodsLeast
int
NO
可為空
GoodsMost
int
NO
可為空
表5-5
(5)tb_GoodsOut表如表5-6
列名
數(shù)據類型
長度
是否為主鍵
可否為空
GoodsOutID
int
YES
不能為空
GoodsName
varchar
50
NO
可為空
GoodsProvider
varchar
50
NO
可為空
GoodsUnit
varchar
50
NO
可為空
GoodsNum
int
NO
可為空
GoodsPriceOut
money
NO
可為空
GoodsAllPrice
NO
可為空
GoodsOutDate
datetime
NO
可為空
GoodsOutPeople
varchar
50
NO
可為空
GoodsOutCompany
varchar
50
NO
可為空
Handler
varchar
50
NO
可為空
GoodsInfo
text
NO
不能為空
表5-6
(6) tb_ProviderInfo表如表5-7
列名
數(shù)據類型
長度
是否為主鍵
可否為空
ProviderID
int
YES
不能為空
ProviderName
varchar
50
NO
不能為空
ProviderManager
varchar
50
NO
可為空
ProviderPhone
varchar
50
NO
可為空
ProviderFax
varchar
50
NO
可為空
ProviderEmail
varchar
10
NO
可為空
ProviderAddress
varchar
1000
NO
可為空
ProviderInfo
text
NO
可為空
AddDate
datetime
NO
可為空
AddUser
varchar
1000
NO
可為空
表5-7
(7)tb_ReturnGoods表如表5-8
列名
數(shù)據類型
長度
是否為主鍵
可否為空
ReturnGoodsID
int
YES
不能為空
GoodsName
varchar
50
NO
可為空
GoodsStorehouse
varchar
50
NO
可為空
GoodsProvider
varchar
50
NO
可為空
GoodsUnit
varchar
50
NO
可為空
ReturnNum
int
NO
可為空
ReturnDate
datetime
NO
可為空
ReturnPeople
varchar
50
NO
可為空
Handler
varchar
50
NO
可為空
Info
varchar
1000
NO
可為空
表5-8
(8) tb_StorehouseInfo表如表5-9
列名
數(shù)據類型
長度
是否為主鍵
可否為空
StorehouseID
int
YES
不能為空
StorehouseName
varchar
50
NO
可為空
StorehouseManager
varchar
50
NO
可為空
StorehousePhone
varchar
50
NO
可為空
StorehouseInfo
text
NO
可為空
AddDate
datetime
NO
可為空
AddUser
varchar
50
NO
可為空
表5-9
(9)tb_UserInfo表如表5-10
列名
數(shù)據類型
長度
是否為主鍵
可否為空
UserID
int
YES
不能為空
UserName
varchar
20
NO
不能為空
UserPwd
varchar
20
NO
不能為空
UserLevel
varchar
20
NO
不能為空
表5-10
第六章 界面展示及部分功能模塊主要代碼
6.1 模塊劃分
本系統(tǒng)模塊圖如圖6-1所示。
圖6-1 系統(tǒng)模塊圖
6.2 本程序登錄界面
出于對系統(tǒng)安全性的考慮,本系統(tǒng)設置了登錄模塊,只有持有效用戶名和密碼的用戶才能登錄該系統(tǒng)。此外,本系統(tǒng)設置了訪問權限,不同訪問權限的用戶進入系統(tǒng)后能完成不同的操作,普通用戶只具有查詢的權限,管理員用戶可對普通用戶的信息進行更改和入出庫等所有操作。具體的登錄頁面如圖6-2所示。
圖6-2系統(tǒng)登錄界面
主要實現(xiàn)代碼如下:
private void frmLogin_Load(object sender, EventArgs e)
{
dataoperate.ComboxDataBind("SELECT * FROM tb_UserInfo", "UserInfo", "UserName", cboxUserName);
}
private void cboxUserName_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
string strCMD = "SELECT UserLevel FROM tb_UserInfo WHERE UserName=" + cboxUserName.Text + "";
SqlDataReader dr = dbcontrol.SqlExecuteReader(strCMD);
if (dr.Read())
{
strUserLevel = dr["UserLevel"].ToString();
lblUserLevel.Text = strUserLevel;
}
dr.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void btnLogin_Click(object sender, EventArgs e)
{
int iResult = dataoperate.Login(cboxUserName.Text.Trim(), txtPwd.Text.Trim());
if (iResult == 0)
{
MessageBox.Show("用戶名或密碼錯誤!", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
if (iResult == 1)
{
strUserName = cboxUserName.Text.Trim();
strUserPwd = txtPwd.Text.Trim();
frmMain frm = new frmMain();
frm.Show();
this.Hide();
}
}
6.3 本程序運行后的效果
當使用正確的用戶名和密碼登陸系統(tǒng)以后就進入系統(tǒng)的主界面,在系統(tǒng)的主界面中可以選擇你要進入的系統(tǒng)模塊,在系統(tǒng)的下面顯示了你登陸的用戶名,用戶權限以及登錄時間等。系統(tǒng)主界面如圖6-3所示。
圖6-3 系統(tǒng)主界面
6.4 選擇主窗體
選擇主窗體上的[貨物管理]或貨物管理頁面上的按鈕可以進入入庫管理、出庫管理、借貨還貨和盤點管理功能窗體,如圖6-4所示。
圖6-4 貨物管理菜單界面
6.4.1 入庫管理窗體
入庫管理窗體中設置了入庫管理的基本信息,如圖6-5所示。
圖6-6 貨物入庫管理窗體
主要實現(xiàn)代碼如下:
private void frmGoodsIn_Load(object sender, EventArgs e)
{
ds = dbcontrol.GetDataSet("SELECT * FROM tb_GoodsIn", "GoodsIn");
if (ds.Tables[0].Rows.Count == 0)
{
btnDelete.Enabled = false;
}
else
{
btnDelete.Enabled = true;
dgvGoodsIn.DataSource = ds.Tables[0];
}
dataoperate.ComboxDataBind("SELECT ProviderName FROM tb_ProviderInfo",
"ProviderName", "ProviderName", cboxProvider);
dataoperate.ComboxDataBind("SELECT StorehouseName FROM tb_StorehouseInfo",
"StorehouseName", "StorehouseName", cboxStorehouse);
}
private void btnGoodsIn_Click(object sender, EventArgs e)
{
if (txtGoodsName.Text.Trim() == "")
{
MessageBox.Show("貨物名稱不能為空!", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else if (txtGoodsNum.Text.Trim() == "")
{
MessageBox.Show("貨物數(shù)量不能為空!", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else if (txtGoodsPriceIn.Text.Trim() == "")
{
MessageBox.Show("貨物進價不能為空不能為空!", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
try
{
dataoperate.GoodsIn(txtGoodsName.Text.Trim(),
cboxProvider.Text.Trim(), cboxStorehouse.Text.Trim(),
cboxGoodsUnit.Text.Trim(),
txtGoodsNum.Text.Trim(),
txtGoodsPriceIn.Text.Trim(),
DateTime.Now, txtGoodsAdder.Text.Trim(),
txtGoodsInfo.Text);
MessageBox.Show("入庫成功!", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Information);
frmGoodsIn_Load(sender, e);
Clear();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
6.4.2 出庫管理窗體
出庫管理窗體中設置了出庫管理的基本信息,如圖6-7所示。
圖6-8 貨物出庫管理窗體
主要實現(xiàn)代碼如下:
private void frmGoodsOut_Load(object sender, EventArgs e)
{
ds = dbcontrol.GetDataSet("SELECT * FROM tb_GoodsOut", "GoodsOut");
if (ds.Tables[0].Rows.Count == 0)
{
btnDelete.Enabled = false;
}
else
{
btnDelete.Enabled = true;
}
dgvGoodsOut.DataSource = ds.Tables[0];
dataoperate.ComboxDataBind("SELECT DISTINCT GoodsStorehouse FROM tb_GoodsInfo",
"Storehouse", "GoodsStorehouse", cboxStorehouse);
}
private void cboxStorehouse_SelectedIndexChanged(object sender, EventArgs e)
{
dataoperate.ComboxDataBind("SELECT DISTINCT GoodsProvider FROM tb_GoodsInfo WHERE GoodsStorehouse=" + cboxStorehouse.Text + "",
"ProviderInfo", "GoodsProvider", cboxProvider);
cboxGoodsName.Text = "";
}
private void cboxProvider_SelectedIndexChanged(object sender, EventArgs e)
{
dataoperate.ComboxDataBind("SELECT GoodsName FROM tb_GoodsInfo WHERE GoodsStorehouse=" + cboxStorehouse.Text + " AND GoodsProvider=" + cboxProvider.Text + "",
"GoodsName", "GoodsName", cboxGoodsName);
}
private void cboxGoodsName_SelectedIndexChanged(object sender, EventArgs e)
{
SqlDataReader dr = dbcontrol.SqlExecuteReader("SELECT * FROM tb_GoodsInfo WHERE GoodsStorehouse=" + cboxStorehouse.Text + " AND GoodsProvider=" + cboxProvider.Text + " AND GoodsName=" + cboxGoodsName.Text + "");
if (dr.Read())
{
cboxGoodsUnit.Text = dr["GoodsUnit"].ToString();
txtNumNow.Text = dr["GoodsNum"].ToString();
txtPriceOut.Text = dr["GoodsPriceOut"].ToString();
}
dr.Close();
}
6.4.3 借貨管理窗體
借貨管理窗體中設置了借貨管理的基本信息,如圖6-9所
圖6-9 借貨管理窗體
主要實現(xiàn)代碼如下:
private void btnBorrow_Click(object sender, EventArgs e)
{
if (txtBorrowNum.Text.Trim() == "")
{
MessageBox.Show("數(shù)量不能為空!", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else if (errorNum.GetError(txtBorrowNum).Equals("數(shù)量格式不正確!"))
{
MessageBox.Show("格式有誤!", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
try
{
int iResult = da
展開閱讀全文