課程設(shè)計(jì)庫存管理系統(tǒng)設(shè)計(jì)說明書_第1頁
課程設(shè)計(jì)庫存管理系統(tǒng)設(shè)計(jì)說明書_第2頁
課程設(shè)計(jì)庫存管理系統(tǒng)設(shè)計(jì)說明書_第3頁
課程設(shè)計(jì)庫存管理系統(tǒng)設(shè)計(jì)說明書_第4頁
課程設(shè)計(jì)庫存管理系統(tǒng)設(shè)計(jì)說明書_第5頁
已閱讀5頁,還剩72頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、信息系統(tǒng)課程設(shè)計(jì)說明書 設(shè)計(jì)題目:庫存管理系統(tǒng) 設(shè) 計(jì) 者: 指導(dǎo)教師: 07信息系統(tǒng)工程2010年 6 月 6 日目錄:第一章 可行性分析1.1開發(fā)環(huán)境與開發(fā)工具1.2可行性報(bào)告1.2.1 開發(fā)必要性1.2.2技術(shù)可行性1.2.3經(jīng)濟(jì)可行性第二章 系統(tǒng)分析 2.1 系統(tǒng)需求分析2.2 功能需求分析2.3 業(yè)務(wù)流程分析2.4 數(shù)據(jù)與數(shù)據(jù)流程分析第三章 系統(tǒng)設(shè)計(jì)3.1 數(shù)據(jù)庫設(shè)計(jì)3.2 代碼設(shè)計(jì)第四章 設(shè)計(jì)總結(jié)4.1 工作總結(jié)4.2 設(shè)計(jì)過程總結(jié)4.3 設(shè)計(jì)展望參考文獻(xiàn)第一章 可行性分析1.1開發(fā)環(huán)境和開發(fā)工具操作系統(tǒng):windows xp 開發(fā)語言:c+數(shù)據(jù)庫: sql 2000數(shù)據(jù)庫訪問控件

2、:ado1.2可行性分析 1.2.1 開發(fā)必要性隨著計(jì)算機(jī)及網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,internet/intranet應(yīng)用在全球范圍內(nèi)日益普及,當(dāng)今社會(huì)正快速向信息化社會(huì)前進(jìn),信息自動(dòng)化的作用也越來越大,從而可以使我們從繁雜的信息管理中解放出來,提高了我們的工作效率。如今,信息網(wǎng)絡(luò)技術(shù)已經(jīng)無處不在,無時(shí)不在了,各種各樣的信息管理系統(tǒng)也就應(yīng)運(yùn)而生。目前,隨著企業(yè)規(guī)模的不斷壯大,產(chǎn)品的種類和數(shù)量都不斷增加,產(chǎn)品的流通越來越多,這就使產(chǎn)品的存儲(chǔ)需求不斷增加,需要工作人員花費(fèi)很大力氣來統(tǒng)籌管理這項(xiàng)工作,為了保證工作的正確性和可靠性同時(shí)提高管理的效率,很有必要建立一個(gè)庫存管理系統(tǒng),使貨品管理工作規(guī)范化,系統(tǒng)

3、化,程序化。1.2.2 技術(shù)可行性在技術(shù)上,如今成熟的語言有很多,像是powerbuilder 、vb 、delphi等都能開發(fā)出很好用的系統(tǒng)。而本次設(shè)計(jì)我采用的是vc,也是很成熟的語言,再加上數(shù)據(jù)庫如今的發(fā)展?fàn)顩r,開發(fā)出一個(gè)庫存管理的應(yīng)用程序是沒有問題的。鑒于軟硬件方面對(duì)系統(tǒng)的需求,軟件要求易學(xué),界面友好,容易掌握,可以很簡單方便的進(jìn)行圖書信息管理。硬件的配置要求不能太高,這樣可以很好的適應(yīng)當(dāng)前的企業(yè)辦公管理工作,如今電腦軟硬件技術(shù)飛速發(fā)展,計(jì)算機(jī)系統(tǒng)開發(fā)人員也比比皆是,開發(fā)知識(shí)密集型的信息系統(tǒng)的技術(shù)條件也已經(jīng)很成熟了。 1.2.3 經(jīng)濟(jì)可行性在經(jīng)濟(jì)上,費(fèi)用的支出和帶來的巨大收益相比自是不能

4、相提并論了,至于管理上,工作人員對(duì)于這項(xiàng)工程的實(shí)施必然是持贊成的態(tài)度,因?yàn)檫@樣會(huì)大大減輕他們的工作量提高工作效率。且成本低,建成后的維護(hù)費(fèi)用也與線性系統(tǒng)運(yùn)行費(fèi)用相同,而每年可以促進(jìn)企業(yè)倉庫存儲(chǔ)的工作優(yōu)化、庫存產(chǎn)品的有效利用率,并可有效降低企業(yè)庫存的不必要支出,提高企業(yè)產(chǎn)品存儲(chǔ)資金的有效利用。第二章 系統(tǒng)分析2.1 業(yè)務(wù)范圍分析1.企業(yè)庫存基礎(chǔ)信息設(shè)置:這是企業(yè)庫存最重要的模塊之一,它將對(duì)倉庫存儲(chǔ)中的產(chǎn)品、雇員、客戶和倉庫的基本信息進(jìn)行管理操作,所有的產(chǎn)品、倉庫等原始數(shù)據(jù)輸入都是在這里實(shí)現(xiàn)的,有了這里的數(shù)據(jù)輸入,才能開始以后的諸如產(chǎn)品入庫、產(chǎn)品出庫等操作。(1)產(chǎn)品信息設(shè)置:該功能允許用戶添加、

5、修改和刪除產(chǎn)品信息,在輸入過程中,程序自動(dòng)生成產(chǎn)品編號(hào)以方便產(chǎn)品的管理和入庫時(shí)選擇產(chǎn)品,同時(shí)程序也檢查輸入的合法性。(2)雇員信息設(shè)置:該功能允許用戶添加、修改和刪除雇員信息,在信息錄入過程中,程序自動(dòng)生成雇員編號(hào)以方便對(duì)員工信息的管理,同時(shí)程序也檢查輸入的合法性。(3)客戶信息設(shè)置:企業(yè)庫存產(chǎn)品出庫,必然要登記貨物發(fā)給的客戶,該功能允許用戶對(duì)客戶的名稱、聯(lián)系方式、地址等基本信息進(jìn)行添加、修改和刪除,在信息錄入過程中,程序自動(dòng)生成客戶編號(hào)以方便對(duì)客戶信息的管理,同時(shí)程序也檢查輸入的合法性。(4)倉庫信息設(shè)置:產(chǎn)品的入庫,出庫,調(diào)撥和報(bào)損都需要倉庫的基本信息。該功能允許用戶添加、修改和刪除倉庫信

6、息,在信息錄入過程中,程序自動(dòng)生成倉庫編號(hào)以方便對(duì)倉庫信息的管理,同時(shí)程序也檢查輸入的合法性。2.庫存信息的錄入與修改(1)產(chǎn)品入庫單信息錄入與修改:該功能允許用戶輸入入庫單信息,在輸入過程中,程序自動(dòng)生成產(chǎn)品入庫單編號(hào)以方便對(duì)入庫產(chǎn)品的信息管理和單據(jù)的查詢,同時(shí)程序也檢查輸入的合法性。(2)產(chǎn)品出庫單信息錄入與修改:該功能允許用戶輸入出庫單信息,在輸入過程中,程序自動(dòng)生成產(chǎn)品出庫單編號(hào)以方便對(duì)出庫產(chǎn)品的信息管理和單據(jù)的查詢,同時(shí)程序也檢查輸入的合法性。(3)產(chǎn)品調(diào)撥單信息錄入與修改:因?yàn)閭}庫所處地區(qū)的不同,以及庫存量的差異,所以企業(yè)內(nèi)部倉庫之間貨品的調(diào)撥時(shí)必然的。該功能允許用戶輸入調(diào)撥單信息

7、,在輸入過程中,程序自動(dòng)生成產(chǎn)品調(diào)撥單編號(hào)以方便對(duì)調(diào)撥產(chǎn)品的信息管理和單據(jù)的查詢,同時(shí)程序也檢查輸入的合法性。(4)產(chǎn)品報(bào)損單信息錄入與修改:因?yàn)樵诋a(chǎn)品的運(yùn)輸過程或是存儲(chǔ)過程中,會(huì)有產(chǎn)品的損壞,所以系統(tǒng)也應(yīng)該具備產(chǎn)品報(bào)損信息的管理功能。該功能允許用戶輸入產(chǎn)品報(bào)損單信息,在輸入過程中,程序自動(dòng)生成產(chǎn)品報(bào)損單編號(hào)以方便對(duì)報(bào)損產(chǎn)品的信息管理和單據(jù)的查詢,同時(shí)程序也檢查輸入的合法性。3.庫存信息的查詢(1)產(chǎn)品入庫單信息的查詢:該功能不僅要對(duì)產(chǎn)品入庫單據(jù)的信息(如:入庫倉庫、生產(chǎn)部門、產(chǎn)品名稱、經(jīng)辦人等)進(jìn)行查詢,而且要對(duì)該單據(jù)所包括的產(chǎn)品的信息(產(chǎn)品名稱、型號(hào)、單價(jià)等)進(jìn)行查詢。(2)產(chǎn)品出庫單信息

8、的查詢:該功能不僅要對(duì)產(chǎn)品出庫單據(jù)的信息(倉庫名稱、經(jīng)辦人、客戶等)進(jìn)行查詢,而且要對(duì)該單據(jù)所包括的產(chǎn)品的信息(產(chǎn)品名稱、型號(hào)、單價(jià)等)進(jìn)行查詢。(3)產(chǎn)品調(diào)撥單信息的查詢:該功能不僅要對(duì)產(chǎn)品調(diào)撥單據(jù)的信息(入庫倉庫、出庫倉庫、經(jīng)辦人等)進(jìn)行查詢,而且要對(duì)該單據(jù)所包括的產(chǎn)品的信息(產(chǎn)品名稱、型號(hào)、單價(jià)等)進(jìn)行查詢。(4)產(chǎn)品報(bào)損單信息的查詢:該功能不僅要對(duì)產(chǎn)品報(bào)損單據(jù)的信息(報(bào)損倉庫、經(jīng)辦人等)進(jìn)行查詢,而且要對(duì)該單據(jù)所包括的產(chǎn)品的信息(產(chǎn)品名稱、型號(hào)、單價(jià)等)進(jìn)行查詢。4.庫存信息的統(tǒng)計(jì)分析(1)入庫產(chǎn)品信息匯總統(tǒng)計(jì):該功能對(duì)各種入庫產(chǎn)品的存儲(chǔ)倉庫、存儲(chǔ)數(shù)量、存儲(chǔ)金額進(jìn)行了匯總統(tǒng)計(jì)。(2)出

9、庫產(chǎn)品信息匯總統(tǒng)計(jì):該功能對(duì)各種出庫產(chǎn)品的出庫倉庫、出庫數(shù)量、出庫金額進(jìn)行了匯總統(tǒng)計(jì)。該庫存管理系統(tǒng)的功能圖如下:庫存管理基本設(shè)置產(chǎn)品基本信息設(shè)置雇員基本信息設(shè)置客戶基本信息設(shè)置倉庫基本信息設(shè)置信息錄入產(chǎn)品入庫單產(chǎn)品出庫單產(chǎn)品調(diào)撥單產(chǎn)品報(bào)損單統(tǒng)計(jì)匯總信息查詢產(chǎn)品入庫單查詢產(chǎn)品出庫單查詢產(chǎn)品調(diào)撥單查詢產(chǎn)品報(bào)損單查詢?nèi)霂飚a(chǎn)品統(tǒng)計(jì)匯總出庫產(chǎn)品統(tǒng)計(jì)匯總圖2.1庫存信息管理系統(tǒng)功能圖2.2 業(yè)務(wù)流程分析庫存管理數(shù)據(jù)流圖生產(chǎn)部門產(chǎn)品入庫產(chǎn)品倉庫部門客戶產(chǎn)品出庫產(chǎn)品企業(yè)主管產(chǎn)品入庫單產(chǎn)品出庫單產(chǎn) 品報(bào) 損報(bào)損信息訂購訂單信息產(chǎn)品信息產(chǎn)品調(diào)撥產(chǎn)品產(chǎn)品產(chǎn)品報(bào)損單圖2.2 系統(tǒng)數(shù)據(jù)流圖2.3 數(shù)據(jù)字典名字:產(chǎn)品編

10、號(hào)別名:描述: 此產(chǎn)品在產(chǎn)品中的惟一的標(biāo)識(shí).定義:1數(shù)字10位置: 產(chǎn)品信息 產(chǎn)品入庫單 產(chǎn)品出庫單產(chǎn)品調(diào)撥單產(chǎn)品報(bào)損單名字:產(chǎn)品入庫單號(hào)別名:描述: 此入庫單在單據(jù)中的惟一的標(biāo)識(shí).定義:1數(shù)字10位置: 產(chǎn)品入庫單 產(chǎn)品入庫單產(chǎn)品信息 入庫產(chǎn)品匯總統(tǒng)計(jì)名字:產(chǎn)品出庫單號(hào)別名:描述: 此出庫單在單據(jù)中的惟一的標(biāo)識(shí).定義:1數(shù)字10位置: 產(chǎn)品處庫單 產(chǎn)品出庫單產(chǎn)品信息 出庫產(chǎn)品匯總統(tǒng)計(jì)名字:產(chǎn)品報(bào)損單號(hào)別名:描述: 此報(bào)損單在單據(jù)中的惟一的標(biāo)識(shí).定義:1數(shù)字10位置: 產(chǎn)品報(bào)損單 產(chǎn)品報(bào)損單產(chǎn)品信息名字:產(chǎn)品調(diào)撥單號(hào)別名:描述: 此調(diào)撥單在單據(jù)中的惟一的標(biāo)識(shí).定義:1數(shù)字10位置: 產(chǎn)品調(diào)撥單

11、 產(chǎn)品調(diào)撥單產(chǎn)品信息圖2.3 數(shù)據(jù)字典2.4 數(shù)據(jù)與數(shù)據(jù)流程分析第三章 系統(tǒng)設(shè)計(jì)3.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)登陸庫存管理系統(tǒng)驗(yàn)證用戶信息系統(tǒng)主窗體倉庫管理入庫管理出庫管理盤存管理綜合管理附項(xiàng)分類歷史數(shù)據(jù)管理打印、查詢系統(tǒng)貨品入庫單經(jīng)辦人員報(bào)表貨品出庫單數(shù)據(jù)備份備份輸出庫存匯總庫存管理系統(tǒng)結(jié)構(gòu)圖錯(cuò)誤3.2 e-r圖產(chǎn)品信息產(chǎn)品編號(hào)產(chǎn)品名稱規(guī)格型號(hào)庫存上限單價(jià)顏色類別庫存下限計(jì)量單位上限圖3.1 產(chǎn)品信息實(shí)體e-r圖員工編號(hào)雇員信息姓名名稱職務(wù)工作部門家庭住址性別電話號(hào)碼婚姻狀況出生年月圖3.2 雇員信息實(shí)體e-r圖客戶信息客戶編號(hào)單位名稱名稱聯(lián)系人客戶級(jí)別電話號(hào)碼地址郵箱傳真郵編圖3.3 客戶信息實(shí)

12、體e-r圖倉庫名稱名稱倉庫地址倉庫信息倉庫編號(hào)計(jì)價(jià)法圖3.4 倉庫信息實(shí)體e-r圖入庫單號(hào)產(chǎn)品入庫單信息制單日期產(chǎn)品生產(chǎn)日期生產(chǎn)部門入庫類別入庫倉庫備注經(jīng)辦人圖3.5 入庫單信息實(shí)體e-r圖產(chǎn)品單價(jià)產(chǎn)品入庫單產(chǎn)品信息入庫單號(hào)產(chǎn)品編號(hào)入庫數(shù)量圖3.6 入庫單產(chǎn)品信息實(shí)體e-r圖出庫單號(hào)產(chǎn)品出庫單信息制單日期出庫倉庫銷售部門出庫類別銷售人員發(fā)貨單號(hào)客戶名稱備注圖3.7 出庫單信息實(shí)體e-r圖產(chǎn)品出庫單產(chǎn)品信息出庫單號(hào)產(chǎn)品編號(hào)出庫數(shù)量產(chǎn)品單價(jià)圖3.8 出庫單產(chǎn)品信息實(shí)體e-r圖 產(chǎn)品調(diào)撥單信息調(diào)撥單號(hào)制單日期入庫倉庫出庫倉庫出庫類別經(jīng)辦人備注圖3.9 調(diào)撥單信息實(shí)體e-r圖產(chǎn)品調(diào)撥單產(chǎn)品信息調(diào)撥單號(hào)

13、產(chǎn)品編號(hào)調(diào)撥數(shù)量產(chǎn)品單價(jià)圖3.10 調(diào)撥單產(chǎn)品信息實(shí)體e-r圖產(chǎn)品報(bào)損單信息報(bào)損單號(hào)制單日期報(bào)損倉庫出庫類別經(jīng)辦人備注圖3.11 報(bào)損單信息實(shí)體e-r圖產(chǎn)品編號(hào)產(chǎn)品報(bào)損單產(chǎn)品信息報(bào)損單號(hào)報(bào)損數(shù)量產(chǎn)品單價(jià)圖3.12 報(bào)損單產(chǎn)品信息實(shí)體e-r圖產(chǎn)品報(bào)損單產(chǎn)品出庫單入庫單出庫單產(chǎn)品入庫單產(chǎn)品調(diào)撥單報(bào)損單選擇報(bào)損出庫工作人員辦理調(diào)撥單產(chǎn)品選擇調(diào)撥出庫辦理選擇生產(chǎn)入庫辦理銷售出庫辦理nmnnm1nnn選擇nnmmnm1mmm1nnm1m圖3.13整個(gè)系統(tǒng)的er圖3.3數(shù)據(jù)庫設(shè)計(jì) 數(shù)據(jù)庫有以下十三個(gè)表組成:表3.1 產(chǎn)品基本信息表字段說明字段名稱數(shù)據(jù)類型數(shù)據(jù)長度說明主鍵productidchar10產(chǎn)品編

14、號(hào)是productnamechar20產(chǎn)品名稱否standardchar10規(guī)格否modelchar10型號(hào)否pricefloat8單價(jià)否qualityguaranteeint4保存期限否maintanceint4維護(hù)期否unitchar10計(jì)量單位否colortypechar10顏色類別否qualitylevelchar10質(zhì)量等級(jí)否finishratefloat4成品率否storehousechar20存放倉庫否taxratefloat8稅率否remarkchar100備注否numminint4存儲(chǔ)下限否nummaxint4存儲(chǔ)上限否表3.2 雇員基本信息表字段說明字段名稱數(shù)據(jù)類型數(shù)據(jù)長度

15、說明主鍵staffidchar20員工編號(hào)是staffnamechar30員工姓名否dutychar20員工職務(wù)否departmentchar20所在部門否sexchar2性別否addresschar30員工住址否birthdaydatetime8出生日期否postcodechar10郵政編碼否marriageconditionchar10婚姻狀況否telephonechar20員工電話否nationalitychar20國籍否emailchar20電子郵件否educationlevelchar20學(xué)歷否qqchar10qq號(hào)碼否guaduateschoolchar20畢業(yè)院校否majorch

16、ar20專業(yè)否identitynochar20身份證號(hào)碼否mobilechar20手機(jī)號(hào)碼否worktypechar20員工工種否remarkchar100備注否表3.3客戶基本信息表字段說明字段名稱數(shù)據(jù)類型數(shù)據(jù)長度說明主鍵cilentidchar20客戶編號(hào)是bookindatedatetime8登記日期否clientlevelchar20客戶級(jí)別否clienttypechar20客戶類型否companychar20客戶公司否contactpersonchar20聯(lián)系人否areaidchar20地區(qū)否addresschar20地址否postcodechar20郵政編碼否telephonech

17、ar20聯(lián)系電話否faxchar20傳真否emailchar20電子郵件否remarkchar100備注否managerangechar20經(jīng)營范圍否manageproductchar20經(jīng)營產(chǎn)品否accountbankchar20開戶銀行否accountchar20銀行賬號(hào)否taxnochar20稅號(hào)否registerdatedatetime8注冊(cè)日期否registerfundfloat8注冊(cè)資金否scalechar20規(guī)模否industrycharacterchar20行業(yè)性質(zhì)否allfundsfloat8總資產(chǎn)否clientcharacterchar20客戶性質(zhì)否表3.4倉庫表字段說明字

18、段名稱數(shù)據(jù)類型數(shù)據(jù)長度說明主鍵storehouseidchar20倉庫編號(hào)是storehousenamechar30倉庫名稱否storehousepostionchar30倉庫地址否pricemethodchar20倉庫計(jì)價(jià)法否表3.5產(chǎn)品入庫單基本信息表字段說明字段名稱數(shù)據(jù)類型數(shù)據(jù)長度說明主鍵productinputformidchar10產(chǎn)品入庫單號(hào)是producedatedatetime8生產(chǎn)日期否storehousechar20倉庫名稱否producedepartmentchar20生產(chǎn)部門否dealerchar20經(jīng)辦人否houseintypechar20入庫類別否remarkcha

19、r100備注否formdatedatetime8制單日期否表3.6入庫產(chǎn)品信息表字段說明字段名稱數(shù)據(jù)類型數(shù)據(jù)長度說明主鍵productinputformidchar10入庫單號(hào)是productidchar10產(chǎn)品編號(hào)是numint4數(shù)量否pricefloat8單價(jià)否表3.7產(chǎn)品出庫單基本信息表字段說明字段名稱數(shù)據(jù)類型數(shù)據(jù)長度說明主鍵productoutputformidchar10產(chǎn)品出庫單號(hào)是consignmentformidchar10發(fā)貨單號(hào)否storehousechar20倉庫名稱否selldepartmentchar20銷售部門否sellerchar20銷售人員否clientname

20、char20客戶名稱否houseouttypechar20出庫類別否remarkchar20備注否formdatedatetime8制單日期否dealerchar20經(jīng)辦人否表3.8出庫產(chǎn)品信息表字段說明字段名稱數(shù)據(jù)類型數(shù)據(jù)長度說明主鍵productoutputformidchar10出庫單號(hào)是productidchar10產(chǎn)品編號(hào)是numint4數(shù)量否pricefloat8單價(jià)否表3.9產(chǎn)品調(diào)撥單基本信息表字段說明字段名稱數(shù)據(jù)類型數(shù)據(jù)長度說明主鍵productmoveformidchar10產(chǎn)品調(diào)撥單號(hào)是storehouseinchar20入庫倉庫否storehouseoutchar20出庫

21、倉庫否dealerchar20經(jīng)辦人否houseouttypechar20出庫類別否remarkchar100備注否formdatedatetime8制單日期否表3.10調(diào)撥產(chǎn)品信息表字段說明字段名稱數(shù)據(jù)類型數(shù)據(jù)長度說明主鍵productmoveformidchar10產(chǎn)品調(diào)撥單號(hào)是productidchar10產(chǎn)品編號(hào)是numint4數(shù)量否pricefloat8單價(jià)否表3.11產(chǎn)品報(bào)損單基本信息表字段說明字段名稱數(shù)據(jù)類型數(shù)據(jù)長度說明主鍵productloseformidchar10產(chǎn)品報(bào)損單號(hào)是storehousechar20報(bào)損倉庫否dealerchar20經(jīng)辦人否houseouttype

22、char20出庫類別否remarkchar100備注否formdatedatetime8制單日期否表3.12報(bào)損產(chǎn)品信息表字段說明字段名稱數(shù)據(jù)類型數(shù)據(jù)長度說明主鍵productloseformidchar10報(bào)損單號(hào)是productidchar10產(chǎn)品編號(hào)是numint4數(shù)量否pricefloat8單價(jià)否3.2代碼設(shè)計(jì)我在應(yīng)用程序類storeapp的initinstance方法中進(jìn)行初始化。各模塊在連接數(shù)據(jù)庫的時(shí)候都需要聲明所需的指針,聲明如下:_recordsetptr m_pidrecordset; / 記錄集指針的個(gè)數(shù)可根據(jù)實(shí)際的需要來確定聲明幾個(gè)_connectionptr m_pco

23、nn;在storeapp的構(gòu)造函數(shù)中定義數(shù)據(jù)庫的連接字符串:treeconnstring=_t(data source=saledata;uid=sa;pwd=;)數(shù)據(jù)庫的初始化,連接代碼如下:hresult hres;tryhres=m_pconn.createinstance(_t(adodb.connection);/創(chuàng)建connection對(duì)象m_pconn-connectiontimeout = 8; /超時(shí)八秒hres=m_pconn-open(_bstr_t(lpctstr) treeconnstring),_t(),_t(),admodeunknown); /treeconns

24、tring為連接字符串catch(_com_error e) /捕捉異常 cstring errormessage; errormessage.format(_t(連接saledata數(shù)據(jù)庫失敗!rn錯(cuò)誤信息:%s),e.errormessage(); afxmessagebox(errormessage); /顯示錯(cuò)誤信息 return false;hres = m_pidrecordset.createinstance(_t(adodb.recordset);/創(chuàng)建recordset對(duì)象if (succeeded(hres)hres = m_pidrecordset-open(lptstr

25、)strsql.getbuffer(130),m_pconn.getinterfaceptr(),adopendynamic,adlockpessimistic,adcmdtext);if(succeeded(hres)trace(_t(連接成功!n);在要用記錄集指針的時(shí)候可以用createinstance方法創(chuàng)建ado連接對(duì)象。在程序中使用完數(shù)據(jù)庫時(shí),還需關(guān)閉連接,代碼如下:m_pidrecordset-close();3.2.1 基本信息模塊的實(shí)現(xiàn)圖3.2.1單擊條目后產(chǎn)品信息對(duì)話框1. 建立產(chǎn)品基本信息的cproductinfo對(duì)話框類使用visual c+6.0的“inserttyp

26、e”為“mfc class”,“name”為“cproductinfo”,“base class”為“cdialog”,“dialog id”為“idd_productinfo_form”。然后單擊“ok”按鈕即可完成cproductinfo類的創(chuàng)建。2.為模塊“基本信息設(shè)置”創(chuàng)建菜單項(xiàng),如表3.2.1所示表3.2.1基本信息設(shè)置菜單說明資源id標(biāo)題id_set_productinfo產(chǎn)品信息設(shè)置id_input_staffinfor雇員信息設(shè)置id_input_clientinfor客戶信息設(shè)置id_set_storehouse倉庫信息設(shè)置3.主要代碼(1)重載對(duì)話框的oninitdialo

27、g函數(shù)在oninitdialog函數(shù)中主要完成列表框控件的樣式設(shè)定、列標(biāo)題添加、數(shù)據(jù)庫中已經(jīng)存在的數(shù)據(jù)顯示和編輯框及按鈕控件可用性設(shè)置、為存放倉庫組合框控件添加可選項(xiàng)。步驟如下:調(diào)用列表框控件的insertcolumm()方法插入列,并設(shè)定列標(biāo)題;分別查詢storehouse、product表,并構(gòu)造相應(yīng)的查詢結(jié)果記錄集;打開storehouse的查詢結(jié)果記錄集,將記錄集中的數(shù)據(jù)插入到相應(yīng)的組合框中;打開product的查詢結(jié)果記錄集,調(diào)用列表框控件的insertitem()和setitemtext()方法將記錄集中的數(shù)據(jù)插入到列表框控件中;調(diào)用控件的getdlgitem()方法,為控件可用性

28、控制變量賦值;調(diào)用控件的enablewindow()方法,設(shè)定控件的可用性。部分代碼如下:style=m_list.getexstyle();style=(style|lvs_ex_gridlines|lvs_ex_fullrowselect)&(lvs_ex_checkboxes) ;/設(shè)定列表框風(fēng)格 網(wǎng)格行選擇 取消復(fù)選框m_list.setextendedstyle(style);/為列表框控件添加列,并設(shè)定列標(biāo)題m_list.insertcolumn(0,商品編號(hào),lvcfmt_left,100);/左對(duì)齊 寬度100m_list.insertcolumn(1,商品名稱,lvcfmt_

29、left,100); /左對(duì)齊 寬度100/此處省略部分代碼_recordsetptr m_plistrecordset; /用于創(chuàng)建一個(gè)查詢記錄集cstring strsql;hresult htres;strsql=select * from storehouse; /構(gòu)造查詢語句為存放倉庫組合框添加可選項(xiàng)_recordsetptr m_pstorehouserecordset;htres = m_pstorehouserecordset.createinstance(_t(adodb.recordset);if (succeeded(htres) htres = m_pstorehous

30、erecordset-open(lptstr)strsql.getbuffer(130),(cstoreapp*)afxgetapp()-m_pconn.getinterfaceptr(),adopendynamic,adlockpessimistic,adcmdtext);/打開查詢結(jié)果記錄集if(succeeded(htres)trace(_t(連接成功!n);while(!(m_pstorehouserecordset-adoeof)m_storehousecombo.addstring(cstoreapp*)afxgetapp()-getstringfromvariant(m_psto

31、rehouserecordset-getcollect(storehousename);/插入組合框m_pstorehouserecordset-movenext();/記錄集指針向后移動(dòng)m_pstorehouserecordset-close(); /關(guān)閉記錄集/將目前數(shù)據(jù)庫中已經(jīng)存在的產(chǎn)品信息添加到產(chǎn)品列表框中strsql=select * from product;/構(gòu)造查詢語句try hresult htres;htres = m_plistrecordset.createinstance(_t(adodb.recordset);if (succeeded(htres)htres =

32、m_plistrecordset-open(lptstr)strsql.getbuffer(130),(cstoreapp*)afxgetapp()-m_pconn.getinterfaceptr(),adopendynamic,adlockpessimistic,adcmdtext);/打開查詢結(jié)果記錄集if(succeeded(htres)trace(_t(連接成功!n);if (!(m_plistrecordset-adoeof)int i=0;while(!(m_plistrecordset-adoeof)m_list.insertitem(i,(cstoreapp*)afxgetap

33、p()-getstringfromvariant(m_plistrecordset-getcollect(productid);/產(chǎn)品編號(hào)m_list.setitemtext(i,1,(cstoreapp*)afxgetapp()-getstringfromvariant(m_plistrecordset-getcollect(productname);/產(chǎn)品名稱 /此處省略部分代碼if (!(m_plistrecordset-adoeof) m_plistrecordset-movenext(); /記錄集指針向后移動(dòng)i+;catch(_com_error e)/捕捉異常cstring er

34、rormessage;messagebox(創(chuàng)建記錄集失敗!,錯(cuò)誤);flag=0;/為對(duì)話框控件可用性控制變量賦值tx_productid=getdlgitem(idc_productid);tx_productname=getdlgitem(idc_productname);/此處省略部分代碼bt_modify=getdlgitem(idc_modify);/設(shè)定按鈕的可用性bt_save-enablewindow(false);/保存按鈕可用bt_modify-enablewindow(false);/修改按鈕可用bt_delete-enablewindow(false);/刪除按鈕可用

35、/初始情況下,所有的編輯框不可用tx_productid-enablewindow(false);/此處省略部分代碼updatedata(false); /更新對(duì)話框數(shù)據(jù)return true; (2)實(shí)現(xiàn)列表框控件的nm_click消息函數(shù)當(dāng)列表框中的條目被單擊(如列表框的條目被選中)時(shí)該函數(shù)自動(dòng)被調(diào)用。作用是當(dāng)列表框中的一個(gè)條目被選中時(shí),將該條目對(duì)應(yīng)的信息顯示到相應(yīng)的編輯框控件中,使按鈕“增加”、“修改”、“刪除”變?yōu)榭捎茫按姹P”按鈕不可用;當(dāng)沒有條目被選中時(shí),“修改”、“刪除”、“保存”按鈕不可用,只有“增加”按鈕可用,同時(shí)將編輯框控件內(nèi)容清空并使其不可用。步驟如下:調(diào)用m_list的

36、getfirstselecteditemposition()方法,獲得單擊的位置。調(diào)用m_list的getnextselecteditem()方法,獲得單擊的條目。調(diào)用m_list的getitemtext()方法,獲得條目中對(duì)應(yīng)列的字符串,并將其轉(zhuǎn)換成預(yù)定的類型。具體代碼如下:void cproductinfo:onclicklist1(nmhdr* pnmhdr, lresult* presult) updatedata(true);/將對(duì)話框中數(shù)據(jù)更新到變量position pos = m_list.getfirstselecteditemposition();/獲取單擊的位置if(pos

37、)int nfirstselitem = m_list.getnextselecteditem(pos);/獲取單擊的條目m_productid=m_list.getitemtext(nfirstselitem,0);/產(chǎn)品編號(hào)/省略部分代碼bt_modify-enablewindow(true); /修改按鈕可用bt_delete-enablewindow(true); /刪除按鈕可用updatedata(false); /將數(shù)據(jù)更新到對(duì)話框*presult = 0;(3)為“增加”按鈕提供實(shí)現(xiàn)函數(shù)“增加”按鈕只是完成添加的準(zhǔn)備工作,使得除了“產(chǎn)品編號(hào)”以外的所有編輯控件可用,并且為他們?cè)O(shè)定

38、默認(rèn)值。通過查詢數(shù)據(jù)庫,查詢可用的產(chǎn)品入庫單號(hào),并更新下一個(gè)可用的產(chǎn)品入庫單號(hào)。當(dāng)所有內(nèi)容添加完畢后,單擊“存盤”按鈕才能實(shí)現(xiàn)實(shí)際的保存工作。代碼如下:void cproductinfo:onadd() updatedata(true);/對(duì)話框數(shù)據(jù)更新到變量/獲取新增加的產(chǎn)品的編號(hào)int productid=(cstoreapp*)afxgetapp()-m_pidrecordset-getcollect(productid).intval;if(productid10) /為產(chǎn)品編號(hào)設(shè)定格式m_productid.format(product0000%d,productid);else i

39、f(productid9)m_productid.format(product000%d,productid);else if(productid99)m_productid.format(product00%d,productid);cstring str;str.format(%d,productid+1); /更新下一個(gè)可用的產(chǎn)品編號(hào)(cstoreapp*)afxgetapp()-m_pidrecordset-putcollect(productid,_variant_t(str);(cstoreapp*)afxgetapp()-m_pidrecordset-update();/更新數(shù)據(jù)

40、庫/為對(duì)話框控件的變量設(shè)定默認(rèn)值m_productname = _t();m_standard = _t();/此處省略部分代碼flag=1; /添加 /設(shè)定除產(chǎn)品編號(hào)以外的其他編輯控件均可用tx_productid-enablewindow(false);/此處省略部分代碼tx_nummin-enablewindow(true); /設(shè)定按鈕的可用性bt_save-enablewindow(true); /保存按鈕可用bt_add-enablewindow(false); /添加按鈕不可用bt_modify-enablewindow(false); /修改按鈕不可用bt_delete-ena

41、blewindow(false); /刪除按鈕不可用updatedata(false);/將數(shù)據(jù)更新到對(duì)話框(4)為修改按鈕提供實(shí)現(xiàn)函數(shù)“修改”按鈕只是完成修改的準(zhǔn)備工作,除了“產(chǎn)品入庫單號(hào)”外的其他編輯控件均可用。當(dāng)所有的內(nèi)容修改完畢后,單擊“存盤”按鈕才能實(shí)現(xiàn)實(shí)際的保存工作。代碼如下:void cproductinfo:onmodify() /設(shè)定除產(chǎn)品編號(hào)以外的其他編輯控件均可用tx_productid-enablewindow(false);tx_productname-enablewindow(true);/此處省略部分代碼tx_nummin-enablewindow(true);f

42、lag=2;/修改bt_save-enablewindow(true);/保存按鈕可用(5)為存盤按鈕提供實(shí)現(xiàn)函數(shù)“存盤”按鈕用于將新添加的條目或修改后的條目存儲(chǔ)到數(shù)據(jù)庫中,并將列表框控件中的內(nèi)容刷新,同時(shí)使新增加的條目或修改的條目在列表框控件中可見并處于選中狀態(tài)。實(shí)現(xiàn)時(shí)如果是新增,查詢所有的記錄,在該記錄集中增加記錄并更新數(shù)據(jù)庫;如果是修改記錄,則查詢產(chǎn)品編號(hào)等于目前編輯的產(chǎn)品編號(hào)的記錄,修改該記錄,最后將記錄更新到數(shù)據(jù)庫。代碼如下:void cproductinfo:onsave() updatedata(true);/將控件中的值更新到變量_recordsetptr m_precords

43、et; cstring strsql;if(flag=1) /添加strsql=select * from product ;/構(gòu)造sql語句try hresult htres;htres = m_precordset.createinstance(_t(adodb.recordset);if (succeeded(htres) htres = m_precordset-open(lptstr)strsql.getbuffer(130),(cstoreapp*)afxgetapp()-m_pconn.getinterfaceptr(),adopendynamic,adlockpessimist

44、ic,adcmdtext);/打開查詢結(jié)果記錄集if(succeeded(htres) trace(_t(連接成功!n);cstring str;m_precordset-addnew();/添加新的記錄m_precordset-putcollect(productid,_variant_t(m_productid);/產(chǎn)品編號(hào)/此處省略部分代碼m_precordset-update(); /更新數(shù)據(jù)庫int j;j=m_list.getitemcount(); /獲取要插入的條目的位置m_list.insertitem(j,m_productid); /產(chǎn)品編號(hào)m_list.setitemt

45、ext(j,1,m_productname); /產(chǎn)品名稱 /此處省略部分代碼 afxmessagebox(插入成功!); /提示信息catch(_com_error e)/捕捉異常cstring errormessage;messagebox(創(chuàng)建記錄集失敗!,錯(cuò)誤);else if(flag=2) /修改strsql=select * from product where productid= ;strsql=strsql+m_productid+;/構(gòu)造查詢指定產(chǎn)品編號(hào)的產(chǎn)品的信息的sql語句tryhresult htres;htres = m_precordset.createinst

46、ance(_t(adodb.recordset);if (succeeded(htres)htres = m_precordset-open(lptstr)strsql.getbuffer(130),(cstoreapp*)afxgetapp()-m_pconn.getinterfaceptr(),adopendynamic,adlockpessimistic,adcmdtext);/打開查詢結(jié)果記錄集if(succeeded(htres)trace(_t(連接成功!n);cstring str;m_precordset-putcollect(productname,_variant_t(m_

47、productname);/產(chǎn)品名稱/此處省略部分代碼afxmessagebox(修改成功!);/提示信息catch(_com_error e)/捕捉異常cstring errormessage;messagebox(創(chuàng)建記錄集失敗!,錯(cuò)誤);refresh();/設(shè)定按鈕的可用性bt_add-enablewindow(true);/添加按鈕可用bt_delete-enablewindow(true);/刪除按鈕可用bt_modify-enablewindow(true);/修改按鈕可用bt_save-enablewindow(false);/保存按鈕不可用/所有的編輯控件均不可用tx_pro

48、ductid-enablewindow(false);/此處省略部分代碼updatedata(false);/將數(shù)據(jù)更新到對(duì)話框(6)為“刪除”按鈕提供實(shí)現(xiàn)函數(shù)刪除選定的記錄或者是當(dāng)前記錄,先生成刪除指定產(chǎn)品編號(hào)的產(chǎn)品信息的sql語句,調(diào)用數(shù)據(jù)庫連接對(duì)象execute方法執(zhí)行該sql語句將滿足條件的記錄從數(shù)據(jù)庫中刪除。最后將刪除的記錄從列表框控件中清除并為編輯框控件變量賦默認(rèn)值。代碼如下:void cproductinfo:ondelete() caffirm dlg;if(dlg.domodal()!=idok)/顯示確認(rèn)刪除對(duì)話框 return;_variant_t recordsaffected;cstring strsql;/構(gòu)造刪除記錄的sql語句strsql=delete

溫馨提示

  • 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論