![藥品銷售管理系統(tǒng)_第1頁](http://file1.renrendoc.com/fileroot_temp2/2021-2/20/699c7c5d-04dc-4271-a81e-a8ae7fcf9acc/699c7c5d-04dc-4271-a81e-a8ae7fcf9acc1.gif)
![藥品銷售管理系統(tǒng)_第2頁](http://file1.renrendoc.com/fileroot_temp2/2021-2/20/699c7c5d-04dc-4271-a81e-a8ae7fcf9acc/699c7c5d-04dc-4271-a81e-a8ae7fcf9acc2.gif)
![藥品銷售管理系統(tǒng)_第3頁](http://file1.renrendoc.com/fileroot_temp2/2021-2/20/699c7c5d-04dc-4271-a81e-a8ae7fcf9acc/699c7c5d-04dc-4271-a81e-a8ae7fcf9acc3.gif)
![藥品銷售管理系統(tǒng)_第4頁](http://file1.renrendoc.com/fileroot_temp2/2021-2/20/699c7c5d-04dc-4271-a81e-a8ae7fcf9acc/699c7c5d-04dc-4271-a81e-a8ae7fcf9acc4.gif)
![藥品銷售管理系統(tǒng)_第5頁](http://file1.renrendoc.com/fileroot_temp2/2021-2/20/699c7c5d-04dc-4271-a81e-a8ae7fcf9acc/699c7c5d-04dc-4271-a81e-a8ae7fcf9acc5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、目 錄前 言3第一章 系統(tǒng)的可行性分析31.1 技術上的可行性31.2 經(jīng)濟上的可行性3第二章 需求分析42.1系統(tǒng)描述42.1.1實現(xiàn)目標42.1.2開發(fā)工具42.1.3運行環(huán)境42.2 藥品銷售公司的組織情況52.3各部門的業(yè)務活動情況62.4用戶對系統(tǒng)的要求72.5安全性與完整性要求72.6數(shù)據(jù)流圖(DFD)8第三章 概要設計與數(shù)據(jù)庫設計93.1確定系統(tǒng)的模塊93.2 E-R圖和數(shù)據(jù)字典113.3數(shù)據(jù)庫設計15第四章 應用程序的設計184.1窗體的創(chuàng)建184.2連接數(shù)據(jù)庫224.3設計中幾種常用的數(shù)據(jù)庫語句234.4程序設計中的關鍵技術244.4.1關于dataGrid控件的數(shù)據(jù)綁定24
2、4.4.2關于參數(shù)的使用244.4.3關于兩個窗體中的控件的數(shù)據(jù)連接244.4.4關于實現(xiàn)藥品的模糊查詢264.4.5關于實現(xiàn)ID號的自動生成264.4.6關于實現(xiàn)兩個dataTimePicker時間段間數(shù)據(jù)的查詢27第五章 總結27參考文獻28致 謝28基于C#.Net開發(fā)的藥品銷售管理系統(tǒng)陽 磊指導老師:段明秀( 吉首大學數(shù)學與計算機科學學院 湖南 吉首 )摘 要 :本文主要介紹了基于Microsoft Visual Studio .NET 2003平臺開發(fā)的藥品銷售管理系統(tǒng)。其中詳細介紹了系統(tǒng)開發(fā)的基本過程,并簡單介紹了Power Designer9.0數(shù)據(jù)庫建模的方法,WinForm(
3、窗體)的創(chuàng)建以及程序設計中的一些關鍵技術。在開發(fā)過程中嚴格遵循軟件工程的基本原理,主要應用了Power Designer 9.0進行數(shù)據(jù)庫建模與開發(fā),應用SQL Server 2000進行數(shù)據(jù)庫的創(chuàng)建與維護,采用了c#面向對象編程語言進行程序設計,實現(xiàn)了C/S結構的藥品銷售管理系統(tǒng)設計。系統(tǒng)主要實現(xiàn)了系統(tǒng)管理、藥品管理、信息管理、銷售管理、信息預警五大功能模塊。關鍵詞:Power Designer;數(shù)據(jù)字典;C#;SQLServer 2000;Microsoft Visual Studio.NETDrugs Sales Management System Based On C#.NetYang
4、 LeiTeacher:Duan Ming Xiu(College of Mathematics and Computer science of Jishou University Hunan Jishou )Abstract: This article mainly introduced drugs sales management system based on Microsoft Visual Studio.NET 2003 platform. In which described in detail the basic process of system development, an
5、d introduced in brief the Designer9.0 database modelling methods, WinFrom (window) in foundation as well as some key technologies in programming. In the development process strictly followed the basic principles of software engineering, mainly applied Power Designer9.0 to carry on the database model
6、ing and database development , using SQLServer2000 to establish and maintain the database , adopted the c# object-oriented programming language to carry on the programming, realized C/S structure drugs sales management system design. The System mainly realized five functional modules: systems manage
7、ment, pharmaceutical management, information management, sales management, early warning information. Key word: Power Designer;Data Dictionary; C#, SQLServer2000; Microsoft Visual Studio.NET前 言隨著我國市場經(jīng)濟的蓬勃發(fā)展和人們對醫(yī)藥產(chǎn)品需求的迅速增加,醫(yī)藥行業(yè)正處于一個高速發(fā)展的時期。行業(yè)的快速發(fā)展必然導致競爭的加劇,要想在激烈的市場競爭中謀求發(fā)展,客觀上要求企業(yè)必須加強內部管理,提高運營效率。另外,由于
8、醫(yī)藥產(chǎn)品種類繁多,銷售模式特殊,業(yè)務量大,單憑手工記帳已很難適應工作的需要。醫(yī)藥作為一個關系人們健康的特殊行業(yè),國家對醫(yī)藥行業(yè)又有一些不同與其他行業(yè)的管理政策,這些都加大了管理的難度。如何盡快建立和完善現(xiàn)代企業(yè)的信息化管理機制問題,已成為醫(yī)藥企業(yè)發(fā)展的關鍵所在。 目前市場上的藥品銷售軟件比較多,應用價值也挺高,但是大部分的重點都放在了藥品信息管理和員工信息管理方面,對于客戶,供貨商信息的管理做得都不完善,有的根本沒這部分內容。而這些信息也是很重要的,有利于公司上層高級管理人員從各個方面對公司狀況進行分析,管理和決策。因此,開發(fā)一個集處理藥品、客戶、供貨商信息于一體的,兼有員工管理的藥品銷售管理
9、系統(tǒng),是符合市場發(fā)展需要的。第一章 系統(tǒng)的可行性分析1.1 技術上的可行性根據(jù)系統(tǒng)目標要求分析,此設計完全可以通過Microsoft Visual Studio .NET 2003軟件作為開發(fā)工具來制作完成。Microsoft Visual Studio .NET 2003支持多種面向對象編程語言,而且編程過程都是可視化編程,操作起來比較靈活,只需要書寫關鍵的代碼就行了,而很大一部分代碼可以由軟件自己生成,既可以減少編程出錯的幾率,又節(jié)約了很多編程的時間。而后臺數(shù)據(jù)庫由SQL Server 2000來進行系統(tǒng)數(shù)據(jù)的管理,對于中小型藥品銷售管理系統(tǒng)而言,數(shù)據(jù)量還并不是非常大,SQL Server
10、 2000完全能夠滿足數(shù)據(jù)的各種處理要求。而以目前本人對Microsoft Visual Studio .NET 2003,SQL Server 2000,以及PowerDesigner9.0的了解,已經(jīng)具備了相關的開發(fā)知識,因此從技術上分析,要開發(fā)這個中小型的藥品銷售管理系統(tǒng)是可行的。1.2 經(jīng)濟上的可行性藥品銷售管理系統(tǒng)只是一個中小型的數(shù)據(jù)管理系統(tǒng),它的經(jīng)濟可行性可以從以下方面考慮:軟件資源:目前網(wǎng)絡上有很多供用戶免費下載的軟件,學校校園網(wǎng)的下載速度也非??焖伲钥梢詮木W(wǎng)上下載開發(fā)系統(tǒng)所需的各種軟件,或是去電腦城購買,花費個人完全可以承受。硬件資源:已經(jīng)擁有一臺配置完全能夠開發(fā)藥品銷售管
11、理系統(tǒng)的計算機。參與人員:開發(fā)這個系統(tǒng)的人員就是自己,不需要花費金額聘請專業(yè)人士。資源和時間:資源和時間方面相對都是比較充足的。學校的圖書館藏書很多,想找到自己需要的資料并不困難,再者可以從書店購買自己所需書籍。綜合以上多方面的考慮結果,開發(fā)一個中小型的藥品銷售管理系統(tǒng)在經(jīng)濟上是完全可行的。第二章 需求分析此系統(tǒng)的最終用戶為藥品銷售公司,根據(jù)從網(wǎng)上搜集有關藥品銷售的圖表資料、文字資料以及其他細節(jié)方面的信息,根據(jù)日常生活中的經(jīng)驗,根據(jù)所做的其它詢問和調查,可以得出以下一些重要信息:2.1系統(tǒng)描述2.1.1實現(xiàn)目標(1)此軟件系統(tǒng)的目標主要是實現(xiàn)兩個主要用途:a.實現(xiàn)藥品基本信息的處理,輔助各部門
12、工作人員工作并記錄一些需要保存的操作信息;b.為企業(yè)高層管理人員對公司狀況進行分析,管理和決策提供有效的幫助。(2)基本功能實現(xiàn)目標:a.對進出藥品進行記錄管理b.對庫存藥品進行查詢管理c.對經(jīng)營情況進行監(jiān)視,及各員工的績效記錄,分析d.對供貨商資料進行管理e.對客戶進行詳細資料記錄f.具有密碼安全管理機制,同時具備各級人員權限管理2.1.2開發(fā)工具Microsoft Office Visio 2003 :用于數(shù)據(jù)圖表的繪制PowerDesigner9.0 :用于數(shù)據(jù)庫的建模SQL Server 2000 :用于數(shù)據(jù)庫的建立,為前臺提供服務Microsoft Visual Studio .NE
13、T 2003 :用于前臺應用程序的編寫Adobe Photoshop 7.0.1 :輔助應用程序的界面設計2.1.3運行環(huán)境操作系統(tǒng):Windows XP/2000或更高版本的操作系統(tǒng) 內 存:64MB以上的內存,推薦使用128MB以上內存處 理 器:賽揚1.7或更高的處理器硬盤空間:需要至少20M硬盤空間2.2 藥品銷售公司的組織情況一個藥品銷售公司的主要構成分為兩個部分,一是物流部門,一是銷售部門,公司的所有日常工作都是圍繞著這兩大部門進行的。物流部門又設采購部門,倉儲部門,供應部門等小部門,為了支持這兩大部門的工作,還設置了為公司的日常管理而設置的行政部門等。銷售部門又分為業(yè)務部和財務部
14、。其中采購部門主要負責藥品的采購,倉儲部門主要負責藥品管理,包括藥品的基本信息記錄,藥品出入庫記錄等,供應部門主要負責將藥品供應給銷售部門。業(yè)務部門主要公司業(yè)務,財務部門主要負責收款以及公司的出納。行政部門則根據(jù)其相應的工作職責進行日常的工作,公司進行行政方面的管理,以保證公司的日常工作的正常進行和公司的后勤保障。藥品銷售企業(yè)的組織情況如圖2-1所示。圖2-1 組織結構圖2.3各部門的業(yè)務活動情況首先采購部門要根據(jù)公司的銷售情況的實際需要到各藥品生產(chǎn)廠家采購相關藥品,采購的時候需要制定相關的采購單,包括要采購的藥品名稱,數(shù)量,采購地點等。其次,倉儲部門采購的藥品進行入庫記載,并對藥品進行藥品信
15、息記錄,包括藥品編號、藥品名稱、藥品正式名、規(guī)格、單位、類型、類別、產(chǎn)地、批號、有效期、生產(chǎn)日期、批準文號、數(shù)量、進價、售價等。并定期對倉庫內過期藥品進行處理。再次,供應部門根據(jù)業(yè)務部門提供的定單,從倉儲部門提取藥品,并進行出庫記載。業(yè)務部門負責聯(lián)系客戶,拿到銷售定單以及處理客戶的退貨。財政部門定期對銷售情況進行財務核算,以及提供采購資金等其他財務管理。其主要業(yè)務流程圖如圖2-2所示。圖2-2 業(yè)務流程圖2.4用戶對系統(tǒng)的要求(1)信息要求:由于此系統(tǒng)的用戶可以是藥品銷售公司的管理人員以及各類員工,因此對系統(tǒng)的信息要求可分為以下幾個方面:a、 藥品信息 藥品基本信息就是指那些便于重復使用的信息
16、,如藥品名稱、規(guī)格、單位、包裝、批準文號、劑型、類型、類別等; 藥品輔助信息就是實際操作中對藥品的處理信息,如藥品批號,數(shù)量等。b、員工信息 首先是員工的基本信息,主要包括員工的姓名,性別,出生年月,家庭住址,聯(lián)系方式,員工的編碼,所在部門等; 對于相關操作,要記錄操作時間,操作人員等。c、 業(yè)務信息 包括客戶信息,供貨商信息,銷售記錄等; 對于銷售記錄要記錄銷售時間,業(yè)務員等; 對于退貨信息要記錄退貨時間,業(yè)務員等。d、 各種庫存信息 包括入庫記錄,出庫記錄,庫存量等。(2)處理要求:系統(tǒng)應當完成以下的信息處理:a、 存儲藥品信息,員工信息,業(yè)務信息,供相關人員查詢;b、對藥品信息進行及時的
17、更新和統(tǒng)計;c、對員工信息進行及時的更新和統(tǒng)計;d、對各種庫存信息的及時更新和統(tǒng)計以及相關的自動處理,系統(tǒng)應根據(jù)入庫出庫操作,自動得出新的庫存量,完成更新,并能隨時查詢庫存量,還能對藥品庫存數(shù)量不足,以及藥品報廢期限即將來臨做出預警,使管理人員做出相應的處理;e、 所有原始數(shù)據(jù)和統(tǒng)計數(shù)據(jù)進行相關分析,如藥品收支,藥品銷售狀況,藥品報廢信息等;f、 分析報告,各種單據(jù)進行打印,以供相關的使用。2.5安全性與完整性要求(1)安全性要求:a、 系統(tǒng)應設置訪問用戶的標識以鑒別是否是合法用戶,并要求合法用戶設置其密碼,保證用戶身份不被盜用;b、 系統(tǒng)應對不同的數(shù)據(jù)設置不同的訪問級別,限制訪問用戶可查詢和
18、處理數(shù)據(jù)的類別和內容;c、 系統(tǒng)應對不同用戶設置不同的權限,區(qū)分不同的用戶,如區(qū)分業(yè)務員(只能 查詢藥品信息,客戶信息,處理銷售信息),倉儲員(只能查詢倉庫庫存量, 藥品信息),系統(tǒng)管理員(可對系統(tǒng)進行日常維護,包括數(shù)據(jù)更新,權限設置 等,可查詢公司所有運作情況包括經(jīng)濟管理、行政管理等的數(shù)據(jù),以及各種 統(tǒng)計和分析結果等)。(2)完整性要求:a、各種信息記錄的完整性,信息記錄內容不能為空;b、各種數(shù)據(jù)間相互的聯(lián)系的正確性;c相同的數(shù)據(jù)在不同記錄中的一致性。2.6數(shù)據(jù)流圖(DFD)數(shù)據(jù)流圖是邏輯系統(tǒng)的圖形表示,即使不是專業(yè)的計算機技術人員也非常容易理解,它是一種極好的系統(tǒng)構造的表示方法。下面是系統(tǒng)
19、的數(shù)據(jù)流圖,它基本反映了整個系統(tǒng)的邏輯功能。系統(tǒng)頂層數(shù)據(jù)流圖如圖2-3所示。圖2-3系統(tǒng)頂層數(shù)據(jù)流圖系統(tǒng)0層數(shù)據(jù)流圖如圖2-4所示。 圖2-4系統(tǒng)0層數(shù)據(jù)流圖第三章 概要設計與數(shù)據(jù)庫設計3.1確定系統(tǒng)的模塊根據(jù)如上得到的用戶需求,可以將系統(tǒng)按照所完成的功能分成以下幾個子系統(tǒng):藥品管理子系統(tǒng)銷售管理子系統(tǒng)信息管理子系統(tǒng)信息預警子系統(tǒng) 系統(tǒng)管理子系統(tǒng)各子系統(tǒng)完成的功能如下:(1)藥品管理系統(tǒng)完成各類藥品信息的查詢,添加,修改,刪除操作;藥品入、出、存的查詢統(tǒng)計;輔助制定合理的藥品庫存水平和采購計劃,以最小的資金占用保證藥品的供應。(2)銷售管理系統(tǒng)完成銷售信息的錄入,查詢操作;完成退貨信息的記錄,
20、查詢操作(3)信息管理系統(tǒng)完成員工,客戶,供貨商信息的查詢完成員工,客戶,供貨商信息的管理(4)信息預警系統(tǒng)完成藥品報廢預警,藥品庫存不足預警,讓用戶能夠提前做出反應(5)系統(tǒng)管理系統(tǒng)登陸系統(tǒng)配置用戶權限修改密碼提供幫助信息系統(tǒng)功能模塊圖如圖3-1所示。圖3-1 系統(tǒng)功能模塊圖3.2-圖和數(shù)據(jù)字典根據(jù)上面的分析,可以得出E-R圖如圖3-2所示。 圖3-2 系統(tǒng)E-R圖數(shù)據(jù)字典(DD):藥品銷售管理系統(tǒng)各實體及聯(lián)系數(shù)據(jù)字典:包括數(shù)據(jù)流,數(shù)據(jù)文件和數(shù)據(jù)項。(1)數(shù)據(jù)流和數(shù)據(jù)文件藥品基本信息表=藥品編號(PK)+供貨單位編號(FK)+藥品名稱+藥品正式名+種類+規(guī)格+科目+單位+批準文號+數(shù)量+拼音
21、碼+售價等;藥品輔助信息表=批號(PK)+藥品編號(FK)+生產(chǎn)日期+有效期+進價+備注信息;員工基本信息表=員工代號(PK)+員工姓名+身份證號碼+員工性別+員工年齡+住址+電話號碼+所屬部門;客戶基本信息表=客戶編號(PK)+客戶單位名稱+客戶負責人+客戶地址+客戶電話號碼;供貨商基本信息表=供貨單位編號(PK)+供貨單位名稱+供貨負責人+供貨商電話號碼+供貨地址+主要產(chǎn)品;采購記錄表=采購編號(PK)+員工代號(FK)+采購日期;取貨記錄表=取貨編號(PK)+員工代號(FK)+取貨日期;銷售記錄表=銷售流水號(PK)+員工代號(FK)+客戶編號(FK)+銷售日期;退貨記錄表=退貨編號(P
22、K)+員工代號(FK)+客戶編號(FK)+退貨日期;購-藥聯(lián)系表=采購編號(PK)+藥品編號(PK)+采購數(shù)量;取-藥聯(lián)系表=取貨編號(PK)+藥品編號(PK)+取藥數(shù)量;銷-藥聯(lián)系表=銷售流水號(PK)+藥品編號(PK)+銷售數(shù)量;退-藥聯(lián)系表=退貨編號(PK)+藥品編號(PK)+退藥數(shù)量+退貨價格;用戶表=員工代號(FK)+用戶名+密碼+權限。(2)具體的數(shù)據(jù)表格表3-1藥品基本信息表名稱代碼數(shù)據(jù)類型可否為空說明藥品編號yaopinIDVariable char長度13位NOPK藥品名稱yaopinNameVariable char 長度20位NO藥品正式名yaopinZNameVaria
23、ble char 長度20位YES種類yaopinZLVariable 長度char 16位NO規(guī)格yaopinGGVariable char 長度12位NO科目yaopinKMVariable char 長度16位NO單位yaopinDWVariable char 長度8位NO批準文號yaopinWHVariable char 長度24位YES拼音碼yaopinPYVariable char 長度12位NO售價yaopinSJMoney長度為10,精度為4NO供貨單位編號gonghuoIDIntNOFK表3-2藥品輔助信息表名稱代碼數(shù)據(jù)類型可否為空說明批號yaopinPHVariable c
24、har 長度10位NOPK數(shù)量yaopinNUMIntNO生產(chǎn)日期yaopinSCQDateNO有效期yaopinYXQDateNO進價yaopinJJMoney長度為10,精度為4NO備注信息yaopinBZVariable char長度為100YES藥品編號yaopinIDVariable char長度13位NOFK表3-3員工基本信息表名稱代碼數(shù)據(jù)類型可否為空說明員工代號yuangongIDVariable char長度10位NOPK員工性別yuangongSexchar長度2位NO員工身份證yuangongSFZVariable char長度18位NO員工年齡yuangongAgeIn
25、tYES住址yuangongAdressVariable char長度40位YES電話號碼yuangongTELVariable char長度13位NO所屬部門yuangongBMVariable char長度18位NO員工姓名yuangongNameVariable char長度12位NO表3-4客戶基本信息表名稱代碼數(shù)據(jù)類型可否為空說明客戶編號kehuIDIntNOPK客戶單位名稱kehuMCVariable char長度40位NO客戶負責人kehuFZRVariable char長度16位NO客戶地址kehuAdressVariable char長度40位YES客戶電話號碼kehuTEL
26、Variable char長度13位NO表3-5供貨商基本信息表名稱代碼數(shù)據(jù)類型可否為空說明供貨單位編號gonghuoIDIntNOPK供貨單位名稱gonghuoMCVariable char長度40位NO供貨負責人gonghuoFZRVariable char長度16位NO供貨地址gonghuoAdressVariable char長度40位YES供貨商電話號碼gonghuoTELVariable char長度13位NO主要產(chǎn)品gonghuoCPVariable char長度60位YES表3-6采購記錄表名稱代碼數(shù)據(jù)類型可否為空說明采購編號caigouIDVariable char長度12位
27、NOPK采購日期caigouDateDateNO員工代號yuangongNameVariable char長度10位NOFK表3-7取貨記錄表名稱代碼數(shù)據(jù)類型可否為空說明取貨編號quhuoIDVariable char長度12位NOPK取貨日期quhuoDateDateNO員工代號yuangongNameVariable char長度10位NOFK表3-8銷售記錄表名稱代碼數(shù)據(jù)類型可否為空說明銷售流水號xiaoshouIDVariable char長度14位NOPK銷售日期xiaoshouDateDateNO員工代號yuangongNameVariable char長度10位NOFK客戶編號k
28、ehuIDIntNOFK表3-9退貨記錄表名稱代碼數(shù)據(jù)類型可否為空說明退貨編號tuihuoIDVariable char長度14位NOPK退貨日期tuihuoDateDateNO員工代號yuangongNameVariable char長度10位NOFK客戶編號kehuIDIntNOFK表3-10購-藥聯(lián)系表名稱代碼數(shù)據(jù)類型可否為空說明采購數(shù)量quyaoNumIntNO采購編號caigouIDVariable char長度12位NOPK,F(xiàn)K藥品編號yaopinIDVariable char長度13位NOPK,F(xiàn)K表3-11取-藥聯(lián)系表名稱代碼數(shù)據(jù)類型可否為空說明取藥數(shù)量quyaoNumInt
29、NO取貨編號quhuoIDVariable char長度12位NOPK,F(xiàn)K藥品編號yaopinIDVariable char長度13位NOPK,F(xiàn)K表3-12銷-藥聯(lián)系表名稱代碼數(shù)據(jù)類型可否為空說明銷售數(shù)量xiaoshouNumIntNO銷售流水號xiaoshouIDVariable char長度14位NOPK,F(xiàn)K藥品編號yaopinIDVariable char長度13位NOPK,F(xiàn)K表3-13退-藥聯(lián)系表名稱代碼數(shù)據(jù)類型可否為空說明退藥數(shù)量tuiyaoNumIntNO退藥價格tuiyaoJGMoney長度為10,精度為4NO退貨編號tuihuoIDVariable char長度14位N
30、OPK,F(xiàn)K藥品編號yaopinIDVariable char長度13位NOPK,F(xiàn)K表3-14用戶表名稱代碼數(shù)據(jù)類型可否為空說明用戶名userIDVariable char長度20位NOPK密碼PSWVariable char長度60位NO擁有權限QXVariable char長度16位NO員工代號yuangongIDVariable char長度10位NOFK3.3數(shù)據(jù)庫設計(1)數(shù)據(jù)庫建模數(shù)據(jù)庫建立的好壞直接影響系統(tǒng)的好壞,考慮到此系統(tǒng)實體間關系比較復雜,因此可以采用Sybase公司的PowerDesigner9.0進行數(shù)據(jù)庫建模,它比手工書寫SQL語句建立數(shù)據(jù)庫更直觀,更能理清實體間的
31、關系,而且不容易出錯。下面就介紹一下建模的全過程:首先需要建立一個概念數(shù)據(jù)模型(Conceptual Data Model),建模過程主要是要分析表與表之間的關系,特別是多對多的關系以及標定關系,強制關系,這是非常關鍵的一步,是建模的關鍵,必須仔細考慮。最后得出概念模型如圖3-3所示。圖3-3 數(shù)據(jù)庫概念模型然后根據(jù)概念模型生成一個物理數(shù)據(jù)模型(Physical Data Model),具體方法是選擇ToolsGenerate Physical Data Model,在DBMS中選擇Microsoft SQL Server2000就行了。生成的物理數(shù)據(jù)模型如圖3-4所示。 圖3-4數(shù)據(jù)庫物理模
32、型再在物理數(shù)據(jù)模型中添加中間四張多對多關系的表的相關屬性,選擇DatabaseGenerate Database,點擊確定就生成了.sql后綴名的數(shù)據(jù)文件。(2)數(shù)據(jù)庫生成先打開SQL Server 2000的企業(yè)管理器,選擇已經(jīng)建立起的新數(shù)據(jù)庫,然后打開SQL Server 2000的查詢分析器,導入剛剛生成的數(shù)據(jù)文件,再選擇執(zhí)行,在SQL Server 2000的相關數(shù)據(jù)庫中就建立起了所需要的表。生成的14張表如圖3-5所示。 圖3-5 SQLServer2000中生成的表第四章 應用程序的設計在數(shù)據(jù)庫建好以后,接下來的工作就是編寫代碼來實現(xiàn)需求中分析出來的功能,下面就詳細地介紹一下應用程
33、序的編寫過程。4.1窗體的創(chuàng)建因為此系統(tǒng)的最終用戶電腦水平普遍不高,因此系統(tǒng)必須實現(xiàn)以人機對話的方式運行,才能使用戶能夠很容易地理解并學會操作此軟件,而Windows窗體最能夠實現(xiàn)人機對話,因此首先應該建立一些能與用戶對話的窗體。用Microsoft Visual Studio .NET 2003建立Windows窗體是一件很容易的事,在文件菜單中選擇新建工程,然后就可以選擇C#下的Windows應用程序即可。(1)主窗體的創(chuàng)建平時使用的軟件如果有權限設置的話,一般都是先出現(xiàn)用戶登陸窗體,登陸成功才進入主界面,因此有些人會認為登陸窗體就是應用程序的主窗體,這樣做雖然也登入主界面,但是這樣設置的
34、話登入主界面后,不能將此登陸界面關閉,而為了安全性起見,一般都會在登陸以后將登陸窗體關閉??紤]到這一點,可以將主程序的入口點,也就是Main()函數(shù)設置到主窗體界面,只是在入口點內先顯示出主窗體,在登陸完成后就將登陸窗體關閉。核心代碼為: 主窗體:static void Main() DengLu dl=new DengLu();dl.ShowDialog();if(DengLu.Getflag=1)Application.Run(new MainForm();elsereturn;在考慮了安全性后,考慮到其它子模塊的調用,以及窗體的美觀實用性后,設計了主窗體界面如圖4-1所示。 圖4-1主窗
35、體界面(2)登陸窗體的創(chuàng)建登陸窗體不僅要考慮到安全性,還要將用戶登陸的一些信息保留起來,以免在它關閉的時候消失掉,因此需要設計幾個靜態(tài)屬性來傳遞這些有用的數(shù)據(jù):private static char flag=0; /用于判斷用戶權限,如果通過則變?yōu)?,初始為0private static string jibie=; /用于傳送用戶的級別public static string userId=; /用于傳送用戶名private SqlConnection con;public static char Getflaggetreturn flag;public static string Get
36、jibiegetreturn jibie;最終設計出了美觀實用的登陸界面如圖4-2所示。 圖4-2登陸窗體界面(3)其它功能模塊的窗體設計界面設計和主窗體的設計也差不多,只是所用到的窗體控件有所不同,有關窗體控件的使用,比較簡單,關鍵就在于對其屬性特點的理解,在這里就不再詳細介紹了,在后面有相關控件的特殊用法再做論述。由于系統(tǒng)設計的功能模塊比較多,在這里,僅列出主要功能模塊的界面。圖4-3供貨商信息管理界面圖4-4藥品信息管理界面圖4-5銷售錄入界面圖4-6藥品查詢界面4.2連接數(shù)據(jù)庫由于系統(tǒng)是與數(shù)據(jù)庫緊密相連的,在程序的編輯調試都少不了它,因此,在設計完成界面后,就應該首先為窗體創(chuàng)建與SQL
37、數(shù)據(jù)庫的連接,在Microsoft Visual Studio .NET 2003中,是用如下方法來實現(xiàn)連接的:首先,引入兩個基本的命名空間:using System.Data;using System.Data.SqlClient;然后,設置一個數(shù)據(jù)連接的參數(shù),并在主窗體登陸的時候建立一個數(shù)據(jù)連接:private SqlConnection con;private void DengLu_Load(object sender, System.EventArgs e) string link=server=(local);uid=sa;password=1982;database=MSMS;c
38、on=new SqlConnection(link);可以看出,創(chuàng)建連接主要是用到了System.Data.SqlClient中的SqlConnection方法。在創(chuàng)建連接后,就能夠在需要連接數(shù)據(jù)庫進行操作的控件代碼中,首先用con.Open()方法來打開數(shù)據(jù)庫的連接,而在調用完成后,可以用con.Close()方法來將打開的連接關閉,這樣的設計,可以實現(xiàn)只在需要訪問數(shù)據(jù)庫的時候才調用數(shù)據(jù)庫,這樣的設計,可以釋放出很大一部分內存空間,對于數(shù)據(jù)庫的安全性和代碼運行的速度都是有很大的提高。4.3設計中幾種常用的數(shù)據(jù)庫語句在軟件設計中,需要不斷地與數(shù)據(jù)庫打交道,而此系統(tǒng)更是屬于典型的信息管理系統(tǒng),重
39、點就在于與數(shù)據(jù)進行交互。因此,幾種基本的數(shù)據(jù)庫語句會經(jīng)常使用到:(1)最常用的就是查詢語句:select 屬性名 from 表名 where 查詢條件 order by 屬性名,其中order by是按一種排列方式,可以不寫;(2)插入語句:insert into 表名 values(屬性1,屬性2,);(3)更新語句:update 表名 set 屬性的賦值;(4)刪除語句:delete 表名 where 刪除條件。在實際應用中,要根據(jù)具體的情況運用這四種基本的數(shù)據(jù)庫語句來設計符合程序設計需要的復合型數(shù)據(jù)庫語句,對于跨表的復合查詢,要仔細地分析表間的關系,下面就是在程序中設計的一個比較復雜的數(shù)
40、據(jù)庫語句:select xiaoY.xiaoshouID as 銷售單號,yaopinSJ as 售價,xiaoshouNum as 銷售數(shù)量,xiaoshou.yuangongID as 制單員ID,yuangongName as 姓名,yuangongBM as 部門 from yaopin,xiaoY,xiaoshou,yuangong where xiaoshou.yuangongID=yuangong.yuangongID and yaopin.yaopinID=xiaoY.yaopinID and yaopin.yaopinID=+boBox1.Text+ and xiaoshou
41、.xiaoshouID=xiaoY.xiaoshouID and xiaoshouDate between +this.dateTimePicker3.Value.Subtract(tp)+ and +this.dateTimePicker4.Value+在這個語句中同時在yaopin,xiaoY,xiaoshou,yuangong四張表中進行查詢,因此在不同表中有共同屬性的要標定出來,如yaopin.yaopinID,xiaoY.yaopinID,其實是在不同的數(shù)據(jù)庫中起連接作用的同一屬性。as的作用是將表名的屬性轉換為中文,對于要顯示的數(shù)據(jù),可以方便用戶的查看,因為用戶肯定不會明白那些英文
42、代號的含義。通過SQL的事件探察器可以方便快速地寫出準確的數(shù)據(jù)庫語句,在此之后,任務就是要將數(shù)據(jù)庫語句運用到程序當中去,這個主要是通過System.Data.SqlClient中的SqlCommand來實現(xiàn)的,具體代碼如下:SqlCommand cmd=new SqlCommand(chaxun,con);cmd.ExecuteNonQuery();其中chaxun是設置的查詢語句參數(shù),ExecuteNonQuery()是SqlCommand的執(zhí)行方法,SqlCommand一共有4種執(zhí)行方法,還比較常用的有ExecuteScalar()方法和ExecuteReader()方法,都是執(zhí)行SQL語
43、句的方法,只是返回值不同,具體用法就不詳細介紹了。4.4程序設計中的關鍵技術4.4.1關于dataGrid控件的數(shù)據(jù)綁定dataGrid控件是一個非常常用的顯示數(shù)據(jù)的控件,它能夠顯示龐大的數(shù)據(jù),而且條理非常清晰,因此在設計中經(jīng)常需要用到此控件,此控件的數(shù)據(jù)綁定主要是用到數(shù)據(jù)適配器SqlDataAdapter和數(shù)據(jù)集DataSet,其具體用法如下:SqlCommand cmd=new SqlCommand(chaxun,con);cmd.ExecuteNonQuery();SqlDataAdapter da=new SqlDataAdapter(chaxun,con);DataSet ds=ne
44、w DataSet();da.Fill(ds,gonghuotable);this.dataGrid1.SetDataBinding(ds,gonghuotable);在有些地方,比如員工管理模塊中,不是要將數(shù)據(jù)綁定到dataGrid,而是要將數(shù)據(jù)綁定到textBox或comboBox中,那么就要采用如下方法:DataSet ds=new DataSet();da.Fill(ds,yuangongTable);this.textBox2.DataBindings.Clear();boBox1.DataBindings.Clear();this.textBox2.DataBindings.Add
45、(Text,ds,yuangongTable.yuangongName);boBox1.DataBindings.Add(Text,ds,yuangongTable.yuangongSex);其中Text是控件的屬性,ds是數(shù)據(jù)源,yuangongTable.yuangongName是數(shù)據(jù)源中對應的屬性名。4.4.2關于參數(shù)的使用在程序設計中,有時候需要用到textBox的值,這時候可以直接用textBox.Text來直接讀取,但出于安全性考慮,可以運用參數(shù)來定義一些關鍵部位的textBox的值,比如,在登陸窗體的設計中,就用到了參數(shù),代碼如下:string find=select yuang
46、ongID from quanxian where userID=userID and PSW=psw;SqlCommand cmd=new SqlCommand(find,con);SqlParameter user=new SqlParameter(userID,SqlDbType.VarChar,20);SqlParameter psw=new SqlParameter(psw,SqlDbType.VarChar,20);user.Value=this.textBox1.Text;psw.Value =this.textBox2.Text;cmd.Parameters.Add(user)
47、;cmd.Parameters.Add(psw);cmd.ExecuteNonQuery();其中參數(shù)的使用是先定義一個參數(shù),包括參數(shù)名,數(shù)據(jù)類型,長度,然后對它進行賦值,最后用Add()方法將它添加到SqlCommand命令就可以了。4.4.3關于兩個窗體中的控件的數(shù)據(jù)連接在程序設計中,有幾個窗體實現(xiàn)了查詢,還有幾個窗體實現(xiàn)了數(shù)據(jù)的管理,要是能在管理中直接調用查詢功能,將需要是數(shù)據(jù)找出來,然后添加到管理窗體相應的控件中,這樣既能便于用戶查找數(shù)據(jù),也有利于數(shù)據(jù)輸入的準確快捷。出于這些考慮,在查閱書籍后,找出了一個可行的辦法:首先,在查詢窗體的dataGrid中設置一個public void s
48、etDataGridReadOnly() this.dataGrid1.ReadOnly=true;方法,作用是設置dataGrid的屬性為只讀,再為dataGrid添加一個鼠標雙擊事件: private void dataGrid1_DoubleClick(object sender, System.EventArgs e) if (this.dataGrid1.ReadOnly = true) int RowNum=this.dataGrid1.CurrentCell.RowNumber;string kehuID=this.dataGrid1RowNum,0.ToString().Tri
49、m();XiaoShouLuRu.khID=kehuID;this.Close();然后在調用窗體中使用comboBox,為其添加一個dropDown事件:public static string khID=; private void comboBox1_DropDown(object sender, System.EventArgs e)KeHuChaXun kh=new KeHuChaXun();kh.setDataGridReadOnly();kh.ShowDialog();boBox1.DataBindings.Clear();boBox1.IntegralHeight=false;
50、boBox1.DroppedDown=false;boBox1.Text=khID;boBox1.IntegralHeight=true;con.Open();string chaxun=select kehuMC from kehu where kehuID=+boBox1.Text+;SqlCommand cmd=new SqlCommand(chaxun,con);this.textBox5.Text=Convert.ToString(cmd.ExecuteScalar();con.Close();這樣在調用窗體中下拉comboBox時就調用了查詢窗體,雙擊查詢數(shù)據(jù)后就將所需數(shù)據(jù)返回給了
51、調用窗體。4.4.4關于實現(xiàn)藥品的模糊查詢藥品種類繁多,名稱大多也比較復雜,不容易記憶,而且很容易造成輸入錯誤導致藥品在庫卻查詢不到的局面,因此在藥品基本設計表中,設立了拼音碼這個屬性,就是為了實現(xiàn)藥品的模糊查詢,幫助用戶快速地進行藥品的查詢。具體實現(xiàn)是采用了數(shù)據(jù)庫語言的like關鍵字和%號匹配符來實現(xiàn)的,代碼如下:select yaopinID as 藥品ID,yaopinPY as 簡拼,yaopinName as 藥品名稱,yaopinZname as 藥品正式名, yaopin.gonghuoID as 供貨ID,gonghuoMC as 產(chǎn)地,yaopinSJ as 售價,yaopi
52、nZL as 種類,yaopinKM as 科目,yaopinGG as 規(guī)格,yaopinDW as 單位,yaopinWH as 批準文號 from yaopin,gonghuo where yaopin.gonghuoID=gonghuo.gonghuoID and yaopinPY like %+this.textBox1.Text+% order by yaopin.gonghuoID除了實現(xiàn)了藥品的模糊查詢,在藥品查詢模塊中還設置了全部庫存查詢,按種類查詢,按供貨商查詢,按科目查詢,按庫存量查詢,讓用戶能根據(jù)自己的實際需要快速地查詢所需的藥品信息,并設置了藥品庫存量查詢,方便用戶隨時查詢藥品的庫存數(shù)目。4.4.5關于實現(xiàn)ID號的自動生成在程序中,需要產(chǎn)生員工ID號,銷售流水號,退貨編號,客戶編號,供貨商編號,如果這個由用戶來生成的話,可能會產(chǎn)生與已存在號碼相沖突的情況,因此,可以設計自動產(chǎn)生編號的方法,主要用到了System.Random()方法,下面就介紹一下銷售流水號的產(chǎn)生:for(int i=0;i10000;i+)Random rnd=new Random();String random=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- CH-5兒童各年齡期保健課件
- 2025年全球及中國纜索式起重機行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025年全球及中國高壓有載分接開關行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025年全球及中國可見光波段高光譜成像(HSI)設備行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025-2030全球墻磨機開關行業(yè)調研及趨勢分析報告
- 2025年全球及中國打印貼標機和耗材行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025-2030全球工業(yè)PTFE密封件行業(yè)調研及趨勢分析報告
- 2025-2030全球超高頻RFID一次性腕帶行業(yè)調研及趨勢分析報告
- 2025-2030全球便攜手持式光譜儀行業(yè)調研及趨勢分析報告
- 2025-2030全球除濕白帶丸行業(yè)調研及趨勢分析報告
- 2025民政局離婚協(xié)議書范本(民政局官方)4篇
- 2024年03月四川農村商業(yè)聯(lián)合銀行信息科技部2024年校園招考300名工作人員筆試歷年參考題庫附帶答案詳解
- 小學一年級數(shù)學上冊口算練習題總匯
- ISO17025經(jīng)典培訓教材
- 餐飲行業(yè)品牌介紹商務宣傳PPT模板
- 東南大學宣講介紹
- 2023年菏澤醫(yī)學??茖W校單招綜合素質題庫及答案解析
- 九年級下冊-2023年中考歷史總復習知識點速查速記(部編版)
- GB/T 18103-2022實木復合地板
- 小學四年級語文閱讀理解專項訓練
- 輔導班合伙人合同范本(2篇)
評論
0/150
提交評論