




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.目 錄1 緒論11.1 課題研究背景11.2 系統(tǒng)開(kāi)發(fā)的意義12 需求分析12.1 系統(tǒng)功能分析12.2 系統(tǒng)用例分析22.3 系統(tǒng)E-R圖32.4運(yùn)行環(huán)境32.5 可行性分析42.5.1技術(shù)可行性42.5.2 經(jīng)濟(jì)可行性43 系統(tǒng)概要設(shè)計(jì)43.1 功能模塊設(shè)計(jì)43.2 概念結(jié)構(gòu)設(shè)計(jì)53.2.1 實(shí)體屬性圖53.3 數(shù)據(jù)表設(shè)計(jì)94 系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)134.1 功能模塊的具體實(shí)現(xiàn)134.1.1登錄模塊134.1.2 系統(tǒng)主界面設(shè)計(jì)154.1.3 用戶管理模塊164.1.4 修改密碼模塊184.1.5 藥品信息管理模塊204.1.6 入庫(kù)登記模塊224.1.7 銷售登記模塊254.1.8藥品退
2、貨模塊274.1.9藥品報(bào)損模塊284.1.10藥品調(diào)價(jià)模塊294.1.11 報(bào)表中心界面304.1.12系統(tǒng)部分公有類或方法的設(shè)計(jì)與實(shí)現(xiàn)345系統(tǒng)測(cè)試355.1測(cè)試目標(biāo)355.2測(cè)試大綱355.3測(cè)試結(jié)果及截圖366 總結(jié)和致謝466.1 總結(jié)466.2 致謝467 參考文獻(xiàn)47藥品管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)專業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 學(xué) 號(hào):姓名: 指導(dǎo)老師:【內(nèi)容摘要】社會(huì)在進(jìn)步,隨之而來(lái)的還有各種疾病,隨著人們生活水平的不斷提高,人們?cè)絹?lái)越重視自己的健康,這加速了醫(yī)藥行業(yè)的發(fā)展。在現(xiàn)在“看病難,看病貴”的社會(huì)背景下,很多工薪一族在面對(duì)一些小疾病的時(shí)候往往選擇到附近的藥店購(gòu)買非處方藥進(jìn)行治療。在這
3、種情況下,中小型便民藥店越來(lái)越多,而中小型藥店普遍存在藥品管理混亂等問(wèn)題,容易造成藥品積壓甚至失效,導(dǎo)致不必要的損失。本藥品管理系統(tǒng)主要圍繞藥品管理來(lái)操作,根據(jù)需求,系統(tǒng)主要實(shí)現(xiàn)藥品庫(kù)存管理、銷售管理兩大業(yè)務(wù),為用戶提供任意時(shí)間段的藥品庫(kù)存查詢,設(shè)置藥品庫(kù)存下限查詢。同時(shí)還向用戶提供了庫(kù)存報(bào)表、銷售報(bào)表、即將過(guò)期藥品報(bào)表、利潤(rùn)報(bào)表等豐富的報(bào)表。系統(tǒng)使用Microsoft公司的Visual Studio 2010平臺(tái),采用 C#語(yǔ)言,結(jié)合SQL Server 2008數(shù)據(jù)庫(kù)進(jìn)行設(shè)計(jì)與實(shí)現(xiàn)。系統(tǒng)經(jīng)過(guò)測(cè)試基本達(dá)到了預(yù)期的目標(biāo),操作界面較友好,操作方法簡(jiǎn)單,可以用于中小型藥店的藥品管理?!娟P(guān)鍵詞】 中
4、小型藥店;藥品管理;C# .;1 緒論1.1 課題研究背景藥品管理系統(tǒng)可以為藥店管理者提供充足的信息和快捷的查詢手段。但一直以來(lái)很多中小型藥店都使用傳統(tǒng)手工的方式進(jìn)行管理,這種管理方式存在著許多缺點(diǎn),如效率低、數(shù)據(jù)易丟失等,容易造成藥品積壓甚至失效。另外時(shí)間一長(zhǎng),將產(chǎn)生大量的紙質(zhì)版數(shù)據(jù),這對(duì)于查詢、修改都造成很大不便。使用計(jì)算機(jī)對(duì)藥品進(jìn)行管理相對(duì)于手工管理而言,具有很多優(yōu)點(diǎn)。例如:查詢方便快捷、數(shù)據(jù)存儲(chǔ)量大等。這些優(yōu)點(diǎn)能夠極大地提高了藥品管理的效率,也能更好地保證藥品的效期安全,是對(duì)消費(fèi)者負(fù)責(zé)的態(tài)度體現(xiàn)。因此,開(kāi)發(fā)一套適用于中小型藥店的藥品管理系統(tǒng)管理軟件很有必要。1.2 系統(tǒng)開(kāi)發(fā)的意義中國(guó)現(xiàn)
5、在的醫(yī)藥體系還不成熟,藥品管理系統(tǒng)也不成熟。在國(guó)內(nèi)有很多軟件公司開(kāi)發(fā)藥品管理系統(tǒng),基本采用進(jìn)銷存模式,系統(tǒng)功能比較完善,但在安全、簡(jiǎn)捷、性能以及人性化設(shè)計(jì)方面還存在不足。2 需求分析2.1 系統(tǒng)功能分析藥店的正常運(yùn)轉(zhuǎn)貨源要得到保證,這就必須有著良好的進(jìn)貨入庫(kù)管理功能,同時(shí)為了藥品質(zhì)量的保證,以及在未知藥品銷量時(shí)可以保證藥店不至于積存大量的藥品,對(duì)一些積存的藥品進(jìn)行合理的退貨。作為藥店盈利機(jī)構(gòu),藥店的銷售是非常重要,同時(shí)要求透明化,藥店的入庫(kù)單、銷售單、退貨信息都必須合理的記錄統(tǒng)計(jì)。藥品的存貨是藥店進(jìn)行正常運(yùn)行的保證同時(shí)合理的庫(kù)存量更好的應(yīng)對(duì)某些藥品需求量的變化,同時(shí)記錄藥品出庫(kù)信息可以更好的反
6、應(yīng)藥品的銷售信息。在倉(cāng)庫(kù)中藥品的儲(chǔ)藏出現(xiàn)的損失,通過(guò)記錄的信息可以精準(zhǔn)核對(duì)藥品量的信息。同時(shí)在倉(cāng)庫(kù)儲(chǔ)存中應(yīng)設(shè)置藥品的庫(kù)存下限,以便及時(shí)反映藥品的信息,為藥品進(jìn)貨提供可靠依據(jù)。1藥品,是藥店的資源。藥品的管理直接影響藥店的經(jīng)營(yíng),藥品管理做得不好會(huì)引起藥品的混亂,容易導(dǎo)致藥品失效,造成損失。為了維護(hù)消費(fèi)者的利益和藥店本身的信譽(yù)以及給藥店創(chuàng)造更好的效益,本系統(tǒng)應(yīng)具有以下功能:1. 良好的人機(jī)界面。2. 藥品入庫(kù)及調(diào)價(jià)管理。3. 藥品銷售及退貨管理。4. 藥品報(bào)損管理。5. 完善的數(shù)據(jù)查詢。6. 豐富的報(bào)表。7. 數(shù)據(jù)導(dǎo)出到Excel、Word、PDF功能。2.2 系統(tǒng)用例分析根據(jù)系統(tǒng)功能分析,可以將
7、系統(tǒng)細(xì)分出藥品信息管理、藥店信息管理、修改密碼、入庫(kù)登記、藥品調(diào)價(jià)、銷售登記、藥品退貨、藥品效期查詢、藥品報(bào)損、收入統(tǒng)計(jì)、支出統(tǒng)計(jì)、利潤(rùn)統(tǒng)計(jì)以及用戶管理13個(gè)子模塊,管理員應(yīng)為藥店負(fù)責(zé)人,從藥品入庫(kù)到銷售以及中間的業(yè)務(wù),管理員都可以使用,收銀員可以使用部分功能,管理員用例圖如圖1所示,收銀員用例圖如圖2所示。圖1 管理員用例圖圖2 收銀員用例圖2.3 系統(tǒng)E-R圖圖3 系統(tǒng)E-R圖2.4運(yùn)行環(huán)境該系統(tǒng)采用了Client/Server模式軟件構(gòu)造技術(shù),頁(yè)面系統(tǒng)采用Visual Studio 2010開(kāi)發(fā),數(shù)據(jù)庫(kù)采用SQL Server2008作為數(shù)據(jù)庫(kù)系統(tǒng),系統(tǒng)平臺(tái)為Windows 7。1. M
8、icrosoft Visual Studio 2010集成化程度高,控件豐富,開(kāi)發(fā)人員可以直接將各種控件拖放到視圖設(shè)計(jì)器,由軟件自動(dòng)生成控件設(shè)計(jì)以及窗體布局的設(shè)計(jì)代碼,窗體視圖設(shè)計(jì)更加方便高效2. Microsoft SQL Server 2008能方便地建立數(shù)據(jù)庫(kù)對(duì)象,并且SQL Server 2008結(jié)合Visual Studio 2010和C#一起使用,能方便地對(duì)數(shù)據(jù)庫(kù)對(duì)象進(jìn)行數(shù)據(jù)操作。2.5 可行性分析2.5.1技術(shù)可行性1. 藥店管理的主線是藥品,藥品從入庫(kù)到出庫(kù)以及其它操作即從藥店流向消費(fèi)者的過(guò)程,中間不用經(jīng)過(guò)其他部門,沒(méi)有繁瑣的流程。加上到藥店的了解,對(duì)于藥品管理系統(tǒng)的管理流程和
9、管理內(nèi)容都易于掌握。2. 作為計(jì)算機(jī)專業(yè)的學(xué)生,在平時(shí)的課程設(shè)計(jì)的基礎(chǔ)上,加上自己的練習(xí)以及同學(xué)們的幫助,在系統(tǒng)實(shí)現(xiàn)上也是可行的。3. 計(jì)算機(jī)可以安裝本系統(tǒng)所需的開(kāi)發(fā)環(huán)境SQL Server 2008和Visual studio 2010。2.5.2 經(jīng)濟(jì)可行性1. 本系統(tǒng)主要面向中小型藥店,處理的數(shù)據(jù)量不是很大,屬于小型的系統(tǒng),只需要購(gòu)買打印機(jī)、電腦即可投入使用,成本低。2. 系統(tǒng)投入使用后可以很好地對(duì)藥品進(jìn)行管理,在給藥店創(chuàng)造更好的效益的同時(shí)有效避免藥品積壓甚至失效的問(wèn)題,減少藥店損失。3 系統(tǒng)概要設(shè)計(jì)3.1 功能模塊設(shè)計(jì)根據(jù)系統(tǒng)的需求分析可以將藥品管理系統(tǒng)分為如下幾個(gè)大模塊:登錄模塊基本
10、信息模塊、入庫(kù)管理模塊、銷售管理模塊,以及庫(kù)存管理模塊、利潤(rùn)統(tǒng)計(jì)模塊和關(guān)于我們模塊。整個(gè)系統(tǒng)以藥品的主線,入庫(kù)管理模塊是把藥品信息存入庫(kù)存表,其它藥品管理相關(guān)模塊是從庫(kù)存表取得數(shù)據(jù)進(jìn)行業(yè)務(wù)處理,系統(tǒng)模塊結(jié)構(gòu)圖如圖3所示。圖4 系統(tǒng)功能模塊結(jié)構(gòu)圖3.2 概念結(jié)構(gòu)設(shè)計(jì)3.2.1 實(shí)體屬性圖1. 藥品實(shí)體屬性圖,如圖5所示。藥品的屬性包括藥品的基本信息,如藥品編號(hào)、藥品名稱、拼音、藥品規(guī)格、計(jì)量單位、庫(kù)存低限等。其中藥品編號(hào)可以唯一標(biāo)識(shí)藥品。圖5 藥品實(shí)體屬性圖 2. 藥店實(shí)體屬性圖,如圖6所示。藥店實(shí)體包含藥店名稱、固定電話、手機(jī)、藥店地址4個(gè)基本屬性,作為藥店標(biāo)識(shí)并用于打印小票。圖6 藥店實(shí)體屬
11、性圖3. 藥品入庫(kù)單實(shí)體屬性圖,如圖7所示。 藥品與一般商品稍有不同,很多屬性都關(guān)系到藥品的安全,所以入庫(kù)單包含很多屬性,如入庫(kù)編號(hào)、拼音碼、藥品名稱、藥品規(guī)格、計(jì)量單位、批號(hào)、批準(zhǔn)文號(hào)、入庫(kù)單價(jià)、入庫(kù)數(shù)量、入庫(kù)總額、入庫(kù)時(shí)間、入庫(kù)單位、生產(chǎn)廠家、生產(chǎn)日期、失效日期、操作員、備注等17個(gè)基本屬性。其中入庫(kù)編號(hào)可唯一標(biāo)識(shí)藥品入庫(kù)信息。圖7 藥品入庫(kù)單實(shí)體屬性圖4. 藥品調(diào)價(jià)單實(shí)體屬性圖,如圖8所示。藥品調(diào)價(jià)單包含調(diào)價(jià)編號(hào)、入庫(kù)編號(hào)、拼音碼、藥品名稱、原單價(jià)、新單價(jià)、經(jīng)辦人、調(diào)價(jià)時(shí)間等基本屬性。圖8 藥品調(diào)價(jià)單實(shí)體屬性圖5. 藥品銷售單實(shí)體屬性圖,如圖9所示。藥品銷售單包含銷售編號(hào)、入庫(kù)編號(hào)、拼音
12、碼、藥品名稱、藥品規(guī)格、計(jì)量單位、生產(chǎn)廠家、銷售時(shí)間、銷售單價(jià)、銷售數(shù)量、銷售總額、操作員等基本屬性。圖9 藥品銷售單實(shí)體屬性圖6. 藥品退貨單實(shí)體屬性圖,如圖10所示。藥品退貨單包含退貨編號(hào)、入庫(kù)編號(hào)、拼音碼、藥品名稱、進(jìn)貨單位、進(jìn)貨單價(jià)、退貨原因、退貨時(shí)間、退貨數(shù)量、退貨總額、操作員等基本屬性。圖10 藥品退貨單實(shí)體屬性圖7. 藥品報(bào)損單實(shí)體屬性圖,如圖11所示。藥品報(bào)損單包含報(bào)損編號(hào)、入庫(kù)編號(hào)、拼音碼、藥品名稱、進(jìn)貨單價(jià)、報(bào)損原因、報(bào)損時(shí)間、報(bào)損數(shù)量、報(bào)損總額、操作員等基本屬性。圖11 藥品報(bào)損單實(shí)體屬性圖8. 用戶實(shí)體屬性圖,如圖12所示。用戶實(shí)體包含用戶編號(hào)、用戶名、密碼、用戶姓名、
13、是否管理員5個(gè)基本屬性。圖12 用戶實(shí)體屬性圖3.3 數(shù)據(jù)表設(shè)計(jì)本系統(tǒng)使用 SQL Server 2008作為后臺(tái)數(shù)據(jù)庫(kù),在 SQL Server 2008中創(chuàng)建基本表對(duì)象。表對(duì)象要根據(jù)邏輯設(shè)計(jì)階段設(shè)計(jì)的關(guān)系模式來(lái)創(chuàng)建。本系統(tǒng)創(chuàng)建的SQL數(shù)據(jù)庫(kù)名稱為DrugStore。包含以下9張表。1. Login(用戶信息表)用戶信息表用于用戶信息,該表的結(jié)構(gòu)如表1所示。表1用戶信息表字段名數(shù)據(jù)類型長(zhǎng)度備注說(shuō)明u_idint4Not null用戶編號(hào)(自動(dòng)編號(hào))usernamevarchar50主鍵用戶名pwvarchar50Not null密碼realnamevarchar50Not null用戶姓名a
14、dminvarchar50Not null是否管理員2. Store(藥店信息表)藥店信息表用于存儲(chǔ)藥店的信息,該表的結(jié)構(gòu)如表2所示。表2藥店信息表字段名數(shù)據(jù)類型長(zhǎng)度備注說(shuō)明storenamevarchar50Not null藥店名稱telvarchar50Not null固定電話mobilevarchar50手機(jī)addressvarchar50Not null藥店地址3. Drug(藥品信息表)藥品信息表用于藥品的基本信息,該表的結(jié)構(gòu)如表3所示。表3藥品信息表字段名數(shù)據(jù)類型長(zhǎng)度備注說(shuō)明idint4主鍵藥品編號(hào)(自動(dòng)編號(hào))pinyinmavarchar50Not null拼音碼drugname
15、varchar50Not null藥品名稱specvarchar50Not null藥品規(guī)格unitvarchar50Not null計(jì)量單位lowwarningint4Not null庫(kù)存低限4. Ruku(入庫(kù)信息表)入庫(kù)信息表用于存儲(chǔ)藥品進(jìn)貨入庫(kù)的各項(xiàng)信息,該表的結(jié)構(gòu)如表4所示。表4入庫(kù)信息表字段名數(shù)據(jù)類型長(zhǎng)度備注說(shuō)明IDvarchar20主鍵入庫(kù)編號(hào)(自動(dòng)編號(hào))pinyinmavarchar50Not null拼音碼drugnamevarchar50Not null藥品名稱pihaovarchar50Not null批號(hào)pizhunwenhaovarchar50Not null批準(zhǔn)文號(hào)
16、specvarchar50Not null藥品規(guī)格unitvarchar50Not null計(jì)量單位amountint4Not null進(jìn)貨數(shù)量inpricedecimal(18, 2)Not null進(jìn)貨單價(jià)allpricedecimal(18, 2)Not null進(jìn)貨總額in_timedatetimeNot null進(jìn)貨時(shí)間in_fromvarchar50Not null進(jìn)貨單位factoryvarchar50Not null生產(chǎn)廠家producedatedatetimeNot null生產(chǎn)日期usefuldatedatetimeNot null失效日期in_byvarchar50Not
17、 null操作員remarkvarchar50備注5. Kucun(庫(kù)存信息表)庫(kù)存信息表用于存儲(chǔ)藥品庫(kù)存的各項(xiàng)信息,該表的結(jié)構(gòu)如表5所示。表5庫(kù)存信息表字段名數(shù)據(jù)類型長(zhǎng)度備注說(shuō)明IDvarchar20主鍵入庫(kù)編號(hào)(自動(dòng)編號(hào))pinyinmavarchar50Not null拼音碼drugnamevarchar50Not null藥品名稱factoryvarchar50Not null生產(chǎn)廠家specvarchar50Not null藥品規(guī)格unitvarchar50Not null計(jì)量單位amountint4Not null入庫(kù)數(shù)量pihaovarchar50Not null批號(hào)pizhun
18、wenhaovarchar50Not null批準(zhǔn)文號(hào)lowwarningint4Not null庫(kù)存低限inpricedecimal(18, 2)Not null進(jìn)貨單價(jià)sellpricedecimal(18, 2)Not null銷售單價(jià)in_timedatetimeNot null入庫(kù)時(shí)間producedatedatetimeNot null生產(chǎn)日期usefuldatedatetimeNot null失效日期in_byvarchar50Not null操作員6. Sell(銷售信息表)銷售信息表用于存儲(chǔ)售出藥品的信息,該表的結(jié)構(gòu)如表6所示。表6銷售信息表字段名數(shù)據(jù)類型長(zhǎng)度備注說(shuō)明piny
19、inmavarchar50Not null拼音碼drugnamevarchar50Not null藥品名稱factoryvarchar50Not null生產(chǎn)廠家sellpricedecimal(18, 2)Not null銷售單價(jià)sellamountint4Not null銷售數(shù)量allpricedecimal(18, 2)Not null銷售總額s_idvarchar20Not null銷售編號(hào)(自動(dòng)編號(hào))selltimedatetimeNot null銷售時(shí)間sell_byvarchar50Not null操作員IDvarchar20Not null入庫(kù)編號(hào)(自動(dòng)編號(hào))specvarch
20、ar50Not null藥品規(guī)格unitvarchar50Not null計(jì)量單位7. ReturnG(退貨信息表)退貨信息表用于存儲(chǔ)退貨的藥品的各項(xiàng)信息,該表的結(jié)構(gòu)如表7所示。表7退貨信息表字段名數(shù)據(jù)類型長(zhǎng)度備注說(shuō)明r_idvarchar20主鍵退貨編號(hào)(自動(dòng)編號(hào))ramountint4Not null退貨數(shù)量totalpricedecimal(18, 2)Not null退貨總額rtimedatetimeNot null退貨時(shí)間return_byvarchar50Not null操作員reasonvarchar50Not null退貨原因pinyinmavarchar50Not null拼
21、音碼drugnamevarchar50Not null藥品名稱IDvarchar20Not null入庫(kù)編號(hào)(自動(dòng)編號(hào))inpricedecimal(18, 2)Not null入庫(kù)單價(jià)factoryvarchar50Not null進(jìn)貨單位8. Breakage(報(bào)損信息表)報(bào)損信息表用于存儲(chǔ)已報(bào)損的藥品的各項(xiàng)信息,該表的結(jié)構(gòu)如表8所示。表8報(bào)損信息表字段名數(shù)據(jù)類型長(zhǎng)度備注說(shuō)明b_idvarchar20主鍵報(bào)損編號(hào)bamountint4Not null報(bào)損數(shù)量btimedatetimeNot null報(bào)損時(shí)間breakage_byvarchar50Not null操作員reasonvarch
22、ar50Not null報(bào)損原因IDvarchar20Not null入庫(kù)編號(hào)pinyinmavarchar50Not null拼音碼drugnamevarchar50Not null藥品編號(hào)inpricedecimal(18, 2)Not null入庫(kù)單價(jià)allpricedecimal(18, 2)Not null報(bào)損總額9. Adjustprice(調(diào)價(jià)信息表)調(diào)價(jià)信息表用于存儲(chǔ)藥品調(diào)價(jià)的記錄,該表的結(jié)構(gòu)如表9所示。表9調(diào)價(jià)信息表字段名數(shù)據(jù)類型長(zhǎng)度備注說(shuō)明adjust_idvarchar20主鍵調(diào)價(jià)編號(hào)IDvarchar20Not null入庫(kù)編號(hào)pinyinmavarchar50Not
23、null拼音碼drugnamevarchar50Not null藥品名稱oldpricedecimal(18, 2)Not null原單價(jià)newpricedecimal(18, 2)Not null新單價(jià)adjust_timedatetimeNot null調(diào)價(jià)時(shí)間adjust_byvarchar50Not null操作員4 系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)4.1 功能模塊的具體實(shí)現(xiàn)4.1.1登錄模塊為保證信息安全,設(shè)置必須進(jìn)行識(shí)別用戶才可進(jìn)入系統(tǒng)主界面。用戶名及密碼其中任一個(gè)錯(cuò)誤都會(huì)有相應(yīng)的提示信息,并自動(dòng)清空用戶名和密碼。只有兩者全部正確后方可進(jìn)入管理系統(tǒng)主界面。用戶登錄模塊流程圖如圖13所示。圖13
24、用戶登錄模塊流程圖登錄界面如圖14所示。圖 14 登錄界面主要代碼如下:public static string flagUsername = null; public static string flagPassword = null; public static string flagAdmin = null;private void btnLogin_Click(object sender, EventArgs e) string strUsn = this.userName.Text; string strPsw = this.txtpsw.Text; try SqlConnectio
25、n sc = new SqlConnection("server=.SQLEXPRESS;database=DrugStore;Trusted_Connection=true"); string sqlstring = "select * from Login where username='" + strUsn + "'" SqlCommand cmd = new SqlCommand(sqlstring, sc); sc.Open(); SqlDataReader dr = cmd.ExecuteReader();
26、 if (dr.Read() if (dr"pw".ToString() = strPsw) this.DialogResult = DialogResult.OK; flagUsername = strUsn;/取得登錄用戶名 flagPassword = strPsw;/取得登錄密碼,用于修改密碼時(shí)對(duì)比 flagAdmin = dr"admin".ToString();/取得用戶類型,是否管理員 else MessageBox.Show("密碼錯(cuò)誤!"); dr.Dispose(); sc.Close(); else if (us
27、erName.Text = "") MessageBox.Show("請(qǐng)輸入用戶名"); else MessageBox.Show("該用戶名不存在"); dr.Dispose(); sc.Close(); catch (Exception ex) MessageBox.Show("點(diǎn)擊按鈕事件異常:n" + ex.ToString(); this.userName.Text = null; this.txtpsw.Text = null; 4.1.2 系統(tǒng)主界面設(shè)計(jì)系統(tǒng)主界面中,點(diǎn)擊左側(cè)的不同按鈕會(huì)在右側(cè)的pan
28、el容器中顯示不同的窗體,點(diǎn)擊按鈕時(shí),會(huì)判斷是否有權(quán)限,并且文字顏色會(huì)以紅色突出顯示,十分美觀友好,系統(tǒng)功能都有很明顯的入口。單擊各功能按鈕,會(huì)進(jìn)入相應(yīng)子窗口。如圖15所示。圖15 系統(tǒng)主界面把窗體顯示到panel容器的代碼(以利潤(rùn)統(tǒng)計(jì)按鈕為例):private void btnReport_Click(object sender, EventArgs e)/只有管理員有權(quán)限 if (frm_Login.flagAdmin = "管理員") if (panel3.Tag != null && panel3.Tag is Form) (Form)panel3.
29、Tag).Close(); frm_Report form5 = new frm_Report(); form5.TopLevel = false; form5.Parent = panel3; panel3.Tag = form5; form5.Show(); else MessageBox.Show("沒(méi)有這個(gè)權(quán)限!"); 按鈕的文字顏色會(huì)以紅色突出顯示的代碼(以利潤(rùn)統(tǒng)計(jì)按鈕為例):private void btnReport_Enter(object sender, EventArgs e) this.label6.Visible = true; btnReport.
30、ForeColor = Color.Red; private void btnReport_Leave(object sender, EventArgs e) this.label6.Visible = false; btnReport.ForeColor = Color.Blue; 4.1.3 用戶管理模塊用戶管理僅限管理員使用。用戶管理模塊中,在添加用戶時(shí),需填寫(xiě)用戶名和姓名以及選擇用戶類型,用戶編號(hào)自動(dòng)生成,初始密碼自動(dòng)設(shè)為123456,如果添加的用戶名已存在,則提示用戶名已存在,不能添加,否則添加成功。另外,選定某一用戶后,右鍵菜單有刪除用戶、重置密碼、設(shè)為管理員、設(shè)為收銀員四個(gè)選項(xiàng),
31、每個(gè)操作都設(shè)有相應(yīng)提醒,以防誤操作。用戶管理模塊流程圖如圖16所示。圖16 用戶管理模塊流程圖用戶管理界面如圖17所示。圖17 用戶管理界面主要代碼如下:private void btnAdd_Click(object sender, EventArgs e) string str2 = txtUsername.Text; string str3 = txtRealname.Text; string str4 = radioButtonAdmin.Text; string str5 = radioButtonCashier.Text; SqlConnection conn = GetConne
32、ction(); string strSelect = "select count(*) from Login where username=username" SqlCommand commSelect = new SqlCommand(strSelect, conn); commSelect.Parameters.Add("username", SqlDbType.VarChar).Value = str2; conn.Open(); if (Convert.ToInt32(commSelect.ExecuteScalar() = 0) string
33、 sqlstring = "insert into Login(username,pw,realname,admin)values(username,pw,realname,admin)" SqlCommand comn = new SqlCommand(sqlstring, conn); comn.Parameters.Add("username", SqlDbType.VarChar).Value = str2; comn.Parameters.Add("pw", SqlDbType.VarChar).Value = 123456
34、; comn.Parameters.Add("realname", SqlDbType.VarChar).Value = str3; if (radioButtonAdmin.Checked = true) comn.Parameters.Add("admin", SqlDbType.VarChar).Value = str4; if (radioButtonCashier.Checked = true) comn.Parameters.Add("admin", SqlDbType.VarChar).Value = str5; com
35、n.ExecuteNonQuery(); Binddgv(); else MessageBox.Show("該用戶名已存在!"); Clear(); conn.Close(); 4.1.4 修改密碼模塊修改密碼時(shí)為了安全起見(jiàn),需要輸入登錄密碼。另外,新密碼需要輸入兩次,兩次輸入相同則修改成功,以免用戶輸入出錯(cuò)而丟失密碼。如圖18所示。圖18 修改密碼界面主要代碼如下:private void btnSave_Click(object sender, EventArgs e) string strNew = txtConfirm.Text; SqlConnection con
36、n = GetConnection(); try if (txtOldpsw.Text = ""|txtOldpsw.Text!=frm_Login.flagPassword) MessageBox.Show("原密碼錯(cuò)誤!"); else if (txtNewpsw.Text = "" | txtConfirm.Text = "") MessageBox.Show("密碼不能為空!"); else if (txtNewpsw.Text != txtConfirm.Text) MessageBo
37、x.Show("兩次密碼不一致!"); txtNewpsw.Text = null; txtConfirm.Text = null; else SqlCommand cmd = new SqlCommand("update Login set pw=pw where username=username", conn); conn.Open(); cmd.Parameters.Add("username", SqlDbType.VarChar).Value = frm_Login.flagUsername; cmd.Parameters
38、.Add("pw", SqlDbType.VarChar).Value = strNew; cmd.ExecuteNonQuery(); MessageBox.Show("修改成功!"); conn.Close(); txtOldpsw.Text = null; txtNewpsw.Text = null; txtConfirm.Text = null; catch (Exception ex) MessageBox.Show("點(diǎn)擊按鈕事件異常:n" + ex.ToString(); 4.1.5 藥品信息管理模塊藥品信息管理模塊可進(jìn)
39、行藥品信息的增、刪、改,存儲(chǔ)藥品的基本信息,添加藥品時(shí)編號(hào)以及拼音碼自動(dòng)生成。輸入藥品名稱后,系統(tǒng)會(huì)自動(dòng)獲得由首字母組成的拼音碼。計(jì)量單位選擇框在窗體加載時(shí)會(huì)查詢藥品信息表里所有的計(jì)量單位以供選擇,用戶也可自行錄入。查詢選擇藥品后,如果要?jiǎng)h除已經(jīng)入庫(kù)的商品,為了保證數(shù)據(jù)完善性,系統(tǒng)提示阻止刪除,但可以修改庫(kù)存低限。藥品信息管理模塊流程圖如圖19所示。圖19 藥品信息管理模塊流程圖藥品管理界面如圖20所示。圖20 藥品信息管理界面窗體加載時(shí)會(huì)查詢顯示藥品信息表里所有的計(jì)量單位的代碼如下:SqlConnection conn = GetConnection(); conn.Open(); /根據(jù)數(shù)
40、據(jù)庫(kù)里的數(shù)據(jù)綁定到計(jì)量單位選擇框* this.cboUnit.DataSource = null; this.cboUnit.Items.Clear(); string sqlstring = "select unit from Drug group by unit" SqlDataAdapter sda = new SqlDataAdapter(sqlstring, conn); DataSet ds = new DataSet(); sda.Fill(ds); cboUnit.DataSource = ds.Tables0; cboUnit.DisplayMember
41、= "unit" cboUnit.ValueMember = "unit" ds.Dispose(); /*系統(tǒng)自動(dòng)獲得拼音碼的代碼如下:/using Microsoft.International.Converters.PinYinConverter;/引用微軟相關(guān)類庫(kù)后會(huì)有GetFirstPinyin(string str)方法public static string GetFirstPinyin(string str) string r = string.Empty; foreach (char obj in str) try ChineseCha
42、r chineseChar = new ChineseChar(obj); string t = chineseChar.Pinyins0.ToString(); r += t.Substring(0, 1); catchr += obj.ToString(); return r; private void txtName_Leave(object sender, EventArgs e) /txtPYM.Text = Components.HZPY.Convert(txtName.Text); txtPYM.Text = GetFirstPinyin(txtName.Text).ToUppe
43、r(); 4.1.6 入庫(kù)登記模塊入庫(kù)登記是系統(tǒng)的重要組成部分。進(jìn)入入庫(kù)登記窗口后,需填寫(xiě)必要信息。入庫(kù)編號(hào)、入庫(kù)時(shí)間和操作員由系統(tǒng)提取生成。進(jìn)貨單位下拉框自動(dòng)查詢顯示之前的進(jìn)貨單位記錄。填寫(xiě)藥品拼音碼后,則把藥品信息表里存在的相應(yīng)藥品信息顯示到輔助錄入?yún)^(qū),同時(shí)把可能的生產(chǎn)廠家綁定到生產(chǎn)廠家下拉框。填寫(xiě)相關(guān)信息后,入庫(kù)總額由系統(tǒng)自動(dòng)計(jì)算。保存時(shí)利用事務(wù)處理把相關(guān)信息保存到入庫(kù)信息表以及庫(kù)存表中,保存后如果發(fā)現(xiàn)信息有誤,在已入庫(kù)藥品尚未發(fā)生業(yè)務(wù)前可以刪除相應(yīng)記錄并重新錄入。入庫(kù)登記模塊流程圖如圖21所示。圖21 入庫(kù)登記模塊流程圖入庫(kù)登記界面如圖22所示。圖22 入庫(kù)登記界面自動(dòng)編號(hào)的存儲(chǔ)過(guò)程p
44、roc_AutoID如下:USE DrugStoreGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER proc c_AutoID(newID varchar(20) output)asdeclare id varchar(20)set id=(select MAX(ID) from Ruku)if(id is null OR substring(id,5,8)!=substring(convert(varchar,getdate(),112),1,8) set id=(select 'RKBH'+(subst
45、ring(convert(varchar,getdate(),112),1,8)+'0000')setnewID=(select'RKBH'+(substring(convert(varchar,getdate(),112),1,8)+(select STUFF(CONVERT(int,10000+(substring(id,13,4)+1),1,1,'')調(diào)用存儲(chǔ)過(guò)程proc_AutoID的代碼如下:private void AutoID() SqlConnection conn = GetConnection(); /實(shí)例化數(shù)據(jù)庫(kù)連接類對(duì)象 conn.Open(); /打開(kāi)數(shù)據(jù)庫(kù)連接 Binddgv();
溫馨提示
- 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 旅館業(yè)數(shù)字化轉(zhuǎn)型與智能化技術(shù)應(yīng)用考核試卷
- 建筑工程法律法規(guī)深度剖析考核試卷
- (完整版)協(xié)商一致解除(或終止)勞動(dòng)合同協(xié)議書(shū)
- 體育經(jīng)紀(jì)人與運(yùn)動(dòng)員職業(yè)風(fēng)險(xiǎn)管理考核試卷
- 旅游業(yè)投訴處理培訓(xùn)課件
- 西安房子購(gòu)買合同范本
- 金融產(chǎn)品推廣及銷售服務(wù)合同
- 電腦系統(tǒng)技術(shù)服務(wù)合同
- 養(yǎng)豬產(chǎn)業(yè)作業(yè)指導(dǎo)書(shū)
- 公司信息化建設(shè)方案設(shè)計(jì)書(shū)
- 車間生產(chǎn)現(xiàn)場(chǎng)5S管理基礎(chǔ)知識(shí)培訓(xùn)課件
- 區(qū)域保護(hù)合同模板
- 讀《這樣教學(xué)很有效-任務(wù)驅(qū)動(dòng)式課堂教學(xué)》心得體會(huì)
- DB11 945-2012 建設(shè)工程施工現(xiàn)場(chǎng)安全防護(hù)、場(chǎng)容衛(wèi)生及消防保衛(wèi)標(biāo)準(zhǔn)
- BEC商務(wù)英語(yǔ)初級(jí)考試歷年真題及答案6套
- 消除“艾梅乙”醫(yī)療歧視-從我做起
- 基于項(xiàng)目化學(xué)習(xí)的小學(xué)美術(shù)跨學(xué)科主題教學(xué)實(shí)踐研究
- GB/T 44625-2024動(dòng)態(tài)響應(yīng)同步調(diào)相機(jī)技術(shù)要求
- 家具廠質(zhì)量管理體系手冊(cè)
- 《家庭教育學(xué)第2版》全套教學(xué)課件
- 2024~2025學(xué)年度八年級(jí)數(shù)學(xué)上冊(cè)第1課時(shí) 負(fù)整數(shù)指數(shù)冪教學(xué)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論