供應(yīng)管理系統(tǒng)的設(shè)計與開發(fā)論文_第1頁
供應(yīng)管理系統(tǒng)的設(shè)計與開發(fā)論文_第2頁
供應(yīng)管理系統(tǒng)的設(shè)計與開發(fā)論文_第3頁
供應(yīng)管理系統(tǒng)的設(shè)計與開發(fā)論文_第4頁
供應(yīng)管理系統(tǒng)的設(shè)計與開發(fā)論文_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

PAGE PAGE1供應(yīng)管理系統(tǒng)設(shè)計與開發(fā)TOC\o"1-3"\h\z摘要 2Abstract 31系統(tǒng)概況 41.1系統(tǒng)開發(fā)背景 41.2系統(tǒng)開發(fā)意義 42系統(tǒng)需求分析 42.1系統(tǒng)功能劃分 52.2子系統(tǒng)業(yè)務(wù)流程 62.3系統(tǒng)數(shù)據(jù)流圖 93系統(tǒng)設(shè)計 123.1系統(tǒng)功能設(shè)計 123.1.1倉庫管理子系統(tǒng) 133.1.2合同管理子系統(tǒng) 143.1.3供應(yīng)人員管理子系統(tǒng) 143.1.4供應(yīng)商管理子系統(tǒng) 153.2數(shù)據(jù)庫設(shè)計 153.2.1數(shù)據(jù)庫基礎(chǔ)知識 153.2.2數(shù)據(jù)庫系統(tǒng)設(shè)計 164系統(tǒng)實現(xiàn) 194.1系統(tǒng)開發(fā)工具介紹 194.1.1數(shù)據(jù)庫工具(MSSQLServer2000)介紹 194.1.2VB.NET介紹 194.2系統(tǒng)實現(xiàn) 244.2.1數(shù)據(jù)庫實現(xiàn) 244.2.2程序界面設(shè)計與實現(xiàn)方法 264.2.3系統(tǒng)測試 305結(jié)束語 30參考文獻 31摘要供應(yīng)管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護以及前端應(yīng)用程序的開發(fā)兩個方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強、數(shù)據(jù)安全性好的庫。而對于后者則要求應(yīng)用程序功能完備,易使用等特點。因此本人結(jié)合實際的要求,對MSSQLServer2000數(shù)據(jù)庫管理系統(tǒng)、SQL語言原理、VB.NET應(yīng)用程序設(shè)計,VB.NET數(shù)據(jù)庫技術(shù)進行了較深入的學(xué)習(xí)和應(yīng)用,主要完成對供應(yīng)管理系統(tǒng)的需求分析、功能模塊劃分、數(shù)據(jù)庫模式分析,并由此設(shè)計了數(shù)據(jù)庫結(jié)構(gòu)和應(yīng)用程序。系統(tǒng)運行結(jié)果證明,本文所設(shè)計的供應(yīng)管理系統(tǒng)可以滿足客戶的要求。供應(yīng)管理系統(tǒng)分為8個子系統(tǒng):倉庫管理,供應(yīng)商管理,票據(jù)管理,出入庫管理,合同管理,比價采購,招標(biāo)采購,采購計劃管理。我主要負責(zé)倉庫管理,出入庫管理,合同管理,供應(yīng)商管理的設(shè)計與實現(xiàn)。論文首先對數(shù)據(jù)庫有關(guān)知識和開發(fā)工具作加以介紹。接下來對該系統(tǒng)的開發(fā)過程及功能實現(xiàn)作了簡要的說明,具體劃分了三類用戶的操作權(quán)限,設(shè)計了了幾個操作界面。實現(xiàn)了數(shù)據(jù)庫表的瀏覽,記錄的添加、刪除和修改,報表的生成,實現(xiàn)了多數(shù)據(jù)庫表的連接操作,實現(xiàn)了多條件查詢。關(guān)鍵字:需求分析,倉庫管理,合同管理,子系統(tǒng)AbstractAccommodationmanagementsystemisatypicalmanaginginformationsystem.Developingitmainlyincludestworespects.Oneisthesetting-upandmaintenanceofthebackgrounddatabaseandtheotheristhedevelopingoftheforegroundapplication.Theformerdemandstosetupastorehousewhichhasstrongerconsistencyandintegralityofthedataandbettersecurityofthedata.Forthelatter,thecompletefunctionandthecharacteristicofusingeasilyarenecessary.Socombiningtherealdemand,IdeeplystudiedtheMSSQLServer2000databasemanagementsystem,SQLlanguageprincipleandVB.NETdatabasetechnology.Throughtheprocessingofstudy,Imainlyfinisheddemandanalysis,functionmoduledividinganddatabasemodeanalysisoftheaccommodationmanagementsystemandhasdesignedstructureofthedatabaseandapplicationprogram.Systematicoperationresultprovedthatsupplythissystemwhichthistextintroducescanmeetdemandofcustomers.Accommodationmanagementsystemisdividedinto8subsystems:Thewarehousemanagement,suppliermanagement,notemanagement,discrepancylibrarymanagement,thecontractmanagement,comparisonshopping,requestforproposalpurchase,theplanofpurchasemanagement.Iammainlyresponsiblefordesigningandimplementingthewarehousemanagement,thediscrepancylibrarymanagement,thecontractmanagementandsuppliermanagement.InchapterfirstlyGivingtheintroductiontotherelevantknowledgeofthedatabaseandDoingthebriefillustrationtothedevelopinginstrument.Afterdoingthat,itdoesthebriefexplanationtothedevelopmentcourseandfunctionofthissystemanddividestheoperationauthoritiesofthreekindsofusersconcretelyanddesignseveraloperatedinterfaces.Andithasrealizedlookingaroundofthedatabaseform,adding,deletingandrevisinginformationandformulatingofreportforms.Atlast,IgivewhatIhaslearnedintheprocessofwork.Keyword:demandanalysis,warehousemanagement,contractmanagement,subsystem1系統(tǒng)概況1.1系統(tǒng)開發(fā)背景山東?;瘓F是1995年8月由原濰坊純堿廠和山東羊口鹽場兩個國有大(一)企業(yè)為龍頭組建的,以發(fā)展海洋化工新興產(chǎn)業(yè)為主導(dǎo),集科、工、貿(mào)等為一體的現(xiàn)代化特大型企業(yè),現(xiàn)為“全國120家建立現(xiàn)代企業(yè)制度試點企業(yè)集團”和“山東省重點培育的23家大型骨干企業(yè)集團”之一?,F(xiàn)有職工2萬余人,擁有資產(chǎn)總額110多億元,下設(shè)24個分、子公司和一個國家級技術(shù)中心,建有企業(yè)博士后工作站。海化集團主要產(chǎn)品有40多種,其中純堿、原鹽、溴素、三聚氰胺、兩鈉、氯化鈣等10種產(chǎn)品產(chǎn)量及市場占有率均居全國首位,是全國最大的海洋化工生產(chǎn)基地和出口創(chuàng)匯基地。企業(yè)先后榮獲全國“五一”勞動獎狀、山東省管理創(chuàng)新優(yōu)秀企業(yè)、山東省文明單位、山東省思想政治工作優(yōu)秀企業(yè)、山東省資源節(jié)約綜合利用工作先進企業(yè)等一系列榮譽稱號。為了進一步提高經(jīng)濟效益和工作效率,?;就顿Y開發(fā)《海化集團供銷管理系統(tǒng)》,實現(xiàn)公司辦公信息化、多元化的發(fā)展。1.2系統(tǒng)開發(fā)意義隨著社會經(jīng)濟的迅速發(fā)展和科學(xué)技術(shù)的全面進步,計算機事業(yè)的飛速發(fā)展,以計算機與通信技術(shù)為基礎(chǔ)的信息系統(tǒng)正處于蓬勃發(fā)展的時期。隨著經(jīng)濟文化水平的顯著提高,人們對工作環(huán)境的要求也越來越高。供應(yīng)管理作為公司正常運轉(zhuǎn)的基石,在現(xiàn)代企業(yè)中越來越受到重視。在計算機飛速發(fā)展的今天,將計算機這一信息處理利器應(yīng)用于營銷的日常管理已是勢必所然,而且這也將為供應(yīng)管理帶來前所未有的改變,它可以帶來意想不到的效益,同時也會為企業(yè)的飛速發(fā)展提供無限潛力。采用計算機管理信息系統(tǒng)已成為供應(yīng)管理科學(xué)化和現(xiàn)代化的重要標(biāo)志,它給企業(yè)管理來了明顯的經(jīng)濟效益和社會效益。主要體現(xiàn)在:極大提高了工作人員的工作效率,大大減少了以往入出存流程繁瑣,雜亂,周期長的弊端?;诠?yīng)管理的全面自動化,可以減少工作的漏洞,可以節(jié)約不少管理開支,增加企業(yè)收入。供應(yīng)的管理的操作自動化和信息的電子化,全面提高了供應(yīng)的管理水平。隨著我國改革開放的不斷深入,經(jīng)濟飛速的發(fā)展,企業(yè)要想生存、發(fā)展,要想在激烈的市場競爭中立于不敗之地,沒有現(xiàn)代化的管理是萬萬不行的,營銷管理的全面自動化、信息化則是其中極其重要的部分。為了加快營銷管理自動化的步伐,提高營銷的管理業(yè)務(wù)處理效率,建立營銷管理系統(tǒng)已變得十分必要。通過對?;竟?yīng)管理日常工作的詳細調(diào)查,搜集了大量的資料,從系統(tǒng)結(jié)構(gòu)的組織,功能的實現(xiàn),技術(shù)的要求以及可行性等多方面進行考慮,認為本課題是一個適應(yīng)現(xiàn)今供應(yīng)管理需求的計算機信息管理系統(tǒng),具有一定的實際開發(fā)價值和使用價值。2系統(tǒng)需求分析在需求分析之前粗略的了解了用戶的需求,也提出了可行的方案,但許多的細節(jié)還是被忽略了,然而在最終的系統(tǒng)中我們不能忽略任何一個微小的細節(jié),我們要準(zhǔn)確回答“系統(tǒng)該做什么”這個問題。在需求分析階段我們必須確定系統(tǒng)必須完成哪些工作,也就是對目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清晰、具體的工作。確定對系統(tǒng)的綜合要求,這一步包括:分析系統(tǒng)的數(shù)據(jù)要求,導(dǎo)出系統(tǒng)的邏輯模型,修正系統(tǒng)開發(fā)計劃,用戶復(fù)查。2.1系統(tǒng)功能劃分供應(yīng)管理系統(tǒng)需要滿足管理人員,決策人員和執(zhí)行人員的需求。涉及的部門包括材料科,原料科,備件科,物管科。管理人員的需求是憑借合法身份登陸到管理界面,從而對信息進行錄入,修改,刪除,并協(xié)助決策人員做出決策,如倉庫管理人員,要對倉庫里的物資進行安全庫存檢查,以防有缺貨事件發(fā)生,要對每次的商品入庫進行登記,錄入商品的供應(yīng)商,質(zhì)量,入庫時間,商品量等信息,并調(diào)整庫存量,并修改合同執(zhí)行情況。出庫管理,同樣要記錄商品名稱,商品量,出庫時間等信息,并修改庫存,同時檢驗庫存量是否處于安全庫存。同時還可以查詢?nèi)必浳镔Y,以幫助生成采購清單。合同管理要求對合同的簽訂時間,發(fā)貨時間,結(jié)束時間,以及合同涉及的物資名稱,物資量,做相應(yīng)的紀錄。并監(jiān)督執(zhí)行情況。并且可以對合同的信息進行查詢,修改。供應(yīng)商管理要對供應(yīng)商的基本信息以及其提供的產(chǎn)品,信譽情況作相應(yīng)的紀錄。并且可以查詢某個供應(yīng)商的交往紀錄。對決策人員要求系統(tǒng)生成的信息輔助其做出最合理的決策,如采購時要根據(jù)供應(yīng)商的地址,報價,信譽情況等做出選擇,避免損失。對于執(zhí)行人員要根據(jù)管理系統(tǒng)提供的信息做出計劃,協(xié)助決策人員。如采購時要分招標(biāo)采購和比價采購。執(zhí)行人員根據(jù)系統(tǒng)提供的信息,做出采購計劃,報決策層。供應(yīng)管理系統(tǒng)目的是幫助管理人員,執(zhí)行人員以及決策人員提高工作的效率的。下面介紹系統(tǒng)的模塊化分,整個供應(yīng)管理系統(tǒng)分八個子系統(tǒng),如圖所是:?;?yīng)?;?yīng)管理信息系統(tǒng)倉庫管理采購員管理供應(yīng)商管理票據(jù)管理比價模塊招標(biāo)模塊采購計劃模塊出入庫管理圖2.1系統(tǒng)模塊組成倉庫管理:庫存管理是指根據(jù)物資類別,形狀,特點分類存放。保管員統(tǒng)計各種物資情況,并登記入帳,年末進行物資盤點。主要功能包括:登記退貨物資,登記報廢物資,登記淘汰物資,登記多余積壓物資,登記物資臺帳,統(tǒng)計庫存物資(包括原料,材料,備品備件,包裝物),物資清倉盤點(包括原料,材料,備品備件,包裝物),庫存統(tǒng)計分析。供應(yīng)商管理;對供應(yīng)商基本信息,資質(zhì)情況,供貨情況,售后服務(wù)等統(tǒng)一管理。主要功能包括:供應(yīng)商基本信息登記,供應(yīng)商產(chǎn)品信息登記,供應(yīng)商綜合評價,供應(yīng)商交往紀錄登記,供應(yīng)商資質(zhì)信息維護,收集管理資信信息,供應(yīng)商績效評估,供應(yīng)商售后服務(wù),供應(yīng)商聯(lián)系信息。供應(yīng)商查詢。票據(jù)管理:票據(jù)管理是指對入庫單,領(lǐng)料單的財務(wù)簽證,付款發(fā)票,供應(yīng)商付款情況等進行管理。主要實現(xiàn)功能:提包用款計劃(向財務(wù)部提交用款計劃),貸款申請登記,付款結(jié)算登記,生成應(yīng)付發(fā)票登記,發(fā)票撤換登記。出入庫管理:出入庫管理指管理員在確認采購物資質(zhì)量合格,數(shù)量無誤后,辦理入庫手續(xù),物資憑領(lǐng)料單及銷售發(fā)票出庫,日清月結(jié)。主要功能包括:登記發(fā)貨,登記入庫,維護發(fā)貨紀錄,統(tǒng)計出入庫物資,查詢在途物資。合同管理:負責(zé)采購合同的整理維護歸檔及合同執(zhí)行情況的查詢。主要功能:登記訂貨合同,查詢合同執(zhí)行情況,合同歸檔。比價采購:是采購的一種方式零星物資進行多家詢價比價采購。要求科長,總計劃員,本職業(yè)務(wù)的計劃員參與。招標(biāo)采購:是采購的一種方式,大宗物資按《招標(biāo)投標(biāo)法》進行招標(biāo)采購,遵循公開,公平,公正的原則。由采購科室,使用單位,職能部門,監(jiān)督部門共同參與。采購計劃管理:分年,季,月,追加四種。是使用單位根據(jù)使用和消耗提包采購計劃給供應(yīng)處。供應(yīng)處根據(jù)庫存情況編制采購計劃,使計劃達到準(zhǔn)確無誤,并落實到實處。主要功能:接受需求計劃,查詢庫存物資,采購資金預(yù)算,平衡采購計劃,聲稱采購計劃,整理采購計劃,審核采購計劃,批準(zhǔn)采購計劃,分配采購計劃。原料科,材料科,備件科采購采購計劃分發(fā)表2.2子系統(tǒng)業(yè)務(wù)流程原料科,材料科,備件科采購采購計劃分發(fā)表采購計劃管理采購計劃管理查詢庫存物資,進行庫存分析查詢庫存物資,進行庫存分析供應(yīng)處長簽字供應(yīng)處長簽字進行資金預(yù)算進行資金預(yù)算物資管理科匯總物資管理科匯總制定采購計劃制定采購計劃原料,材料,備件科長簽字原料,材料,備件科長簽字月份采購計劃表月份采購計劃表圖2.2采購計劃模塊業(yè)務(wù)流程保管員保管員質(zhì)檢處時間延誤基本合格不合格合格車間保管員統(tǒng)計出入庫物資發(fā)貨記錄維護登記發(fā)貨紀錄保管員出貨審核領(lǐng)料單逾期貨物催交查詢在途物資查詢合同執(zhí)行情況退貨賠償損失不合格處置單賠償損失折扣辦理入庫入庫單是否合格內(nèi)在質(zhì)量檢查到貨登記表:給采購員存物資到待檢驗庫區(qū)到貨物資外在質(zhì)量檢查出入庫管理保管員保管員質(zhì)檢處時間延誤基本合格不合格合格車間保管員統(tǒng)計出入庫物資發(fā)貨記錄維護登記發(fā)貨紀錄保管員出貨審核領(lǐng)料單逾期貨物催交查詢在途物資查詢合同執(zhí)行情況退貨賠償損失不合格處置單賠償損失折扣辦理入庫入庫單是否合格內(nèi)在質(zhì)量檢查到貨登記表:給采購員存物資到待檢驗庫區(qū)到貨物資外在質(zhì)量檢查出入庫管理 圖2.3出入庫模塊業(yè)務(wù)流程登記人員處罰情況登記人員檢查情況登記人員考核情況登記人員培訓(xùn)情況登記人員基本信息供應(yīng)人員管理供應(yīng)商管理登記人員處罰情況登記人員檢查情況登記人員考核情況登記人員培訓(xùn)情況登記人員基本信息供應(yīng)人員管理供應(yīng)商管理收集供應(yīng)商基本信息收集供應(yīng)商基本信息登記供應(yīng)商產(chǎn)品信息登記供應(yīng)商產(chǎn)品信息查詢供應(yīng)商交往紀錄查詢供應(yīng)商交往紀錄圖2.5供應(yīng)商人員管理業(yè)務(wù)流程供應(yīng)商綜合評價供應(yīng)商綜合評價維護供應(yīng)商資質(zhì)信息維護供應(yīng)商資質(zhì)信息維護供應(yīng)商資信信息維護供應(yīng)商資信信息供應(yīng)商績效評估供應(yīng)商績效評估登記供應(yīng)商售后服務(wù)情況登記供應(yīng)商售后服務(wù)情況圖2.4供應(yīng)商管理模塊業(yè)務(wù)流程2.3系統(tǒng)數(shù)據(jù)流圖按照上面的業(yè)務(wù)流程理出的流程順序,將相應(yīng)的數(shù)據(jù)處理過程繪制成一套完整的數(shù)據(jù)流程圖。數(shù)據(jù)流成圖可以幫助核對相應(yīng)的數(shù)據(jù)和報表,模型等。如果有問題,則定會在制圖和整理過程中暴露無疑。下面介紹系統(tǒng)的數(shù)據(jù)流程。供應(yīng)管理系統(tǒng)供應(yīng)管理系統(tǒng)銷售管理質(zhì)量計量生產(chǎn)系統(tǒng)供應(yīng)商出口計劃表貨物檢驗報告單需求計劃報貨單報價表公司領(lǐng)導(dǎo)財務(wù)管理供應(yīng)商供應(yīng)處領(lǐng)導(dǎo)質(zhì)量計量存貨盤點招標(biāo)比價效益匯總支付計劃表付款申請表定貨單收貨登記表供應(yīng)商信息表合同進度報表采購計劃表采購計劃表)圖2.6系統(tǒng)數(shù)據(jù)流圖(0層)用戶用戶2事務(wù)處理事務(wù)請求3倉庫管理4合同管理5供商應(yīng)管理理合同管理請求供應(yīng)商管理請求倉庫數(shù)據(jù)庫合同數(shù)據(jù)庫倉庫信息合同信息供應(yīng)商信息倉庫管理請求3系統(tǒng)規(guī)定查詢處理系統(tǒng)各項規(guī)定庫系統(tǒng)規(guī)定系統(tǒng)規(guī)定查詢條件系統(tǒng)規(guī)定查詢結(jié)果供應(yīng)商數(shù)據(jù)庫初次分解0層DFD圖得出1層DFD圖:圖2.7系統(tǒng)數(shù)據(jù)流圖(1層)下面詳細介紹倉庫管理的細化數(shù)據(jù)流圖倉庫管理請求倉庫管理請求3.1倉庫管理事務(wù)處理2接收事務(wù)用戶3.2貨物資料錄入\修改3.3貨物資料查詢倉庫數(shù)據(jù)庫事務(wù)請求錄入資料請求查詢資料請求貨物資料貨物資料貨物資料查詢結(jié)果圖2.8倉庫管理數(shù)據(jù)流圖(2層)用戶事務(wù)請求用戶事務(wù)請求2.1事務(wù)處理出庫物資3.2.2錄入出庫物資出庫物資入庫物資3.2.1錄入入庫物資入庫物資出庫物資明細表入庫物資明細表出庫物資修改庫存量入庫物資庫存量庫存量表修改合同執(zhí)行情況入庫物資入庫物資合同執(zhí)行監(jiān)察表 圖2.9倉庫管理數(shù)據(jù)流圖(3層)登陸界面細化后的數(shù)據(jù)流圖錯誤信息用戶權(quán)限1.3權(quán)限處理系統(tǒng)初始化信息用戶數(shù)據(jù)庫用戶系統(tǒng)1.1接收登錄事務(wù)用戶資料1.2用戶密碼驗證登錄請求用戶ID,密碼錯誤信息用戶權(quán)限1.3權(quán)限處理系統(tǒng)初始化信息用戶數(shù)據(jù)庫用戶系統(tǒng)1.1接收登錄事務(wù)用戶資料1.2用戶密碼驗證登錄請求用戶ID,密碼圖2.10登陸數(shù)據(jù)流圖下面詳細介紹合同管理的細化數(shù)據(jù)流圖合同管理請求合同管理請求4.1合同管理事務(wù)處理2.2接收事務(wù)用戶4.2合同資料錄入\修改4.3合同信息查詢合同資料數(shù)據(jù)庫事務(wù)請求錄入資料請求查詢資料請求合同資料合同資料合同資料查詢結(jié)果 圖2.11合同管理數(shù)據(jù)流圖(2層)用戶事務(wù)請求2.3事務(wù)處理合同信息4.3.1查詢合同信息合同信息合同信息4.2.1錄入/修改合同信息合同信息合同基本信息表合同基本信息表合同執(zhí)行合同執(zhí)行監(jiān)察表4.3.2查詢逾期合同逾期合同信息逾期合同表4.3.3查詢合同產(chǎn)品合同產(chǎn)品合同表(附表)產(chǎn)品信息合同產(chǎn)品4.3.4查詢合同條件合同條件表合同條件用戶事務(wù)請求2.3事務(wù)處理合同信息4.3.1查詢合同信息合同信息合同信息4.2.1錄入/修改合同信息合同信息合同基本信息表合同基本信息表合同執(zhí)行合同執(zhí)行監(jiān)察表4.3.2查詢逾期合同逾期合同信息逾期合同表4.3.3查詢合同產(chǎn)品用戶事務(wù)請求2.3事務(wù)處理合同信息4.3.1查詢合同信息合同信息合同信息4.2.1錄入/修改合同信息合同信息合同基本信息表合同基本信息表合同執(zhí)行合同執(zhí)行監(jiān)察表4.3.2查詢逾期合同逾期合同信息逾期合同表4.3.3查詢合同產(chǎn)品合同產(chǎn)品合同表(附表)產(chǎn)品信息合同產(chǎn)品4.3.4查詢合同條件合同條件表合同條件用戶事務(wù)請求2.3事務(wù)處理合同信息4.3.1查詢合同信息合同信息合同信息4.2.1錄入/修改合同信息合同信息合同基本信息表合同基本信息表合同執(zhí)行合同執(zhí)行監(jiān)察表4.3.2查詢逾期合同逾期合同信息逾期合同表4.3.3查詢合同產(chǎn)品合同產(chǎn)品合同表(附表)產(chǎn)品信息合同產(chǎn)品4.3.4查詢合同條件合同條件表合同條件圖2.12合同管理數(shù)據(jù)流圖(3層)3系統(tǒng)設(shè)計3.1系統(tǒng)功能設(shè)計供應(yīng)管理系統(tǒng)的功能結(jié)構(gòu)如圖所示供應(yīng)管理系統(tǒng)供應(yīng)管理系統(tǒng)供應(yīng)處人員管理模塊招標(biāo)采購模塊比價采購模塊采購計劃管理模塊合同管理模塊票據(jù)管理模塊倉庫管理模塊供應(yīng)處人員管理模塊招標(biāo)采購模塊比價采購模塊采購計劃管理模塊合同管理模塊票據(jù)管理模塊倉庫管理模塊圖3.0功能結(jié)構(gòu)圖由于模塊比較多,在畢業(yè)設(shè)計中主要分析設(shè)計了倉庫管理子模塊,合同管理子模塊,供應(yīng)人員管理模塊和供應(yīng)商管理模塊。下面詳細介紹各模塊概況3.1.1倉庫管理子系統(tǒng)(1)系統(tǒng)目標(biāo)開發(fā)意義此次在《供應(yīng)管理系統(tǒng)》中開發(fā)《倉庫管理》子系統(tǒng)的目的是打破原有的僵硬的倉庫管理方式,依靠計算機這個信息時代重要和出色的幫手使倉庫管理者從繁瑣的管理工作中解脫出來,提高工作效率.(2)子系統(tǒng)功能介紹整個《倉庫管理》子系統(tǒng)按照內(nèi)容上劃分分為3塊:入庫管理,出庫管理,庫存管理。如圖3.1所示:倉庫管理倉庫管理入庫管理出庫管理庫存管理圖3.1模塊組成功能示意圖倉庫管理倉庫管理入庫管理出庫管理庫存管理錄入與查詢?nèi)霂煳镔Y信息修改入庫物資庫存表錄入與查詢出庫物資信息修改出庫物資庫存表查詢倉庫物資信息修改庫存表 圖3.2功能示意圖子模塊功能詳細說明對每次準(zhǔn)備入庫的物資經(jīng)質(zhì)量檢查部門確認合格后,經(jīng)出納人員同意,辦理入庫手續(xù),錄入物資的基本信息(物資編號,物資名稱,物資數(shù)量,合同編號,入庫時間,出納員)。同時根據(jù)物資名稱查詢庫存表修改庫存量及修改合同執(zhí)行情況檢查表。如果合同執(zhí)行完成既合同貨物全部到達則提醒管理員。對于出庫情況,同樣要錄入(物資編號,物資名稱,物資數(shù)量,出庫時間,出納員),同時修改庫存表,在修改庫存表之前檢查出庫請求是否符合要求,如果出庫請求高于庫存量則拒絕請求。同時對庫存量進行檢查既貨物出庫后庫存量是否低于安全庫存(庫存量減去出庫請求),如果低于安全庫存則生成采購計劃,通知采購部門。系統(tǒng)可以隨時對庫存量低于安全庫存的物資進行查詢。以時間為條件可以查詢當(dāng)天的出入庫情況,合同執(zhí)行情況。可以以貨物名為條件,檢查該貨物的庫存量。這些操作只限于具有合法身份的出納員。系統(tǒng)可以對入庫操作,出庫操作錄入錯誤信息的物資進行修改。3.1.2合同管理子系統(tǒng)合同管理子系統(tǒng)主要是把合同的基本信息錄入數(shù)據(jù)庫,對數(shù)據(jù)庫進行修改和查詢。檢測合同的執(zhí)行情況。合同管理人員對訂貨合同的基本信息(合同編號,貨物名稱,簽訂時間,發(fā)貨時間,結(jié)貨時間,合同數(shù)額,合同金額)進行錄入合同表。并且利用系統(tǒng)把合同的物資輸入到合同監(jiān)視表中。每一次入庫操作都更改合同執(zhí)行監(jiān)視表的合同余量。當(dāng)合同余量為零時,合同執(zhí)行完成,在合同監(jiān)視表中刪除該合同,完成合同歸檔。在合同執(zhí)行期間,合同管理人員可以通過對合同監(jiān)視表查詢合同執(zhí)行情況。進行合同基本信息的查詢同時顯示合同的執(zhí)行情況既收到貨物的情況。查詢合同信息可以根據(jù)合同的編號為主線。同時也可以以合同物資為條件查詢某一特定物資的以往簽約合同紀錄。系統(tǒng)支持對錄入的錯誤信息進行修改。3.1.3供應(yīng)人員管理子系統(tǒng)功能示意圖:供應(yīng)人員管理供應(yīng)人員管理基本信息培訓(xùn)情況考核情況圖3.3功能示意圖(2)子模塊功能詳細說明人員管理人員把供應(yīng)處人員的基本信息(姓名,年齡,性別,住址,身份證號,電話,工作年限,獎懲情況)錄入數(shù)據(jù)庫。該公司會對個人其進行不定期的培訓(xùn),該系統(tǒng)要把培訓(xùn)的基本情況(培訓(xùn)地點,時間,培訓(xùn)項目)。同時供應(yīng)處員工的出勤情況,業(yè)務(wù)考核情況要紀錄到數(shù)據(jù)庫中。對以上錄入的信息進行查詢。以身份證號為主線,查詢供應(yīng)處人員的基本信息和曾經(jīng)受培訓(xùn)的情況和獎懲情況。供應(yīng)處人員的信息是不斷變化的。供應(yīng)處人員的身份證可能更換,家庭住址變化,電話發(fā)生變化,這些信息也要及時在數(shù)據(jù)庫中及時更改。3.1.4供應(yīng)商管理子系統(tǒng)功能示意圖:供應(yīng)商管理供應(yīng)商管理產(chǎn)品信息供應(yīng)商信息產(chǎn)品信息供應(yīng)商信息圖3.4功能示意圖(2)子模塊功能詳細說明對供應(yīng)商基本信息(名稱,地址,電話,傳真,信譽情況,主要產(chǎn)品)進行錄入供應(yīng)商表。同時對其產(chǎn)品的詳細信息進行記錄。對以上錄入的信息進行查詢。以供應(yīng)商名稱為主線,查詢供應(yīng)商的基本信息及交往記錄和其主要產(chǎn)品的情況。供應(yīng)商的信息是不斷變化的。供應(yīng)商的電話,傳真可能變化,其生產(chǎn)的主要產(chǎn)品可能變化,公司地址可能變化,這些信息都要在數(shù)據(jù)庫中更改。在完成系統(tǒng)功能設(shè)計后,下面介紹數(shù)據(jù)庫的設(shè)計。3.2數(shù)據(jù)庫設(shè)計3.2.1數(shù)據(jù)庫基礎(chǔ)知識一個成功的信息管理系統(tǒng),是建立在許多條件之上的,而數(shù)據(jù)庫是其中一個非常重要的條件和關(guān)鍵技術(shù)。信息管理系統(tǒng)所涉及的數(shù)據(jù)庫設(shè)計分五個步驟:數(shù)據(jù)庫需求分析、概念設(shè)計、邏輯設(shè)計、物理設(shè)計與加載測試。(1)數(shù)據(jù)庫需求分析的任務(wù)是將業(yè)務(wù)管理單證流化為數(shù)據(jù)流,劃分主題之間的邊界,繪制出DFD圖,并完成相應(yīng)的數(shù)據(jù)字典。(2)概念設(shè)計的任務(wù)是從DFD出發(fā),繪制出本主題的實體-關(guān)系圖,并列出各個實體與關(guān)系的綱要表。(3)邏輯設(shè)計的任務(wù)是從E-R圖與對應(yīng)的綱要表出發(fā),確定各個實體及關(guān)系的表名屬性。(4)物理設(shè)計的任務(wù)是確定所有屬性的類型、寬度與取值范圍,設(shè)計出基本表的主鍵,將所有的表名與字段名英文化(現(xiàn)在很多軟件能支持中文字段,如MSSQLServer,我就是用的中文字段名),實現(xiàn)物理建庫,完成數(shù)據(jù)庫物理設(shè)計字典。(5)加載測試工作貫穿于程序測試工作的全過程,整個錄入、修改、查詢、處理工作均可視為對數(shù)據(jù)庫的加載測試工作。要設(shè)計出一個好的信息管理系統(tǒng)數(shù)據(jù)庫,除滿足系統(tǒng)所要求的功能外,還必須遵守下列原則:基本表的個數(shù)越少越好。主鍵的個數(shù)越少越好。鍵是表間連接的工具,主鍵越少,表間的連接就越簡單。字段的個數(shù)越少越好。所有基本表的設(shè)計均應(yīng)盡量符合第三范式。信息系統(tǒng)的主要任務(wù)是通過大量的數(shù)據(jù)獲得管理所需要的信息,這就必須存儲和管理大量的數(shù)據(jù)。因此建立一個良好的數(shù)據(jù)組織結(jié)構(gòu)和數(shù)據(jù)庫,使整個系統(tǒng)都可以迅速、方便、準(zhǔn)確地調(diào)用和管理所需的數(shù)據(jù),是衡量信息系統(tǒng)開發(fā)工作好壞的主要指標(biāo)之一。數(shù)據(jù)庫設(shè)計主要是進行數(shù)據(jù)庫的邏輯設(shè)計,即將數(shù)據(jù)按一定的分類、分組系統(tǒng)和邏輯層次組織起來,是面向用戶的。數(shù)據(jù)庫設(shè)計時需要綜合企業(yè)各個部門的存檔數(shù)據(jù)和數(shù)據(jù)需求,分析各個數(shù)據(jù)之間的關(guān)系,按照DBMS提供的功能和描述工具,設(shè)計出規(guī)模適當(dāng)、正確反映數(shù)據(jù)關(guān)系、數(shù)據(jù)冗余少、存取效率高、能滿足多種查詢要求的數(shù)據(jù)模型。數(shù)據(jù)庫設(shè)計的步驟是:(1)數(shù)據(jù)庫結(jié)構(gòu)定義:目前的數(shù)據(jù)庫管理系統(tǒng)(DBMS)有的是支持聯(lián)機事務(wù)處理CLTP(負責(zé)對事務(wù)數(shù)據(jù)進行采集、處理、存儲)的操作型DBMS,有的可支持數(shù)據(jù)倉庫、有聯(lián)機分析處理CLAP(指為支持決策的制定對數(shù)據(jù)的一種加工操作)功能的大型DBMS,有的數(shù)據(jù)庫是關(guān)系型的、有的可支持面向?qū)ο髷?shù)據(jù)庫。針對選擇的DBMS,進行數(shù)據(jù)庫結(jié)構(gòu)定義。(2)數(shù)據(jù)表定義:數(shù)據(jù)表定義指定義數(shù)據(jù)庫中數(shù)據(jù)表的結(jié)構(gòu),數(shù)據(jù)表的邏輯結(jié)構(gòu)包括:屬性名稱、類型、表示形式、缺省值、校驗規(guī)則、是否關(guān)鍵字、可否為空等。關(guān)系型數(shù)據(jù)庫要盡量按關(guān)系規(guī)范化要求進行數(shù)據(jù)庫設(shè)計,但為使效率高,規(guī)范化程度應(yīng)根據(jù)應(yīng)用環(huán)境和條件來決定。數(shù)據(jù)表設(shè)計不僅要滿足數(shù)據(jù)存儲的要求,還要增加一些如反映有關(guān)信息、操作責(zé)任、中間數(shù)據(jù)的字段或臨時數(shù)據(jù)表。(3)存儲設(shè)備和存儲空間組織:確定數(shù)據(jù)的存放地點、存儲路徑、存儲設(shè)備等,備份方案,對多版本如何保證一致性和數(shù)據(jù)的完整性。(4)數(shù)據(jù)使用權(quán)限設(shè)置:針對用戶的不同使用要求,確定數(shù)據(jù)的用戶使用權(quán)限,確保數(shù)據(jù)安全。(5)數(shù)據(jù)字典設(shè)計:用數(shù)據(jù)字典描述數(shù)據(jù)庫的設(shè)計,便于維護和修改。3.2.2數(shù)據(jù)庫系統(tǒng)設(shè)計對于數(shù)據(jù)庫的設(shè)計主要是沿著先概念結(jié)構(gòu)設(shè)計再邏輯結(jié)構(gòu)設(shè)計的順序。在概念設(shè)計階段中,設(shè)計人員從用戶的角度看待數(shù)據(jù)及處理要求和約束,產(chǎn)生一個反映用戶觀點的概念模式。然后再把概念模式轉(zhuǎn)換成邏輯模式。將概念設(shè)計從設(shè)計過程中獨立開來,使各階段的任務(wù)相對單一化,設(shè)計復(fù)雜程度大大降低,不受特定DBMS的限制。利用ER方法進行數(shù)據(jù)庫的概念設(shè)計,可分成三步進行:首先設(shè)計局部ER模式,然后把各局部ER模式綜合成一個全局模式,最后對全局ER模式進行優(yōu)化,得到最終的模式,即概念模式。(1)設(shè)計局部ER模式實體和屬性的定義倉庫(倉庫編號,倉庫地址,倉庫容量,安全庫存)商品(商品編號,商品名稱,計量單位,安全庫存,數(shù)量,單價)人員(編號,姓名,性別,身份證號,聯(lián)系電話,密碼)身份(身份編號,身份描述,權(quán)限)供應(yīng)商(名稱,地址,產(chǎn)品,聯(lián)系電話,信譽)合同(合同編號,簽訂時間,發(fā)貨時間,結(jié)貨時間,合同數(shù)額,合同金額)ER模型的“聯(lián)系”用于刻畫實體之間的關(guān)聯(lián)。一種完整的方式是對局部結(jié)構(gòu)中任意兩個實體類型,依據(jù)需求分析的結(jié)果,考察局部結(jié)構(gòu)中任意兩個實體類型之間是否存在聯(lián)系。若有聯(lián)系,進一步確定是1:N,M:N,還是1:1等。還要考察一個實體類型內(nèi)部是否存在聯(lián)系,兩個實體類型之間是否存在聯(lián)系,多個實體類型之間是否存在聯(lián)系。解釋如下:一個人員對應(yīng)一種身份,一種身份對應(yīng)多個人員一種商品對應(yīng)一個倉庫,一個倉庫對應(yīng)多種商品一份合同對應(yīng)一個供應(yīng)商,一個供應(yīng)商對應(yīng)多份合同一個商品對應(yīng)多個供應(yīng)商,一個供應(yīng)商對應(yīng)多種產(chǎn)品一份合同對應(yīng)一個簽訂人員,一個人員對應(yīng)多個合同(2)設(shè)計全局ER模式結(jié)構(gòu)不僅要支持所有局部ER模式,而且必須合理地表示一個完整、一致的數(shù)據(jù)庫概念結(jié)構(gòu)。倉庫倉庫商品供應(yīng)商合同管理人員簽訂身份屬于屬于屬于供應(yīng)簽訂mm m mn nn1 1 n111n nn nn n1 1 圖2.5概念模型1)確定公共實體類型為了給多個局部ER模式的合并提供開始合并的基礎(chǔ),首先要確定各局部結(jié)構(gòu)中的公共實體類型。在這一步中我們僅根據(jù)實體類型名和鍵來認定公共實體類型。一般把同名實體類型作為公共實體類型的一類候選,把具有相同鍵的實體類型作為公共實體類型的另一類候選。2)局部ER模式的合并合并的原則是:首先進行兩兩合并;先和合并那些現(xiàn)實世界中有聯(lián)系的局部結(jié)構(gòu);合并從公共實體類型開始,最后再加入獨立的局部結(jié)構(gòu)。3)消除沖突沖突分為三類:屬性沖突、結(jié)構(gòu)沖突、命名沖突。設(shè)計全局ER模式的目的不在于把若干局部ER模式形式上合并為一個ER模式,而在于消除沖突,使之成為能夠被所有用戶共同理解和接受的同一的概念模型。3)全局ER模式的優(yōu)化在得到全局ER模式后,為了提高數(shù)據(jù)庫系統(tǒng)的效率,還應(yīng)進一步依據(jù)處理需求對ER模式進行優(yōu)化。一個好的全局ER模式,除能準(zhǔn)確、全面地反映用戶功能需求外,還應(yīng)滿足下列條件:實體類型的個數(shù)要盡可能的少;實體類型所含屬性個數(shù)盡可能少;實體類型間聯(lián)系無冗余。(3)關(guān)系數(shù)據(jù)庫的邏輯設(shè)計 由于概念設(shè)計的結(jié)果是ER圖,DBMS一般采用關(guān)系型(本人所使用的MSSQLServer就是關(guān)系型的DBMS),因此數(shù)據(jù)庫的邏輯設(shè)計過程就是把ER圖轉(zhuǎn)化為關(guān)系模式的過程。由于關(guān)系模型所具有的優(yōu)點,邏輯設(shè)計可以充分運用關(guān)系數(shù)據(jù)庫規(guī)范化理論,使設(shè)計過程形式化地進行。設(shè)計結(jié)果是一組關(guān)系模式的定義。1)導(dǎo)出初始關(guān)系模式倉庫(倉庫編號,倉庫地址,倉庫容量)商品(商品編號,商品名稱,計量單位,安全庫存,數(shù)量,單價,供應(yīng)商,)人員(編號,姓名,性別,身份證號,聯(lián)系電話,密碼,身份標(biāo)示,權(quán)限)身份(身份標(biāo)示,身份描述,權(quán)限)供應(yīng)商(名稱,地址,產(chǎn)品,聯(lián)系電話,信譽,產(chǎn)品)合同(合同編號,簽訂時間,發(fā)貨時間,結(jié)貨時間,商品名稱,簽約人,合同數(shù)額,合同金額)2)產(chǎn)生子模式子模式是用戶所用到的那部分數(shù)據(jù)的描述。除了指出用戶用到的數(shù)據(jù)外,還應(yīng)指出數(shù)據(jù)與概念模式中相應(yīng)數(shù)據(jù)的聯(lián)系,即指出概念模式與子模式之間的對應(yīng)性。如:入庫子模式(貨物編號,貨物名稱,入庫數(shù)量,入庫時間,合同編號,供應(yīng)商,出納員)4系統(tǒng)實現(xiàn)4.1系統(tǒng)開發(fā)工具介紹4.1.1數(shù)據(jù)庫工具(MSSQLServer2000)介紹SQLServer2000是微軟公司最新推出的關(guān)系數(shù)據(jù)庫管理系統(tǒng),其同時也是一種網(wǎng)絡(luò)數(shù)據(jù)庫管理系統(tǒng)。主要任務(wù)是存儲數(shù)據(jù),管理數(shù)據(jù)和提供數(shù)據(jù)以滿足客戶端連接和存儲數(shù)據(jù)的需要。其主要特點如下:①真正的客戶機/服務(wù)器體系結(jié)構(gòu)②圖形化用戶界面,使系統(tǒng)管理工具更加直觀、簡單。③豐富的編程接口工具,為用戶進行程序設(shè)計提供了更大的選擇余地。④使用了最先進的數(shù)據(jù)庫架構(gòu),與WindowsNT/2000平臺緊密集成,多線程體系結(jié)構(gòu)設(shè)計,提高了系統(tǒng)對用戶并發(fā)訪問的響應(yīng)速度。⑤具有完全Web功能,通過對高端硬件平臺,網(wǎng)絡(luò)和存儲技術(shù)的支持,為Web站和企業(yè)應(yīng)用最大限度地提供了可擴展性和高可靠性,能在Internet商業(yè)領(lǐng)域快速建立并應(yīng)用。⑥增強了安全性,保護防火墻內(nèi)外地數(shù)據(jù),支持基于角色地安全并擁有安全審計工具,SQLServer2000數(shù)據(jù)庫服務(wù)器地自動調(diào)整和自動管理技術(shù)在數(shù)據(jù)庫領(lǐng)域中處于領(lǐng)先的地位。4.1.2VB.NET介紹MicrosoftVisualBasic.NET是MicrosoftVisualBasic的后續(xù)版本,它是基于.NET框架重新設(shè)計的,可以用它來輕松地創(chuàng)建用于MicrosoftWindows操作系統(tǒng)和Web的下一代應(yīng)用程序。使用VisualBasic.NET,可視化開發(fā)Web應(yīng)用程序、Web服務(wù)、Windows應(yīng)用程序和服務(wù)器端組件將變得輕而易舉。VisualBasic.NET是基于.NET框架直接創(chuàng)建的,因此可以使用所有的平臺特性,并能夠與其他.NET語言協(xié)同工作。 VB.NET一個引人注目的變化是它的窗體引擎。Microsoft放棄了原來的窗體引擎,現(xiàn)在它給我們提供的是WindowsForms窗體引擎。所有基于CLR的語言都使用WindowsForms引擎,與VB6的窗體引擎相比,WindowsForms有著許多突出的優(yōu)點。例如,WindowsForms支持創(chuàng)建那些自動改變組件大小的窗體,允許把控件指定到窗體的特定位置。窗體成了類,類里面包含了構(gòu)造窗體的全部代碼,由于這些代碼允許用戶深入控制VB.NET構(gòu)造窗體的幕后細節(jié),有經(jīng)驗的用戶能夠利用這些代碼實現(xiàn)各種高級功能。(1)傳統(tǒng)開發(fā)工具的不足隨著技術(shù)的不斷進步,用戶對系統(tǒng)功能的要求越來越高,應(yīng)用開發(fā)人員使用傳統(tǒng)的開發(fā)工具很難滿足這些要求。這主要表現(xiàn)在:·開發(fā)方法陳舊,兼容性差,難以適應(yīng)變化·功能弱,性能較低·大多數(shù)應(yīng)用程序只能使用特定的數(shù)據(jù)庫接口,移植相當(dāng)困難。(2)VB.NET特點VB.NET提供了完善的面向?qū)ο缶幊讨С?,是一種真正的OO語言。VB.NET不僅允許覆蓋(Override)方法或?qū)傩?,而且還支持方法重載(Overload)。在VB.NET中,窗體以類模塊形式出現(xiàn)。它意味著類本身包含了所有構(gòu)造窗體所必需的代碼。這個變化帶來了許多強大的新功能,比如繼承這些窗體的能力。Microsoft稱這種技術(shù)為“可視化繼承”(VisualInheritance)。而且提供了ADO.NET技術(shù),使操作數(shù)據(jù)庫更加方便,快速,簡潔。ADO.NET的好處:互操作性ADO.NET應(yīng)用程序可以利用XML的靈活性和廣泛接受性。由于XML是用于在網(wǎng)絡(luò)中傳輸數(shù)據(jù)集的格式,因此可以讀取XML格式的任何組件都可以處理數(shù)據(jù)。作為一項工業(yè)標(biāo)準(zhǔn),XML正是在謹記這種互操作性的情況下設(shè)計的??删S護性在已部署系統(tǒng)的生存期中,適度的更改是可能的,但由于十分困難,所以很少嘗試進行實質(zhì)的結(jié)構(gòu)更改。這是很遺憾的,因為在事件的自然過程中,這種實質(zhì)上的更改會變得很有必要。該問題并不是要設(shè)計三層應(yīng)用程序。相反,它是要在應(yīng)用程序部署以后增加層數(shù)。如果原始應(yīng)用程序使用數(shù)據(jù)集以ADO.NET實現(xiàn),則該轉(zhuǎn)換很容易進行。當(dāng)用兩層替換單個層時,將安排這兩層交換信息。由于這些層可以通過XML格式的數(shù)據(jù)集傳輸數(shù)據(jù),所以通信相對較容易??删幊绦訴isualStudio中的ADO.NET數(shù)據(jù)組件以不同方式封裝數(shù)據(jù)訪問功能,幫助程序員加快編程速度并減少犯錯幾率。同樣,由這些工具生成的ADO.NET數(shù)據(jù)類導(dǎo)致類型化數(shù)據(jù)集。最后,已聲明類型的數(shù)據(jù)集的代碼更安全,原因在于它提供對類型的編譯時檢查。性能對于不連接的應(yīng)用程序,ADO.NET數(shù)據(jù)庫提供的性能優(yōu)于ADO不連接的記錄集。當(dāng)使用COM封送在層間傳輸不連接的記錄集時,會因?qū)⒂涗浖瘍?nèi)的值轉(zhuǎn)換為COM可識別的數(shù)據(jù)類型而導(dǎo)致顯著的處理開銷。在ADO.NET中,這種數(shù)據(jù)類型轉(zhuǎn)換則沒有必要??缮炜s性因為Web可以極大增加對數(shù)據(jù)的需求,所以可縮放性變得很關(guān)鍵。Internet應(yīng)用程序具有無限的潛在用戶供應(yīng)。盡管應(yīng)用程序可以很好地為十幾個用戶服務(wù),但它可能不能向成百上千個(或幾百萬個)用戶提供同樣好的服務(wù)。使用數(shù)據(jù)庫鎖和數(shù)據(jù)庫連接之類資源的應(yīng)用程序不能很好地為大量用戶服務(wù),因為用戶對這些有限資源的需求最終將超出其供應(yīng)。由于所有ADO.NET應(yīng)用程序都使用對數(shù)據(jù)的不連接訪問,因此它不會在較長持續(xù)時間內(nèi)保留數(shù)據(jù)庫鎖或活動數(shù)據(jù)庫連接。(3).NET數(shù)據(jù)組件圖4.1.NET數(shù)據(jù)組件(4).NET連接層 設(shè)計ADO.NET組件的目的是為了從數(shù)據(jù)操作中分解出數(shù)據(jù)訪問。ADO.NET的兩個核心組件會完成此任務(wù):DataSet和.NETFramework數(shù)據(jù)提供程序,后者是一組包括Connection(數(shù)據(jù)連接)、Command(數(shù)據(jù)命令)、DataReader(數(shù)據(jù)讀取器)和DataAdapter(數(shù)據(jù)適配器)對象在內(nèi)的組件。其中.NET數(shù)據(jù)提供程序是連接層(connectedlayer),DataSet對象是非連接層(disconnectedlayer)。1)Connection類 若要在數(shù)據(jù)存儲區(qū)和應(yīng)用程序之間移動數(shù)據(jù),必須首先擁有到該數(shù)據(jù)存儲區(qū)的連接??梢允褂肅onnection對象來連接到指定的數(shù)據(jù)源。要用目標(biāo)數(shù)據(jù)源的數(shù)據(jù)填充DataReader或DataSet對象,就要求有一個Connection對象。同理,要從客戶端.NET應(yīng)用程序執(zhí)行數(shù)據(jù)庫的任何命令或存儲過程,還要求有一個激活的Connection對象。和大多數(shù)其他.NET對象不同的使,Connection對象在離開作用域時并不自動銷毀,這意味著必須在應(yīng)用程序中顯式地關(guān)閉任何打開的ADO.NETConnection對象。如果打開了多個使用同一連接字符串的Connection對象,它們都將自動添加到同一個連接池中。若要連接到MicrosoftSQLServer7.0版或更高版本,使用SQLServer.NETFramework數(shù)據(jù)提供程序的SqlConnection對象。若要使用用于SQLServer的OLEDB提供程序(SQLOLEDB)連接到OLEDB數(shù)據(jù)源或者連接到MicrosoftSQLServer6.x版或較早版本,使用OLEDB.NETFramework數(shù)據(jù)提供程序的OleDbConnection對象。若要連接到ODBC數(shù)據(jù)源,使用ODBC.NETFramework數(shù)據(jù)提供程序的OdbcConnection對象。若要連接到Oracle數(shù)據(jù)源,使用Oracle.NETFramework數(shù)據(jù)提供程序的OracleConnection對象。2)Command類 當(dāng)需要對數(shù)據(jù)庫進行查詢時要用到命令對象(commandobject),可以使用Command構(gòu)造函數(shù)來創(chuàng)建命令,該構(gòu)造函數(shù)采用在數(shù)據(jù)源、Connection對象和Transaction對象中執(zhí)行的SQL語句的可選參數(shù)。也可以使用Connection的CreateCommand方法來創(chuàng)建用于特定Connection對象的命令??梢允褂肅ommandText屬性來查詢和修改Command對象的SQL語句。Command對象公開了幾個可用于執(zhí)行所需操作的Execute方法。當(dāng)以數(shù)據(jù)流的形式返回結(jié)果時,使用ExecuteReader可返回DataReader對象。使用ExecuteScalar可返回單個值。使用ExecuteNonQuery可執(zhí)行不返回行的命令。在ADO.NET中,兩個重要的命令類是OleDbCommand(用于SQLServer)和SqlCommand(用于任意其他OLEDB數(shù)據(jù)源)。3)DataReader類 可以使用ADO.NETDataReader從數(shù)據(jù)庫中檢索只讀、只進的數(shù)據(jù)流。查詢結(jié)果在查詢執(zhí)行時返回,在并存儲在客戶端的網(wǎng)絡(luò)緩沖區(qū)中,直到您使用DataReader的Read方法對它們發(fā)出請求。使用DataReader可以提高應(yīng)用程序的性能,因為一旦數(shù)據(jù)可用,DataReader方法就立即檢索該數(shù)據(jù),而不是等待返回查詢的全部結(jié)果;并且在默認情況下,該方法一次只在內(nèi)存中存儲一行,從而降低了系統(tǒng)開銷。數(shù)據(jù)讀取器應(yīng)該用于需要在內(nèi)存消耗上開銷最小的情形,如果想返回幾十萬行數(shù)據(jù),就不會使用DataReader對象,因為可能始終無法循環(huán)遍歷所有行。同Connection和Command類一樣,有兩種重要的常規(guī)DataReader類:SqlDataReader用于MSSQLServer7或更高版本,而OleDbDataReader則用于其他數(shù)據(jù)源。4)DataAdapter類 數(shù)據(jù)適配器的主要用途是在DataSet對象和激活的Connection對象代表的數(shù)據(jù)源之間建立一條連接。DataAdapter類包括的屬性允許用戶指定將實際用來在DataSet和目標(biāo)數(shù)據(jù)庫之間交互的SQL語句。換句話說,DataAdapter既負責(zé)填充DataSet對象,又負責(zé)把對DataSet的修改發(fā)送回數(shù)據(jù)源。比如,DataAdapter類提供了SelectCommand屬性,控制將被檢索的數(shù)據(jù):InsertCommand屬性指明DataSet中的新數(shù)據(jù)如何添加到數(shù)據(jù)庫;UpdateCommand屬性控制DataSet中修改的行如何發(fā)送到數(shù)據(jù)庫;DeleteCommand屬性控制如何從數(shù)據(jù)庫中刪除在DataSet中刪掉的行。在許多應(yīng)用程序中,這意味著從數(shù)據(jù)庫將數(shù)據(jù)讀入數(shù)據(jù)集,然后從數(shù)據(jù)集將已更改數(shù)據(jù)寫回數(shù)據(jù)庫。然而,數(shù)據(jù)適配器可以在任意源和數(shù)據(jù)集之間移動數(shù)據(jù)。例如,可能會有在MicrosoftExchange服務(wù)器和數(shù)據(jù)集之間移動數(shù)據(jù)的適配器。數(shù)據(jù)適配器用Connection對象連接數(shù)據(jù)源,然后再用Command對象從數(shù)據(jù)源中檢索數(shù)據(jù)并將數(shù)據(jù)送還給數(shù)據(jù)源。除了DataReader類以外,ADO.NET中的所有數(shù)據(jù)訪問都要經(jīng)過數(shù)據(jù)適配器。共有兩種DataAdapter類:OleDbDataAdapter類與SqlDataAdapter類。(5)NET非連接層DataSet類 ADO.NETDataSet是ADO.NET的斷開式結(jié)構(gòu)的核心組件。DataSet的設(shè)計目的很明確:為了實現(xiàn)獨立于任何數(shù)據(jù)源的數(shù)據(jù)訪問。因此,它可以用于多種不同的數(shù)據(jù)源,用于XML數(shù)據(jù),或用于管理應(yīng)用程序本地的數(shù)據(jù)。DataSet包含一個或多個DataTable對象的集合,這些對象由數(shù)據(jù)行和數(shù)據(jù)列以及主鍵、外鍵、約束和有關(guān)DataTable對象中數(shù)據(jù)的關(guān)系信息組成。DataSet類處理Tables集合(包括數(shù)據(jù)類型為DataTable的對象)和Relations集合(包括數(shù)據(jù)類型為DataRelation的對象),DataTable類處理Rows集合(包含數(shù)據(jù)類型為DataRow的對象)和Columns集合(包含數(shù)據(jù)類型為DataColumn的對象)。關(guān)于DataSet類需要注意的是,DataSet類可與所有類型的數(shù)據(jù)源共同工作,不存在SqlDataSet或OleDbDataSet類。 DataSet就是小型表或記錄集以及他們之間關(guān)系的集合。它是一個縮小的關(guān)系數(shù)據(jù)庫,在該數(shù)據(jù)庫中,數(shù)據(jù)保留在內(nèi)存中。這個“虛擬”的本地關(guān)系數(shù)據(jù)庫完全與數(shù)據(jù)的原始來源斷開,但它還是非常有用的相關(guān)功能。DataSet包含數(shù)據(jù)的本地副本,不管是在客戶端工作站、Web服務(wù)器還是在遠程Internet客戶端,它都可用于進行本地處理。所有的數(shù)據(jù)操作都可以在這個本地副本中完成,而不需要與原來的數(shù)據(jù)存儲器一直保持連接。這是一個主要的優(yōu)勢所在。由于適用于基于XML的技術(shù),因此一旦數(shù)據(jù)被放置在DataSet中,就與原始的元數(shù)據(jù)無關(guān)。DataSet的這種設(shè)計改正了在VB6中使用Recordset的許多缺點。特別是Recordset不能很好地處理分層的數(shù)據(jù)機構(gòu),而DataSet是為了使用分層數(shù)據(jù)而設(shè)計的。這種功能是對ADO的主要改進。ADO.NET中所使用的數(shù)據(jù)通常從像SQLServer或Oracle這樣的傳統(tǒng)關(guān)系數(shù)據(jù)存儲器開始。然后,用ADO.NET中的數(shù)據(jù)提供者提取數(shù)據(jù)。數(shù)據(jù)提供者是接口技術(shù),可用來連接數(shù)據(jù)庫以及從數(shù)據(jù)庫中放入和提取數(shù)據(jù)。只要數(shù)據(jù)提供者提取了數(shù)據(jù)并放置在DataSet中,就沒有必要繼續(xù)與數(shù)據(jù)庫相連接。然后可以用不同的方式處理該數(shù)據(jù)。其中最普通的操作之一是在DataSet中指定關(guān)系。接著代碼和所綁定的控件能改變DataSet中的數(shù)據(jù),如添加新行、改變或刪除原來的數(shù)據(jù)等。這些變化完成之后,然后數(shù)據(jù)提供者來解決這些變化。數(shù)據(jù)提供者查找DataSet中被變化的或被添加的數(shù)據(jù),并把這些變化或附加的內(nèi)容放置在原來的數(shù)據(jù)庫存儲器中。如果出現(xiàn)并發(fā)問題或是像數(shù)據(jù)庫脫機諸如此類的問題,數(shù)據(jù)提供者會給出適當(dāng)?shù)腻e誤提示。DataSet要發(fā)揮功能,它至少在自身的Tables集合中包含一個DataTable對象;要包含任意數(shù)據(jù),DataTable的Rows集合必須有一些由Column集合描述的行布局。DataTable對象模型的所有其他元素都是可選的。在Tables、Columns、Constraints和Relations集合中描述DataSet的相關(guān)結(jié)構(gòu)和功能。這些表的布局,包括如數(shù)據(jù)類型之類大額信息在Tables和Columns中,特定表的約束在Constraints中,表之間的關(guān)系在Relations中。1)DataTable類DataTable類在.NETFramework中位于System.Data.DataTable命名空間。該類代表內(nèi)存的一個數(shù)據(jù)表,這些數(shù)據(jù)包含在DataSet對象中。通過從DataAdapter向DataSet對象返回結(jié)果集,可以自動創(chuàng)建DataTable對象。也可以通過把DataColumnst對象添加到DataTable的DataColumns集合,以編程方式創(chuàng)建DataTable對象。DataSet中的每個DataTable對象都可以綁定到.NETFramework的WinForm和WebForm類中的數(shù)據(jù)認知的用戶界面對象。當(dāng)修改DataTable對象中包含的數(shù)據(jù)時,會觸發(fā)ColumnChanging、ColulmnChanged、RowChanging和RowChanged事件。當(dāng)從DataTable對象中刪除數(shù)據(jù)時,會觸發(fā)RowDelete和RowDeleted事件。在DataTable中添加新行的方法是調(diào)用DataTable的NewRow方法并給它傳遞一個DataRow對象。在DataTable中最大可以存儲16,777,216行數(shù)據(jù)。DataTable還是創(chuàng)建DataView對象的基礎(chǔ)。2)DataColumn類DataColumn類位于.NETFramework的System.DataColumn命名空間中。該類代表DataTable對象中列的模式。DataColumn類所包含的幾個屬性用來定義DataColumn對象中所含的數(shù)據(jù)類型。例如,DataType屬性控制DataColumn對象中能存儲的數(shù)據(jù)類型,DataValue屬性包含DataColumn的值,AllowDBNull屬性指定DataColumn是否能包含NULL值,MaxLength屬性設(shè)置Text數(shù)據(jù)類型的最大長度,Table屬性指定DataColumn所屬的DataTable對象??梢园袲ataColumn對象和UniqueConstraint對象關(guān)聯(lián)起來,讓DataColumn對象包含惟一值。另外,還可以讓一個DataColumn對象和另一個DataColumn對象相關(guān),其方法是創(chuàng)建一個DataRelation對象,并把它添加到DataSet的DataRelationCollection。3)DataRow類DataRow類位于.NETFramework的System.Data.DataRow命名空間,它代表DataTable對象中的一行數(shù)據(jù)。DataRow類和DataColumn類代表組成DataTable類的主要對象。DataRow對象用來在DataTable中插入、更新和刪除行。在DataTable中添加行又兩種方法:或者用NewRow方法創(chuàng)建一個新的DataRow對象,或者在DataSet的DataRowCollection中添加一個DataRow對象。更新DataRow對象只需修改它的DataValue屬性即可。刪除DataRow對象需要執(zhí)行它的Delete方法或調(diào)用DataSet的DataRowCollection對象的Remove方法。4)Constraints類Contraints類在.NETFramework中位于System.Data.Contraint命名空間,它代表可應(yīng)用于DataColumn對象的一套數(shù)據(jù)完整性規(guī)則。Constraint類沒有基類構(gòu)造函數(shù)。約束對象是使用ForeignKeyContraint構(gòu)造函數(shù)或UniqueConstraint構(gòu)造函數(shù)創(chuàng)建的。當(dāng)使用DataAdapter填充DataSet時,Constraint不會被自動添加到DataTable中。如果想在操作的DataTable中使用Constraints,必須在代碼中創(chuàng)建和托管Constraints。5)DataRelation類 位于.NETFramework的System.Data.DataRelation命名空間中的DataRelation類的作用是代表DataSet中兩個DataTable對象之間的父子關(guān)系。例如,可以創(chuàng)建一個DataRelation對象,代表OrderHeader表中的OrderIDDataColumn與OrderDetail表中對應(yīng)的OrderIDDataColumn的關(guān)系。DataRelation對象的基本功能是便于導(dǎo)航和從相關(guān)DataTable中檢索數(shù)據(jù)。為了在兩個DataTable對象之間創(chuàng)建關(guān)系,這兩個DataTables都必須包含具有匹配特性的DataColumn對象。當(dāng)?shù)谝淮蝿?chuàng)建DataRelation對象時,.NETFramework將進行檢查,以確保建立的是合法的關(guān)系,然后它把DataRelation對象添加到DataRelationCollection,這個集合跟蹤DataSet中所有的數(shù)據(jù)關(guān)系。DataRelation類支持從父表到子表的層疊式變化,這是由ForeignKeyConstraint類控制的。(6)ADO.NET結(jié)構(gòu)圖4.2ADO.NET結(jié)構(gòu)4.2系統(tǒng)實現(xiàn)4.2.1數(shù)據(jù)庫實現(xiàn)使用MSSQLServer2000建立數(shù)據(jù)庫是很方便的,這里就不再詳述數(shù)據(jù)庫建立的步驟,在此列舉數(shù)據(jù)庫表的結(jié)構(gòu)。庫存表:此表用來記錄物資的庫存量表名:storge主鍵:s_id字段字段描述數(shù)據(jù)類型寬度是否為空備注S_Name物資姓名Varchar12NoS_Id物資編號Varchar18NoS_size庫存量float10NoS_minsize安全庫存float10No入庫表:用來記錄入庫物資的信息表名:in_storage主鍵:s_id字段字段描述數(shù)據(jù)類型寬度是否為空備注S_Name物資姓名Varchar12Nos_id物資編號Varchar18NoS_intime入庫時間DatetimeNo使用日期掩碼,輸入格式為00/00/0000日/月/年S_insize入庫量floatNoH_number合同編號Varchar10YesS_teller出納員Varchar10NoS_fname供應(yīng)商Varchar30No出庫表:用來記錄出庫物資的信息表名:out_storage主鍵:s_id字段字段描述數(shù)據(jù)類型寬度是否為空備注S_Name物資姓名Varchar12NoS_id物資編號Varchar18NoS_outtime入庫時間DatetimeNo使用日期掩碼,輸入格式為00/00/0000日/月/年S_outsize入庫量floatNoS_teller出納員Varchar10No合同表:用來記錄合同的信息表名:compact主鍵:H_id字段字段描述數(shù)據(jù)類型寬度是否為空備注H_id合同編號Varchar18NoH_time簽訂時間DatetimeNo使用日期掩碼,輸入格式為00/00/0000日/月/年S_fname供應(yīng)商Varchar40NoS_name商品名稱Varchar20NoH_ftime發(fā)貨時間DatetimeNo使用日期掩碼,輸入格式為00/00/0000日/月/年H_stime結(jié)貨時間DatetimeNoH_size貨物量float20No合同執(zhí)行檢查表:用來檢查合同剩余物資的情況表名:compact_supervise主鍵:H_ id字段字段描述數(shù)據(jù)類型寬度是否為空備注H_id合同編號Varchar18NoH_size物資剩余Float16yes供應(yīng)商表:用來記錄供應(yīng)商的基本情況表名:producter主鍵:F_name字段字段描述數(shù)據(jù)類型寬度是否為空備注f_name供應(yīng)商名稱Varchar20NoF_telephone電話Varchar18NoF_address地址Varchar40NoF_product主要產(chǎn)品Varchar10NoF_appraise評價Varchar10No使用下拉框掩碼,用戶在輸入時只能選擇(好,較好,中等,差)。供應(yīng)人員表:用來管理供應(yīng)出人員的基本信息。表名:teller主鍵:T_id字段字段描述數(shù)據(jù)類型寬度是否為空備注T_name供應(yīng)人員名稱Varchar20NoT_telephone電話Varchar18NoT_address地址Varchar40NoT_id身份權(quán)限Varchar10NoT_number身份證號Varchar10NoT_sex性別Varchar2No使用下拉框掩碼,用戶在輸入時只能選擇(男|女)。男對應(yīng)1,女對應(yīng)04.2.2程序界面設(shè)計與實現(xiàn)方法界面比較多,在此只介紹具有代表性的幾個。(1)系統(tǒng)主界面:模塊的主體框架采用的是多文檔界面MDI(MultipleDocumentInterface),它的好處是能同時打開多個窗口,并且可以自由的在各個窗口之間進行切換。利用MDI我們可以以最小的改動對系統(tǒng)升級圖4.3系統(tǒng)主界面主要是以菜單的形式激發(fā)事件。菜單項倉庫管理有下拉菜單:圖4.4菜單項其中只有登陸菜單項是可用的,只有對于登陸成功的用戶,其他不可用的菜單項才可以變成可用的,登陸窗口如下:圖4.5登陸窗口在登陸窗口的(登陸)按鈕的click事件中,如果登陸成功有如下語句DimprmmenuAsMainMenuprmmenu=Me.ParentForm.Menuprmmenu.MenuItems(0).MenuItems(0).Enabled=Trueprmmenu.MenuItems(0).MenuItems(1).Enabled=Trueprmmenu.Menu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論