大型數(shù)據(jù)庫課程設(shè)計(jì)---銷售管理系統(tǒng)_第1頁
已閱讀1頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  課 程 設(shè) 計(jì)</b></p><p><b>  課程設(shè)計(jì)任務(wù)書</b></p><p>  學(xué)生姓名: 專業(yè)班級(jí): </p><p>  指導(dǎo)教師: 工作單位: </p><p

2、><b>  題 目: </b></p><p>  已知技術(shù)參數(shù)和設(shè)計(jì)要求:</p><p>  調(diào)查書店圖書銷售業(yè)務(wù),設(shè)計(jì)的圖書銷售系統(tǒng)主要包括進(jìn)貨、退貨、統(tǒng)計(jì)、銷售</p><p><b>  功能。</b></p><p>  進(jìn)貨:根據(jù)某種書籍的庫存量及銷售情況確定進(jìn)貨數(shù)量,根據(jù)供

3、應(yīng)商報(bào)價(jià)選擇供應(yīng)</p><p>  商。輸出一份進(jìn)貨單并自動(dòng)修改庫存量,把本次進(jìn)貨的信息添加到進(jìn)貨庫

4、

5、 </p><p>  退貨:顧客把己買的書籍退還給書店。輸出一份退貨單并自動(dòng)修改庫存量,把本次</p><p>  退貨的信息添加到退貨庫中。</p><p>  要求完成的主要任務(wù):

6、(包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說明書撰寫等具體要求)</p><p>  完成的任務(wù):實(shí)現(xiàn)了各類訂單的生成以及根據(jù)訂單修改庫存的圖書存儲(chǔ)量。</p><p>  時(shí)間安排:2011年12月9日-2011年12月25日</p><p>  指導(dǎo)教師簽名: 年 月 日</p><p>

7、  《大型數(shù)據(jù)庫》課程設(shè)計(jì)</p><p><b>  題目:銷售管理系統(tǒng)</b></p><p><b>  班級(jí): </b></p><p><b>  姓名: </b></p><p><b>  學(xué)號(hào): </b></p><p&

8、gt;<b>  指導(dǎo)教師: </b></p><p>  完成日期:2011年12月15日</p><p><b>  目錄</b></p><p><b>  1.項(xiàng)目概述1</b></p><p><b>  1.1功能概述1</b></p

9、><p>  1.2 可行性分析1</p><p>  2.項(xiàng)目需求分析2</p><p>  2.1系統(tǒng)功能需求分析2</p><p>  2.2系統(tǒng)總用例分析2</p><p>  2.3系統(tǒng)用例分析3</p><p>  2.3.1 基本信息維護(hù)用例3</p><

10、;p>  2.3.2采購商品用例3</p><p>  2.3.3 庫存管理3</p><p>  2.3.4 銷售商品4</p><p>  2.4 系統(tǒng)流程分析4</p><p>  2.5 模塊分析5</p><p>  3.系統(tǒng)詳細(xì)設(shè)計(jì)6</p><p>  3.1

11、數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)6</p><p><b>  3.2表設(shè)計(jì)6</b></p><p>  3.3后臺(tái)數(shù)據(jù)庫設(shè)計(jì)及重要的PL&SQL代碼7</p><p>  3.3 前臺(tái)開發(fā)10</p><p>  3.3.1 系統(tǒng)登陸界面10</p><p>  3.3.2 主界面10&

12、lt;/p><p>  3.3.3 基本信息維護(hù)界面11</p><p>  3.3.4 采購界面11</p><p>  3.3.5 銷售界面12</p><p>  3.3.6 庫存界面12</p><p>  3.4 功能實(shí)現(xiàn)14</p><p>  3.4.1 采購訂單生成14&

13、lt;/p><p>  3.4.2 采購?fù)素浻唵紊晒δ?5</p><p>  3.4.3 銷售退貨訂單生成15</p><p>  3.4.4 庫存盤點(diǎn)-采購訂單15</p><p>  3.4.5 庫存盤點(diǎn)-退貨訂單16</p><p>  3.4.6 庫存盤點(diǎn)-銷售退貨訂單16</p>&l

14、t;p><b>  4.開發(fā)心得17</b></p><p><b>  1.項(xiàng)目概述</b></p><p>  書店為了對(duì)圖書的采購、銷售信息的管理,就需要一個(gè)方便快捷的軟件來對(duì)此進(jìn)行系統(tǒng)的、高效的操作。該圖書管理系統(tǒng)操作節(jié)目簡(jiǎn)潔,實(shí)用,能夠在較短時(shí)間內(nèi)掌握使用方法。</p><p><b>  1.

15、1功能概述</b></p><p>  通過初步分析,得到銷售管理系統(tǒng)的主要功能如下:</p><p><b>  ·用戶登陸驗(yàn)證</b></p><p><b>  ·用戶信息維護(hù)</b></p><p><b>  ·圖書信息維護(hù)</b&

16、gt;</p><p><b>  ·供應(yīng)商信息維護(hù)</b></p><p><b>  ·采購入庫訂單生成</b></p><p><b>  ·采購?fù)素浻唵紊?lt;/b></p><p><b>  ·銷售出庫訂單生成<

17、/b></p><p><b>  ·銷售退貨訂單生成</b></p><p><b>  ·庫存查詢</b></p><p><b>  1.2 可行性分析</b></p><p>  從投資角度看,本系統(tǒng)能夠提高業(yè)務(wù)的運(yùn)轉(zhuǎn)效率和企業(yè)的市場(chǎng)競(jìng)爭(zhēng)力,采

18、用計(jì)算機(jī)軟件管理,可以降低運(yùn)營成本,減少員工的工作量。</p><p>  該系統(tǒng)運(yùn)用.NET平臺(tái)和Oracle數(shù)據(jù)庫,能夠有效的幫助企業(yè)管理業(yè)務(wù),能夠滿足企業(yè)的需要。</p><p>  再者,現(xiàn)在運(yùn)用計(jì)算機(jī)軟件管理企業(yè)業(yè)務(wù)已經(jīng)是一種趨勢(shì),運(yùn)用軟件可以減少員工手工記賬是的錯(cuò)誤,大大的提高了企業(yè)的營業(yè)效率。</p><p><b>  2.項(xiàng)目需求分析&l

19、t;/b></p><p>  2.1系統(tǒng)功能需求分析</p><p>  分析得出銷售管理系統(tǒng)的使用者分為三類:銷售人員、采購人員以及管理人員。于是對(duì)三者收集需求,統(tǒng)計(jì)得到如下表所示的功能需求。</p><p>  根據(jù)用戶的需求,可以把模塊劃分為如表2-2所示,并對(duì)其模塊進(jìn)行劃分和功能描述。</p><p>  2.2系統(tǒng)總用例分析

20、</p><p>  圖 2-1 系統(tǒng)總用例</p><p><b>  2.3系統(tǒng)用例分析</b></p><p>  2.3.1 基本信息維護(hù)用例</p><p>  ·描述:提供維護(hù)員工信息、維護(hù)圖書信息、維護(hù)供應(yīng)商信息(刪除操作在庫存不為0是不能進(jìn)行圖書信息刪除)。</p><p&g

21、t;<b>  ·參與者:管理者。</b></p><p>  ·用例圖:圖2-2.</p><p>  圖 2-2 基本信息維護(hù)用例</p><p>  2.3.2采購商品用例</p><p>  ·描述:提供采購圖書入庫(若新增圖書,則該圖書的庫存量為0 ,需要在采購界面輸入采購數(shù)量)的

22、功能。</p><p><b>  ·參與者:采購員.</b></p><p><b>  ·用例圖:圖2-3</b></p><p>  圖 2-3 采購用例圖</p><p>  2.3.3 庫存管理</p><p>  ·描述:提供圖書庫存

23、盤點(diǎn)。</p><p>  ·參與者:系統(tǒng)管理員、采購員、銷售員</p><p><b>  ·用例圖:圖2-4</b></p><p>  圖 2-4 庫存管理用例圖</p><p>  2.3.4 銷售商品</p><p>  ·描述:生成銷售訂單與銷售退貨訂單。

24、</p><p><b>  ·參與者:銷售員。</b></p><p><b>  ·用例圖:圖2-5</b></p><p>  圖 2-5 銷售用例圖</p><p>  2.4 系統(tǒng)流程分析</p><p>  了解用戶需求之后,就能夠根據(jù)用戶需求

25、來設(shè)定系統(tǒng)的流程,下面就是整個(gè)銷售系統(tǒng)的流程圖,如圖 2-7所示。</p><p>  圖 2-7 銷售系統(tǒng)流程圖</p><p><b>  2.5 模塊分析</b></p><p>  通過上面的分析能夠得出該系統(tǒng)的模塊結(jié)構(gòu)圖如圖 2-8所示</p><p>  圖 2-8 銷售系統(tǒng)模塊結(jié)構(gòu)圖</p>

26、<p><b>  3.系統(tǒng)詳細(xì)設(shè)計(jì)</b></p><p>  3.1 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)</p><p><b>  3.2表設(shè)計(jì)</b></p><p>  在Oracle中設(shè)計(jì)的數(shù)據(jù)庫名字為BookSaleD,其中包含用戶信息表,供應(yīng)商信息表,圖書信息表,庫存表,訂單表。</p><

27、;p>  用戶表(用戶編號(hào),用戶帳號(hào),用戶密碼,用戶名稱,權(quán)限);</p><p>  供應(yīng)商表格(供應(yīng)商編號(hào),供應(yīng)商名稱,負(fù)責(zé)人電話,聯(lián)系電話,地址);</p><p>  圖書信息(圖書編號(hào),圖書名稱,價(jià)格,折扣,出版日期,供應(yīng)商編號(hào),圖書類型);</p><p>  庫存表(庫存編號(hào),圖書編號(hào),圖書名稱,庫存數(shù)量,最低數(shù)量);</p>&l

28、t;p>  訂單表(訂單編號(hào),日期,操作員,圖書名稱,數(shù)量,訂單類型,判斷符號(hào))。</p><p>  3.3后臺(tái)數(shù)據(jù)庫設(shè)計(jì)及重要的PL&SQL代碼</p><p>  首先開辟一個(gè)新的表空間:</p><p>  create tableplace booksaledb datafile</p><p>  'E:\o

29、racle\product\10.2.0\admin\orcl' size 100M;</p><p>  然后建立一個(gè)新的用戶:</p><p>  create user booksale identified by zhbsm0010 default tablespace booksaledb;</p><p>  對(duì)用戶授權(quán),由于該用戶會(huì)執(zhí)行很多操作

30、,因此這里授予最高的dba權(quán)限(該操作是在sysdba用戶先操作的):</p><p>  Grant dba to booksale;</p><p>  圖書信息表,用來存儲(chǔ)圖書的各種信息。PL&SQL代碼如下:</p><p>  create table BookInfo</p><p>  (BookId varchar2(

31、22) primary key,</p><p>  BookName varchar2(50) not null,</p><p>  BookPrice number(10,2) not null,</p><p>  BookRate number(3,2) not null,</p><p>  BookDate date not n

32、ull,</p><p>  BookProviderId int not null,</p><p>  BookType varchar2(50) not null,</p><p>  foreign key(BookProviderId) references Providers(PrivId))</p><p>  用戶信息表,用來

33、存儲(chǔ)用戶的基本信息。其中用戶權(quán)限一項(xiàng)0表示管理員,1表示銷售員,2表示采購員。</p><p>  create table UserInfo</p><p>  (UserId int primary key,</p><p>  UserLonginID varchar2(20) not null,</p><p>  UserName

34、varchar2(20) not null,</p><p>  UserPass varchar2(20) not null,</p><p>  UserRole int not null)</p><p>  供應(yīng)商表,及圖書出版社,用戶存儲(chǔ)供應(yīng)商的基本信息。</p><p>  create table Providers</p

35、><p> ?。≒rivId int primary key,</p><p>  PrivName varchar2(20) not null,</p><p>  PrivLinkMan varchar2(20) not null,</p><p>  privTel varchar2(20) not null,</p><

36、;p>  PrivAdr varchar2(50) not null)</p><p>  訂單表,用來存儲(chǔ)訂單的信息。其中在訂單類型一欄中0表示采購入庫,1表示采購?fù)素洠?表示銷售出庫,3表示銷售退貨出庫,還有訂單新舊判斷列0代表是新訂單,1代表是已經(jīng)經(jīng)過庫存盤點(diǎn)之后的訂單。</p><p>  create table Orders</p><p> ?。?/p>

37、OrderId int primary key,</p><p>  OrderTime timestamp with time zone default systimestamp not null,</p><p>  UserId int not null,</p><p>  boonname varchar2(50) not null;</p>

38、<p>  OrderQuality int not null,</p><p>  OrderType int not null,</p><p>  OrderJudge int not null,</p><p>  foreign key(UserId) references UserInfo(UserId))</p><p&

39、gt;  庫存表,顯示圖書的庫存量,以及產(chǎn)生采購訂單的標(biāo)準(zhǔn)。</p><p>  create table StoreRoom</p><p>  (StoreID int primary key,</p><p>  BookId varchar2(22) not null,</p><p>  BookName varchar2(50)

40、not null,</p><p>  StoreSum int not null,</p><p>  StoreLastNum int not null,</p><p>  foreign key(BookId) references BookInfo(BookId) )</p><p>  另外,在數(shù)據(jù)庫設(shè)計(jì)中還設(shè)計(jì)了幾個(gè)遞增序號(hào),分

41、別是:UserId,StoreID,OrderId,PrivId。</p><p>  產(chǎn)生序列號(hào)的代碼如下:</p><p><b>  首先對(duì)用戶授權(quán):</b></p><p>  grant create sequence to BookSale</p><p>  然后建立序列號(hào),由于序列號(hào)建立的代碼格式一樣,因

42、此這里只列出建立orderid的代碼:</p><p>  create sequence orderid INCREMENT by 1 START with 1 NOCYCLE</p><p>  建立了序列號(hào)之后,用觸發(fā)器來產(chǎn)生遞增的列下面是在orders表上建立的orderid遞增的觸發(fā)器,每當(dāng)插入一張訂單,訂單編號(hào)就增加1,代碼如下:</p><p>  c

43、reate or replace trigger orders_trigger</p><p>  before insert on orders for each row</p><p><b>  begin</b></p><p>  select orderid.nextval into:new.orderid from dual;&l

44、t;/p><p><b>  end;</b></p><p><b>  3.3 前臺(tái)開發(fā)</b></p><p>  前臺(tái)開發(fā)使用的是.net開發(fā)工具,.net能夠支持Oracle數(shù)據(jù)庫的連接,而且提供了大量的控件,便于界面設(shè)計(jì)。能夠有效的提高開發(fā)效率。</p><p>  3.3.1 系統(tǒng)登陸界面

45、</p><p>  系統(tǒng)登陸界面提供給用戶登陸系統(tǒng)的可視操作,用戶根據(jù)相應(yīng)的用戶名,密碼,登陸權(quán)限登陸系統(tǒng)。不同的權(quán)限在會(huì)擁有不同的操作界面。</p><p>  圖 3-2 系統(tǒng)登陸界面</p><p><b>  3.3.2 主界面</b></p><p>  主界面是根據(jù)不同的權(quán)限的用戶設(shè)計(jì)的一個(gè)菜單界面,用戶在

46、這個(gè)界面可以根據(jù)自己的權(quán)限與操作要求選擇相應(yīng)的操作。選這操作之后會(huì)打開子窗口,進(jìn)行下面的操作。</p><p>  圖 3-3 系統(tǒng)主界面</p><p>  3.3.3 基本信息維護(hù)界面</p><p>  基本信息界面是只有擁有管理員權(quán)限的用戶才能夠操作的界面,才這個(gè)界面中有員工信息、圖書信息、供應(yīng)商信息三個(gè)選項(xiàng),分別對(duì)應(yīng)員工信息更新,圖書信息更新,供應(yīng)商信息跟

47、新。</p><p>  3.3.4 采購界面</p><p>  采購界面是采購員生成采購訂單的界面,采購訂單包括采購與退貨的訂單。采購員對(duì)圖書進(jìn)行相關(guān)采購之后,可以生成采購訂單,以便對(duì)于庫存的管理。</p><p>  圖 3-4 采購訂單生成界面</p><p>  圖 3-5 采購?fù)素浻唵紊山缑?lt;/p><p&g

48、t;  3.3.5 銷售界面</p><p>  銷售界面是銷售員生成銷售訂單的界面,銷售訂單包括正常銷售和銷售退貨。銷售員在圖書銷售時(shí)產(chǎn)生銷售訂單,以便對(duì)庫存進(jìn)行管理。</p><p>  圖 3-6 銷售退貨訂單生成界面</p><p>  3.3.6 庫存界面</p><p>  庫存界面是根據(jù)各種訂單對(duì)庫存進(jìn)行相關(guān)的管理的界面。在庫存

49、界面可以根據(jù)訂單修改庫存圖書的相關(guān)信息。也可以查看訂單的相關(guān)信息,從而能夠統(tǒng)計(jì)訂單的各種信息,對(duì)圖書銷售進(jìn)行匯總。</p><p>  圖 3-7 盤點(diǎn)庫存—采購?fù)素浻唵?lt;/p><p>  圖 3-8 庫存盤點(diǎn)-采購訂單</p><p>  圖 3-9 庫存盤點(diǎn)-銷售訂單</p><p>  圖 3-10 庫存盤點(diǎn)-銷售退貨訂單</p

50、><p><b>  3.4 功能實(shí)現(xiàn)</b></p><p>  該系統(tǒng)主要實(shí)現(xiàn)的功能有,根據(jù)對(duì)庫存圖書的存儲(chǔ)量產(chǎn)生采購訂單,退貨訂單。根據(jù)銷售的圖書兩產(chǎn)生銷售訂單,然后如果有顧客退還所購買的圖書,要產(chǎn)生銷售退貨訂單,然后更加訂單再修改庫存中的圖書存量。</p><p>  圖 3-11 系統(tǒng)實(shí)驗(yàn)的功能關(guān)系</p><p>

51、;  3.4.1 采購訂單生成</p><p>  輸入圖書名稱可以查看庫存中的該種圖書存量與和該圖書有關(guān)的訂單。根據(jù)庫存量與訂單可以決定需要采購的圖書數(shù)量。在輸入圖書名稱和采購數(shù)量,點(diǎn)擊“生成采購訂單”就能夠產(chǎn)生新的采購訂單。</p><p>  圖 3-12 采購訂單生成功能</p><p>  3.4.2 采購?fù)素浻唵紊晒δ?lt;/p><p

52、>  入圖書名稱可以查看庫存中的該種圖書存量與和該圖書有關(guān)的訂單。根據(jù)庫存量與訂單可以決定需要退貨的圖書數(shù)量。在輸入圖書名稱和采購數(shù)量,點(diǎn)擊“生成訂單”就能夠產(chǎn)生新的退貨訂單。</p><p>  圖 3-13 退貨訂單生成實(shí)現(xiàn)</p><p>  3.4.3 銷售退貨訂單生成</p><p>  入圖書名稱可以查看庫存中的該種圖書存量與和該圖書有關(guān)的訂單。根

53、據(jù)庫存量與訂單可以決定需要退貨的圖書數(shù)量。在輸入圖書名稱和退貨數(shù)量,點(diǎn)擊“生成訂單”就能夠產(chǎn)生新的退貨訂單。</p><p>  圖 3-14 銷售退貨訂單生成</p><p>  3.4.4 庫存盤點(diǎn)-采購訂單</p><p>  點(diǎn)擊訂單查詢可以查看新的采購訂單,根據(jù)圖書庫存,輸入圖書名稱,圖書數(shù)量,和訂單編號(hào)可以修改圖書的庫存量和改變訂單是成為已經(jīng)使用過的訂單

54、。查詢功能可以查看該圖書在庫存中的存儲(chǔ)量。</p><p>  圖 3-15 盤點(diǎn)-采購入庫</p><p>  3.4.5 庫存盤點(diǎn)-退貨訂單</p><p>  點(diǎn)擊訂單查詢可以查看新的退貨訂單,根據(jù)圖書庫存,輸入圖書名稱,圖書數(shù)量,和訂單編號(hào)可以修改圖書的庫存量和改變訂單是成為已經(jīng)使用過的訂單。查詢功能可以查看該圖書在庫存中的存儲(chǔ)量。</p>&

55、lt;p>  圖 3-16 盤點(diǎn)-采購?fù)素?lt;/p><p>  3.4.6 庫存盤點(diǎn)-銷售退貨訂單</p><p>  點(diǎn)擊訂單查詢可以查看新的銷售退貨訂單,根據(jù)圖書庫存,輸入圖書名稱,圖書數(shù)量,和訂單編號(hào)可以修改圖書的庫存量和改變訂單是成為已經(jīng)使用過的訂單。查詢功能可以查看該圖書在庫存中的存儲(chǔ)量。</p><p>  圖 3-17 盤點(diǎn)-銷售退貨</p

56、><p><b>  4.開發(fā)心得</b></p><p>  通過圖書銷售系統(tǒng)的開發(fā),讓我了解到一個(gè)一項(xiàng)目開發(fā)的大致過程,雖然這個(gè)系統(tǒng)某些功能根據(jù)課程設(shè)計(jì)的要求并沒有開發(fā)實(shí)現(xiàn)。但是就這個(gè)系統(tǒng)目前能實(shí)現(xiàn)的功能來說,即使有些地方不夠完善,但是對(duì)于我來說這也是一個(gè)新的里程碑。這個(gè)系統(tǒng)的開發(fā),不僅讓我了解了有關(guān)Oracle數(shù)據(jù)庫的知識(shí),還有.NET的有關(guān)知識(shí),認(rèn)識(shí)的在大學(xué)很多知

57、識(shí)并不是從課堂上來的,更多的是靠自己平時(shí)學(xué)習(xí)慢慢積累的。</p><p>  每次課程設(shè)計(jì)都有不同的收獲,這次也一樣。這次課程設(shè)計(jì)我就靠自己學(xué)會(huì)了C# 的相關(guān)編程和一種關(guān)于Oracle的PL&SQL的有關(guān)知識(shí)。這對(duì)我能完成這次項(xiàng)目開發(fā)有很大的幫助。</p><p><b>  參考文獻(xiàn):</b></p><p>  1.秦倩、石葉平,精

58、通C#與.NET 4.0 數(shù)據(jù)庫開發(fā),北京,清華大學(xué)出版社,2011.1</p><p>  2.蕭文龍、陳怡如,Oracle 10g 數(shù)據(jù)庫入門與實(shí)踐,北京,清華大學(xué)出版社出版社,2006.1</p><p>  3.(美)凱特 著,蘇金國等譯,Oracle9i&10g編程藝術(shù):深入數(shù)據(jù)庫體系結(jié)構(gòu),北京,人民郵電出版社,2006.1</p><p><

59、;b>  附錄1:</b></p><p><b>  數(shù)據(jù)庫相關(guān)代碼</b></p><p>  create sequence orderid INCREMENT by 1 START with 1 NOCYCLE;</p><p><b>  /</b></p><p>  

60、create or replace trigger orders_trigger</p><p>  before insert on orders for each row</p><p><b>  begin</b></p><p>  select orderid.nextval into:new.orderid from dual;&

61、lt;/p><p><b>  end;</b></p><p><b>  /</b></p><p>  create sequence userid INCREMENT by 1 START with 1 NOCYCLE;</p><p><b>  /</b></p&

62、gt;<p>  create or replace trigger orders_trigger</p><p>  before insert on orders for each row</p><p><b>  begin</b></p><p>  select userid.nextval into:new.user

63、id from dual;</p><p><b>  end;</b></p><p><b>  /</b></p><p>  create sequence StoreID INCREMENT by 1 START with 1 NOCYCLE;</p><p><b>  /&l

64、t;/b></p><p>  create or replace trigger orders_trigger</p><p>  before insert on orders for each row</p><p><b>  begin</b></p><p>  select StoreID.nextv

65、al into:new.StoreID from dual;</p><p><b>  end;</b></p><p><b>  /</b></p><p>  create sequence PrivId INCREMENT by 1 START with 1 NOCYCLE;</p><p&g

66、t;<b>  /</b></p><p>  create or replace trigger orders_trigger</p><p>  before insert on orders for each row</p><p><b>  begin</b></p><p>  sele

67、ct PrivId.nextval into:new.PrivId from dual;</p><p><b>  end;</b></p><p><b>  /</b></p><p><b>  附錄2:</b></p><p><b>  功能實(shí)現(xiàn)主要代碼&

68、lt;/b></p><p><b>  附圖1 目錄結(jié)構(gòu)圖</b></p><p><b>  //采購訂單生成</b></p><p>  using System;</p><p>  using System.Collections.Generic;</p><p&

69、gt;  using System.ComponentModel;</p><p>  using System.Data;</p><p>  using System.Drawing;</p><p>  using System.Text;</p><p>  using System.Windows.Forms;</p>

70、<p>  using Oracle.DataAccess.Client;</p><p>  namespace BookSaleSystem.Purchase</p><p><b>  {</b></p><p>  public partial class Purchase_OrderAdd : Form</p>

71、<p><b>  {</b></p><p>  public Purchase_OrderAdd()</p><p><b>  {</b></p><p>  InitializeComponent();</p><p><b>  }</b></p&

72、gt;<p>  private DataTable Load_Data()</p><p><b>  {</b></p><p>  OracleConnection con = new OracleConnection(ConDB.constr);</p><p><b>  try</b></p

73、><p><b>  {</b></p><p>  con.Open();</p><p>  DataTable dt = new DataTable();</p><p>  if (Bookname_Inquire.Text.Trim() != "")</p><p>&l

74、t;b>  {</b></p><p>  string sql = string.Format("select StoreID,BookId,BookName,StoreSum,StoreLastNum from storeroom where bookname like '%{0}%'", Bookname_Inquire.Text);</p>

75、<p>  OracleDataAdapter da = new OracleDataAdapter(sql, con);</p><p>  da.Fill(dt);</p><p><b>  }</b></p><p><b>  else</b></p><p><b&g

76、t;  {</b></p><p>  string sql = @"select * from storeroom";</p><p>  OracleDataAdapter da = new OracleDataAdapter(sql, con);</p><p>  da.Fill(dt);</p><p&g

77、t;<b>  }</b></p><p>  return (dt);</p><p><b>  }</b></p><p><b>  finally</b></p><p><b>  {</b></p><p>  con

78、.Close();</p><p><b>  }</b></p><p><b>  }</b></p><p>  private DataTable OrderInfo_Load()</p><p><b>  {</b></p><p>  Or

79、acleConnection con = new OracleConnection(ConDB.constr);</p><p><b>  try</b></p><p><b>  {</b></p><p>  con.Open();</p><p>  DataTable dt = new

80、DataTable();</p><p>  if (Bookname_Inquire.Text.Trim() != "")</p><p><b>  {</b></p><p>  string sql = string.Format("select OrderId,OrderTime,UserId,bookn

81、ame,OrderQuality,OrderType,OrderJudge from Orders where bookname like '%{0}%' and ordertype=0", Bookname_Inquire.Text);</p><p>  OracleDataAdapter da = new OracleDataAdapter(sql, con);</p>

82、<p>  da.Fill(dt);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  string sql = @"select * from orders

83、";</p><p>  OracleDataAdapter da = new OracleDataAdapter(sql, con);</p><p>  da.Fill(dt);</p><p><b>  }</b></p><p>  return (dt);</p><p>&

84、lt;b>  }</b></p><p><b>  finally </b></p><p><b>  {</b></p><p>  con.Close();</p><p><b>  }</b></p><p><b&g

85、t;  }</b></p><p>  private void Inquiry_button_Click(object sender, EventArgs e)</p><p><b>  {</b></p><p>  Inquiry_dataGridView.DataSource = Load_Data();</p>

86、;<p>  OrderInfo_dataGridView.DataSource = OrderInfo_Load();</p><p><b>  }</b></p><p>  private void Produce_PurchaseOrder_Click(object sender, EventArgs e)</p><p&g

87、t;<b>  {</b></p><p>  OracleConnection con = new OracleConnection(ConDB.constr);</p><p><b>  try</b></p><p><b>  {</b></p><p>  con.

88、Open();</p><p>  string sql = string.Format("insert into orders( UserId,bookname,OrderQuality,OrderType,OrderJudge)"+" values( {0},'{1}',{2},{3},{4})", LoginInfo.LoginUserInfo.Use

89、rId, Order_Bookname.Text, Order_Quality.Text,0,0);</p><p>  OracleCommand com = new OracleCommand(sql,con);</p><p>  int result = com.ExecuteNonQuery();</p><p>  if (result != 0)<

90、;/p><p><b>  {</b></p><p>  MessageBox.Show("訂單生成生成成功!");</p><p><b>  }</b></p><p><b>  else </b></p><p><b&g

91、t;  {</b></p><p>  MessageBox.Show("訂單生成生成失??!");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  finally</b></p&g

92、t;<p><b>  {</b></p><p>  con.Close();</p><p><b>  }</b></p><p><b>  }</b></p><p>  private void Purchase_OrderAdd_Load(objec

93、t sender, EventArgs e)</p><p><b>  {</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b

94、>  //登陸窗口</b></p><p>  using System;</p><p>  using System.Collections.Generic;</p><p>  using System.ComponentModel;</p><p>  using System.Data;</p>&l

95、t;p>  using System.Drawing;</p><p>  using System.Text;</p><p>  using System.Windows.Forms;</p><p>  using Oracle.DataAccess.Client;</p><p>  using BookSaleSystem.E

96、ntity;</p><p>  namespace BookSaleSystem</p><p><b>  {</b></p><p>  public partial class Login_Form : Form</p><p><b>  {</b></p><p>

97、;  public Login_Form()</p><p><b>  {</b></p><p>  InitializeComponent();</p><p><b>  }</b></p><p>  private void login_button_Click(object sende

98、r, EventArgs e)</p><p><b>  {</b></p><p>  loginValidate();</p><p><b>  }</b></p><p>  public void loginValidate()</p><p><b>

99、  {</b></p><p>  if (userloginid_textBox.Text.Trim() == "" || string.IsNullOrEmpty(userloginid_textBox.Text))</p><p><b>  {</b></p><p>  MessageBox.Show(

100、"用戶名不能為空!", "登錄提示");</p><p>  userloginid_textBox.Focus();</p><p><b>  }</b></p><p>  else if (password_textBox.Text.Trim() == "" || string

101、.IsNullOrEmpty(password_textBox.Text))</p><p><b>  {</b></p><p>  MessageBox.Show("密碼不能為空!", "登錄提示");</p><p>  password_textBox.Focus();</p>&

102、lt;p><b>  }</b></p><p>  else if (usertype_comboBox.Text.Trim() == "" || string.IsNullOrEmpty(usertype_comboBox.Text.Trim()))</p><p><b>  {</b></p>&l

103、t;p>  MessageBox.Show("請(qǐng)選擇登錄類型!", "登錄提示");</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  

104、UserInfo u = null;</p><p>  OracleConnection con = new OracleConnection(ConDB.constr);</p><p><b>  try</b></p><p><b>  {</b></p><p>  con.Open()

105、;</p><p>  int userRole = usertype_comboBox.SelectedIndex;</p><p>  string sql = string.Format("select * from userinfo where userlonginid='{0}' and userpass='{1}'and UserRol

106、e={2}", userloginid_textBox .Text,password_textBox.Text, userRole);</p><p>  OracleCommand com = new OracleCommand(sql, con);</p><p>  OracleDataReader dr = com.ExecuteReader();</p>

107、<p>  if (dr.Read())</p><p><b>  {</b></p><p>  u = new UserInfo();</p><p>  u.UserId = Convert.ToInt32(dr["UserId"]);</p><p>  u.UserlonginI

108、d = dr["UserlonginId"].ToString();</p><p>  u.UserName = dr["UserName"].ToString();</p><p>  u.UserPass = dr["UserPass"].ToString();</p><p>  u.UserRol

109、e = dr["UserRole"].ToString();</p><p><b>  }</b></p><p>  dr.Close();</p><p>  if (u != null)</p><p><b>  {</b></p><p>  

110、LoginInfo.LoginUserInfo = u;//保存登錄用戶信息</p><p>  //UserLoginId.</p><p>  入庫Form_Main fm = new 入庫Form_Main();</p><p>  fm.ShowDialog();</p><p><b>  }</b></

111、p><p><b>  else</b></p><p><b>  {</b></p><p>  MessageBox.Show("用戶名或密碼錯(cuò)誤!", "登錄提示");</p><p><b>  }</b></p>&

112、lt;p><b>  }</b></p><p>  catch (Exception)</p><p><b>  {</b></p><p>  MessageBox.Show("請(qǐng)注意數(shù)據(jù)庫連接字符串!", "登錄提示");</p><p><

113、;b>  }</b></p><p><b>  finally</b></p><p><b>  {</b></p><p>  con.Close();</p><p><b>  }</b></p><p><b> 

114、 }</b></p><p><b>  }</b></p><p>  private void cbo_loginType_KeyDown(object sender, KeyEventArgs e)</p><p><b>  {</b></p><p>  if (e.KeyCo

115、de == Keys.Enter)//當(dāng)點(diǎn)擊回車鍵</p><p><b>  {</b></p><p>  if (userloginid_textBox.Text != "" && password_textBox.Text != "")</p><p>  loginValidat

116、e();</p><p><b>  else</b></p><p>  SendKeys.Send("{TAB}");</p><p><b>  }</b></p><p><b>  }</b></p><p>  priva

117、te void reset_button_Click_1(object sender, EventArgs e)</p><p><b>  {</b></p><p>  userloginid_textBox.Text = "";</p><p>  password_textBox.Text = ""

118、;;</p><p>  userloginid_textBox.Focus();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //主界面&

119、lt;/b></p><p>  using System;</p><p>  using System.Collections.Generic;</p><p>  using System.ComponentModel;</p><p>  using System.Data;</p><p>  usin

120、g System.Drawing;</p><p>  using System.Text;</p><p>  using System.Windows.Forms;</p><p>  using Oracle.DataAccess.Client;</p><p>  using BookSaleSystem.Entity;</p&

121、gt;<p>  using BookSaleSystem.Purchase;</p><p>  using BookSaleSystem.Sell;</p><p>  using BookSaleSystem.Store;</p><p>  namespace BookSaleSystem</p><p><b&g

122、t;  {</b></p><p>  public partial class 入庫Form_Main : Form</p><p><b>  {</b></p><p>  public 入庫Form_Main()</p><p><b>  {</b></p>&l

123、t;p>  InitializeComponent();</p><p><b>  }</b></p><p>  private void Form_Main_Load(object sender, EventArgs e)</p><p><b>  {</b></p><p>  if

124、 (LoginInfo.LoginUserInfo.UserRole == "1")//當(dāng)前登錄用戶是銷售員</p><p><b>  {</b></p><p>  BascInfo_ToolStripMenuItem.Enabled = false;</p><p>  Purchase_ToolStripMenuIt

125、em.Enabled = false;</p><p><b>  }</b></p><p>  else if (LoginInfo.LoginUserInfo.UserRole == "2")//當(dāng)前登錄用戶是采購員</p><p><b>  {</b></p><p>

126、  BascInfo_ToolStripMenuItem.Enabled = false;</p><p>  Sell_ToolStripMenuItem.Enabled = false;</p><p><b>  }</b></p><p><b>  }</b></p><p>  priv

127、ate void Purchase_OrderAdd_ToolStripMenuItem_Click(object sender, EventArgs e)</p><p><b>  {</b></p><p>  Purchase_OrderAdd NewForm = new Purchase_OrderAdd();</p><p>  N

128、ewForm.MdiParent = this;</p><p>  NewForm.Show();</p><p><b>  }</b></p><p>  private void Purchase_OrderReturn_Click(object sender, EventArgs e)</p><p><

129、b>  {</b></p><p>  Purchase_OrderReturn NewForm = new Purchase_OrderReturn();</p><p>  NewForm.MdiParent = this;</p><p>  NewForm.Show();</p><p><b>  }&l

130、t;/b></p><p>  private void Sell_OrderoutToolStripMenuItem_Click(object sender, EventArgs e)</p><p><b>  {</b></p><p>  Sell_Orderout NewForm = new Sell_Orderout();&l

131、t;/p><p>  NewForm.MdiParent = this;</p><p>  NewForm.Show();</p><p><b>  }</b></p><p>  private void Sellin_ToolStripMenuItem_Click(object sender, EventArgs e

132、)</p><p><b>  {</b></p><p>  Sell_OrderIn NewForm = new Sell_OrderIn();</p><p>  NewForm.MdiParent = this;</p><p>  NewForm.Show();</p><p><

133、b>  }</b></p><p>  private void PurchaseIn_ToolStripMenuItem_Click(object sender, EventArgs e)</p><p><b>  {</b></p><p>  Form_PurchaseIn NewForm = new Form_Pur

134、chaseIn();</p><p>  NewForm.MdiParent = this;</p><p>  NewForm.Show();</p><p><b>  }</b></p><p>  private void Store_Check_ToolStripMenuItem_Click(object se

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論