版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、- 76 -信息系統(tǒng)課程設(shè)計說明書 設(shè)計題目:庫存管理系統(tǒng) 設(shè) 計 者: 指導(dǎo)教師: 07信息系統(tǒng)工程2010年 6 月 6 日目錄:第一章 可行性分析1.1開發(fā)環(huán)境與開發(fā)工具1.2可行性報告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è)計3.1 數(shù)據(jù)庫設(shè)計3.2 代碼設(shè)計第四章 設(shè)計總結(jié)4.1 工作總結(jié)4.2 設(shè)計過程總結(jié)4.3 設(shè)計展望參考文獻(xiàn)第一章 可行性分析1.1開發(fā)環(huán)境和開發(fā)工具操作系統(tǒng):Windows XP 開發(fā)語言:C+數(shù)據(jù)庫: SQL 2000數(shù)
2、據(jù)庫訪問控件:ADO1.2可行性分析 1.2.1 開發(fā)必要性隨著計算機(jī)及網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,Internet/Intranet應(yīng)用在全球范圍內(nèi)日益普及,當(dāng)今社會正快速向信息化社會前進(jìn),信息自動化的作用也越來越大,從而可以使我們從繁雜的信息管理中解放出來,提高了我們的工作效率。如今,信息網(wǎng)絡(luò)技術(shù)已經(jīng)無處不在,無時不在了,各種各樣的信息管理系統(tǒng)也就應(yīng)運(yùn)而生。目前,隨著企業(yè)規(guī)模的不斷壯大,產(chǎn)品的種類和數(shù)量都不斷增加,產(chǎn)品的流通越來越多,這就使產(chǎn)品的存儲需求不斷增加,需要工作人員花費(fèi)很大力氣來統(tǒng)籌管理這項工作,為了保證工作的正確性和可靠性同時提高管理的效率,很有必要建立一個庫存管理系統(tǒng),使貨品管理工作
3、規(guī)范化,系統(tǒng)化,程序化。1.2.2 技術(shù)可行性在技術(shù)上,如今成熟的語言有很多,像是PowerBuilder 、VB 、Delphi等都能開發(fā)出很好用的系統(tǒng)。而本次設(shè)計我采用的是VC,也是很成熟的語言,再加上數(shù)據(jù)庫如今的發(fā)展?fàn)顩r,開發(fā)出一個庫存管理的應(yīng)用程序是沒有問題的。鑒于軟硬件方面對系統(tǒng)的需求,軟件要求易學(xué),界面友好,容易掌握,可以很簡單方便的進(jìn)行圖書信息管理。硬件的配置要求不能太高,這樣可以很好的適應(yīng)當(dāng)前的企業(yè)辦公管理工作,如今電腦軟硬件技術(shù)飛速發(fā)展,計算機(jī)系統(tǒng)開發(fā)人員也比比皆是,開發(fā)知識密集型的信息系統(tǒng)的技術(shù)條件也已經(jīng)很成熟了。 1.2.3 經(jīng)濟(jì)可行性在經(jīng)濟(jì)上,費(fèi)用的支出和帶來的巨大收益
4、相比自是不能相提并論了,至于管理上,工作人員對于這項工程的實施必然是持贊成的態(tài)度,因為這樣會大大減輕他們的工作量提高工作效率。且成本低,建成后的維護(hù)費(fèi)用也與線性系統(tǒng)運(yùn)行費(fèi)用相同,而每年可以促進(jìn)企業(yè)倉庫存儲的工作優(yōu)化、庫存產(chǎn)品的有效利用率,并可有效降低企業(yè)庫存的不必要支出,提高企業(yè)產(chǎn)品存儲資金的有效利用。第二章 系統(tǒng)分析2.1 業(yè)務(wù)范圍分析1.企業(yè)庫存基礎(chǔ)信息設(shè)置:這是企業(yè)庫存最重要的模塊之一,它將對倉庫存儲中的產(chǎn)品、雇員、客戶和倉庫的基本信息進(jìn)行管理操作,所有的產(chǎn)品、倉庫等原始數(shù)據(jù)輸入都是在這里實現(xiàn)的,有了這里的數(shù)據(jù)輸入,才能開始以后的諸如產(chǎn)品入庫、產(chǎn)品出庫等操作。(1)產(chǎn)品信息設(shè)置:該功能允
5、許用戶添加、修改和刪除產(chǎn)品信息,在輸入過程中,程序自動生成產(chǎn)品編號以方便產(chǎn)品的管理和入庫時選擇產(chǎn)品,同時程序也檢查輸入的合法性。(2)雇員信息設(shè)置:該功能允許用戶添加、修改和刪除雇員信息,在信息錄入過程中,程序自動生成雇員編號以方便對員工信息的管理,同時程序也檢查輸入的合法性。(3)客戶信息設(shè)置:企業(yè)庫存產(chǎn)品出庫,必然要登記貨物發(fā)給的客戶,該功能允許用戶對客戶的名稱、聯(lián)系方式、地址等基本信息進(jìn)行添加、修改和刪除,在信息錄入過程中,程序自動生成客戶編號以方便對客戶信息的管理,同時程序也檢查輸入的合法性。(4)倉庫信息設(shè)置:產(chǎn)品的入庫,出庫,調(diào)撥和報損都需要倉庫的基本信息。該功能允許用戶添加、修改
6、和刪除倉庫信息,在信息錄入過程中,程序自動生成倉庫編號以方便對倉庫信息的管理,同時程序也檢查輸入的合法性。2.庫存信息的錄入與修改(1)產(chǎn)品入庫單信息錄入與修改:該功能允許用戶輸入入庫單信息,在輸入過程中,程序自動生成產(chǎn)品入庫單編號以方便對入庫產(chǎn)品的信息管理和單據(jù)的查詢,同時程序也檢查輸入的合法性。(2)產(chǎn)品出庫單信息錄入與修改:該功能允許用戶輸入出庫單信息,在輸入過程中,程序自動生成產(chǎn)品出庫單編號以方便對出庫產(chǎn)品的信息管理和單據(jù)的查詢,同時程序也檢查輸入的合法性。(3)產(chǎn)品調(diào)撥單信息錄入與修改:因為倉庫所處地區(qū)的不同,以及庫存量的差異,所以企業(yè)內(nèi)部倉庫之間貨品的調(diào)撥時必然的。該功能允許用戶輸
7、入調(diào)撥單信息,在輸入過程中,程序自動生成產(chǎn)品調(diào)撥單編號以方便對調(diào)撥產(chǎn)品的信息管理和單據(jù)的查詢,同時程序也檢查輸入的合法性。(4)產(chǎn)品報損單信息錄入與修改:因為在產(chǎn)品的運(yùn)輸過程或是存儲過程中,會有產(chǎn)品的損壞,所以系統(tǒng)也應(yīng)該具備產(chǎn)品報損信息的管理功能。該功能允許用戶輸入產(chǎn)品報損單信息,在輸入過程中,程序自動生成產(chǎn)品報損單編號以方便對報損產(chǎn)品的信息管理和單據(jù)的查詢,同時程序也檢查輸入的合法性。3.庫存信息的查詢(1)產(chǎn)品入庫單信息的查詢:該功能不僅要對產(chǎn)品入庫單據(jù)的信息(如:入庫倉庫、生產(chǎn)部門、產(chǎn)品名稱、經(jīng)辦人等)進(jìn)行查詢,而且要對該單據(jù)所包括的產(chǎn)品的信息(產(chǎn)品名稱、型號、單價等)進(jìn)行查詢。(2)產(chǎn)
8、品出庫單信息的查詢:該功能不僅要對產(chǎn)品出庫單據(jù)的信息(倉庫名稱、經(jīng)辦人、客戶等)進(jìn)行查詢,而且要對該單據(jù)所包括的產(chǎn)品的信息(產(chǎn)品名稱、型號、單價等)進(jìn)行查詢。(3)產(chǎn)品調(diào)撥單信息的查詢:該功能不僅要對產(chǎn)品調(diào)撥單據(jù)的信息(入庫倉庫、出庫倉庫、經(jīng)辦人等)進(jìn)行查詢,而且要對該單據(jù)所包括的產(chǎn)品的信息(產(chǎn)品名稱、型號、單價等)進(jìn)行查詢。(4)產(chǎn)品報損單信息的查詢:該功能不僅要對產(chǎn)品報損單據(jù)的信息(報損倉庫、經(jīng)辦人等)進(jìn)行查詢,而且要對該單據(jù)所包括的產(chǎn)品的信息(產(chǎn)品名稱、型號、單價等)進(jìn)行查詢。4.庫存信息的統(tǒng)計分析(1)入庫產(chǎn)品信息匯總統(tǒng)計:該功能對各種入庫產(chǎn)品的存儲倉庫、存儲數(shù)量、存儲金額進(jìn)行了匯總統(tǒng)
9、計。(2)出庫產(chǎn)品信息匯總統(tǒng)計:該功能對各種出庫產(chǎn)品的出庫倉庫、出庫數(shù)量、出庫金額進(jìn)行了匯總統(tǒng)計。該庫存管理系統(tǒng)的功能圖如下:庫存管理基本設(shè)置產(chǎn)品基本信息設(shè)置雇員基本信息設(shè)置客戶基本信息設(shè)置倉庫基本信息設(shè)置信息錄入產(chǎn)品入庫單產(chǎn)品出庫單產(chǎn)品調(diào)撥單產(chǎn)品報損單統(tǒng)計匯總信息查詢產(chǎn)品入庫單查詢產(chǎn)品出庫單查詢產(chǎn)品調(diào)撥單查詢產(chǎn)品報損單查詢?nèi)霂飚a(chǎn)品統(tǒng)計匯總出庫產(chǎn)品統(tǒng)計匯總圖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) 品報 損報損信息訂購訂單信息產(chǎn)品信息產(chǎn)品調(diào)撥產(chǎn)品產(chǎn)品產(chǎn)品報損單圖2.2 系統(tǒng)數(shù)據(jù)流圖2.3 數(shù)據(jù)字典
10、名字:產(chǎn)品編號別名:描述: 此產(chǎn)品在產(chǎn)品中的惟一的標(biāo)識.定義:1數(shù)字10位置: 產(chǎn)品信息 產(chǎn)品入庫單 產(chǎn)品出庫單產(chǎn)品調(diào)撥單產(chǎn)品報損單名字:產(chǎn)品入庫單號別名:描述: 此入庫單在單據(jù)中的惟一的標(biāo)識.定義:1數(shù)字10位置: 產(chǎn)品入庫單 產(chǎn)品入庫單產(chǎn)品信息 入庫產(chǎn)品匯總統(tǒng)計名字:產(chǎn)品出庫單號別名:描述: 此出庫單在單據(jù)中的惟一的標(biāo)識.定義:1數(shù)字10位置: 產(chǎn)品處庫單 產(chǎn)品出庫單產(chǎn)品信息 出庫產(chǎn)品匯總統(tǒng)計名字:產(chǎn)品報損單號別名:描述: 此報損單在單據(jù)中的惟一的標(biāo)識.定義:1數(shù)字10位置: 產(chǎn)品報損單 產(chǎn)品報損單產(chǎn)品信息名字:產(chǎn)品調(diào)撥單號別名:描述: 此調(diào)撥單在單據(jù)中的惟一的標(biāo)識.定義:1數(shù)字10位置:
11、 產(chǎn)品調(diào)撥單 產(chǎn)品調(diào)撥單產(chǎn)品信息圖2.3 數(shù)據(jù)字典2.4 數(shù)據(jù)與數(shù)據(jù)流程分析第三章 系統(tǒng)設(shè)計3.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計登陸庫存管理系統(tǒng)驗證用戶信息系統(tǒng)主窗體倉庫管理入庫管理出庫管理盤存管理綜合管理附項分類歷史數(shù)據(jù)管理打印、查詢系統(tǒng)貨品入庫單經(jīng)辦人員報表貨品出庫單數(shù)據(jù)備份備份輸出庫存匯總庫存管理系統(tǒng)結(jié)構(gòu)圖錯誤3.2 E-R圖產(chǎn)品信息產(chǎn)品編號產(chǎn)品名稱規(guī)格型號庫存上限單價顏色類別庫存下限計量單位上限圖3.1 產(chǎn)品信息實體E-R圖員工編號雇員信息姓名名稱職務(wù)工作部門家庭住址性別電話號碼婚姻狀況出生年月圖3.2 雇員信息實體E-R圖客戶信息客戶編號單位名稱名稱聯(lián)系人客戶級別電話號碼地址郵箱傳真郵編圖3.3
12、 客戶信息實體E-R圖倉庫名稱名稱倉庫地址倉庫信息倉庫編號計價法圖3.4 倉庫信息實體E-R圖入庫單號產(chǎn)品入庫單信息制單日期產(chǎn)品生產(chǎn)日期生產(chǎn)部門入庫類別入庫倉庫備注經(jīng)辦人圖3.5 入庫單信息實體E-R圖產(chǎn)品單價產(chǎn)品入庫單產(chǎn)品信息入庫單號產(chǎn)品編號入庫數(shù)量圖3.6 入庫單產(chǎn)品信息實體E-R圖出庫單號產(chǎn)品出庫單信息制單日期出庫倉庫銷售部門出庫類別銷售人員發(fā)貨單號客戶名稱備注圖3.7 出庫單信息實體E-R圖產(chǎn)品出庫單產(chǎn)品信息出庫單號產(chǎn)品編號出庫數(shù)量產(chǎn)品單價圖3.8 出庫單產(chǎn)品信息實體E-R圖 產(chǎn)品調(diào)撥單信息調(diào)撥單號制單日期入庫倉庫出庫倉庫出庫類別經(jīng)辦人備注圖3.9 調(diào)撥單信息實體E-R圖產(chǎn)品調(diào)撥單產(chǎn)品
13、信息調(diào)撥單號產(chǎn)品編號調(diào)撥數(shù)量產(chǎn)品單價圖3.10 調(diào)撥單產(chǎn)品信息實體E-R圖產(chǎn)品報損單信息報損單號制單日期報損倉庫出庫類別經(jīng)辦人備注圖3.11 報損單信息實體E-R圖產(chǎn)品編號產(chǎn)品報損單產(chǎn)品信息報損單號報損數(shù)量產(chǎn)品單價圖3.12 報損單產(chǎn)品信息實體E-R圖產(chǎn)品報損單產(chǎn)品出庫單入庫單出庫單產(chǎn)品入庫單產(chǎn)品調(diào)撥單報損單選擇報損出庫工作人員辦理調(diào)撥單產(chǎn)品選擇調(diào)撥出庫辦理選擇生產(chǎn)入庫辦理銷售出庫辦理NMNNM1NNN選擇NNMMNM1MMM1NNM1M圖3.13整個系統(tǒng)的ER圖3.3數(shù)據(jù)庫設(shè)計 數(shù)據(jù)庫有以下十三個表組成:表3.1 產(chǎn)品基本信息表字段說明字段名稱數(shù)據(jù)類型數(shù)據(jù)長度說明主鍵ProductIDCha
14、r10產(chǎn)品編號是ProductNameChar20產(chǎn)品名稱否StandardChar10規(guī)格否modelChar10型號否PriceFloat8單價否qualityGuaranteeInt4保存期限否maintanceInt4維護(hù)期否UnitChar10計量單位否colorTypeChar10顏色類別否qualityLevelChar10質(zhì)量等級否finishRateFloat4成品率否storeHouseChar20存放倉庫否taxRateFloat8稅率否RemarkChar100備注否numMinInt4存儲下限否NumMaxInt4存儲上限否表3.2 雇員基本信息表字段說明字段名稱數(shù)據(jù)
15、類型數(shù)據(jù)長度說明主鍵staffIDChar20員工編號是staffNameChar30員工姓名否DutyChar20員工職務(wù)否DepartmentChar20所在部門否SexChar2性別否AddressChar30員工住址否BirthdayDatetime8出生日期否PostcodeChar10郵政編碼否marriageConditionChar10婚姻狀況否TelephoneChar20員工電話否NationalityChar20國籍否eMailChar20電子郵件否educationLevelChar20學(xué)歷否QQChar10QQ號碼否guaduateSchoolChar20畢業(yè)院校否M
16、ajorChar20專業(yè)否IdentityNOChar20身份證號碼否MobileChar20手機(jī)號碼否workTypeChar20員工工種否RemarkChar100備注否表3.3客戶基本信息表字段說明字段名稱數(shù)據(jù)類型數(shù)據(jù)長度說明主鍵CilentIDChar20客戶編號是bookinDateDatetime8登記日期否clientLevelChar20客戶級別否clientTypeChar20客戶類型否CompanyChar20客戶公司否contactPersonChar20聯(lián)系人否AreaIDChar20地區(qū)否AddressChar20地址否PostcodeChar20郵政編碼否Telep
17、honeChar20聯(lián)系電話否FaxChar20傳真否eMailChar20電子郵件否RemarkChar100備注否manageRangeChar20經(jīng)營范圍否manageProductChar20經(jīng)營產(chǎn)品否AccountbankChar20開戶銀行否AccountChar20銀行賬號否TaxNOChar20稅號否RegisterDateDatetime8注冊日期否registerFundFloat8注冊資金否ScaleChar20規(guī)模否IndustrycharacterChar20行業(yè)性質(zhì)否AllfundsFloat8總資產(chǎn)否ClientcharacterChar20客戶性質(zhì)否表3.4倉庫
18、表字段說明字段名稱數(shù)據(jù)類型數(shù)據(jù)長度說明主鍵StorehouseIDChar20倉庫編號是storehouseNameChar30倉庫名稱否storehousePostionChar30倉庫地址否priceMethodChar20倉庫計價法否表3.5產(chǎn)品入庫單基本信息表字段說明字段名稱數(shù)據(jù)類型數(shù)據(jù)長度說明主鍵ProductInputFormIDChar10產(chǎn)品入庫單號是ProduceDateDatetime8生產(chǎn)日期否storeHouseChar20倉庫名稱否produceDepartmentChar20生產(chǎn)部門否DealerChar20經(jīng)辦人否houseInTypeChar20入庫類別否Rem
19、arkChar100備注否FormdateDatetime8制單日期否表3.6入庫產(chǎn)品信息表字段說明字段名稱數(shù)據(jù)類型數(shù)據(jù)長度說明主鍵productInputFormIDChar10入庫單號是productIDChar10產(chǎn)品編號是NumInt4數(shù)量否PriceFloat8單價否表3.7產(chǎn)品出庫單基本信息表字段說明字段名稱數(shù)據(jù)類型數(shù)據(jù)長度說明主鍵ProductOutputFormIDChar10產(chǎn)品出庫單號是ConsignmentFormIDChar10發(fā)貨單號否storeHouseChar20倉庫名稱否sellDepartmentChar20銷售部門否SellerChar20銷售人員否clie
20、ntNameChar20客戶名稱否HouseOutTypeChar20出庫類別否RemarkChar20備注否FormdateDatetime8制單日期否DealerChar20經(jīng)辦人否表3.8出庫產(chǎn)品信息表字段說明字段名稱數(shù)據(jù)類型數(shù)據(jù)長度說明主鍵ProductOutputFormIDChar10出庫單號是ProductIDChar10產(chǎn)品編號是NumInt4數(shù)量否PriceFloat8單價否表3.9產(chǎn)品調(diào)撥單基本信息表字段說明字段名稱數(shù)據(jù)類型數(shù)據(jù)長度說明主鍵productMoveFormIDChar10產(chǎn)品調(diào)撥單號是storeHouseInChar20入庫倉庫否storeHouseOutCh
21、ar20出庫倉庫否DealerChar20經(jīng)辦人否houseOutTypeChar20出庫類別否RemarkChar100備注否FormdateDatetime8制單日期否表3.10調(diào)撥產(chǎn)品信息表字段說明字段名稱數(shù)據(jù)類型數(shù)據(jù)長度說明主鍵ProductMoveFormIDChar10產(chǎn)品調(diào)撥單號是ProductIDChar10產(chǎn)品編號是NumInt4數(shù)量否PriceFloat8單價否表3.11產(chǎn)品報損單基本信息表字段說明字段名稱數(shù)據(jù)類型數(shù)據(jù)長度說明主鍵ProductLoseFormIDChar10產(chǎn)品報損單號是storeHousechar20報損倉庫否DealerChar20經(jīng)辦人否houseO
22、utTypeChar20出庫類別否RemarkChar100備注否FormdateDatetime8制單日期否表3.12報損產(chǎn)品信息表字段說明字段名稱數(shù)據(jù)類型數(shù)據(jù)長度說明主鍵ProductLoseFormIDChar10報損單號是ProductIDChar10產(chǎn)品編號是NumInt4數(shù)量否PriceFloat8單價否3.2代碼設(shè)計我在應(yīng)用程序類StoreApp的InitInstance方法中進(jìn)行初始化。各模塊在連接數(shù)據(jù)庫的時候都需要聲明所需的指針,聲明如下:_RecordsetPtr m_pIDRecordset; / 記錄集指針的個數(shù)可根據(jù)實際的需要來確定聲明幾個_ConnectionPtr
23、 m_pConn;在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對象m_pConn->ConnectionTimeout = 8; /超時八秒hRes=m_pConn->Open(_bstr_t(LPCTSTR) TreeConnString
24、),_T(""),_T(""),adModeUnknown); /TreeConnString為連接字符串catch(_com_error e) /捕捉異常 CString errormessage; errormessage.Format(_T("連接SaleData數(shù)據(jù)庫失敗!rn錯誤信息:%s"),e.ErrorMessage(); AfxMessageBox(errormessage); /顯示錯誤信息 return FALSE;hRes = m_pIDRecordset.CreateInstance(_T("ADO
25、DB.Recordset");/創(chuàng)建Recordset對象if (SUCCEEDED(hRes)hRes = m_pIDRecordset->Open(LPTSTR)strSQL.GetBuffer(130),m_pConn.GetInterfacePtr(),adOpenDynamic,adLockPessimistic,adCmdText);if(SUCCEEDED(hRes)TRACE(_T("連接成功!n");在要用記錄集指針的時候可以用CreateInstance方法創(chuàng)建ADO連接對象。在程序中使用完數(shù)據(jù)庫時,還需關(guān)閉連接,代碼如下:m_pIDRe
26、cordset->Close();3.2.1 基本信息模塊的實現(xiàn)圖3.2.1單擊條目后產(chǎn)品信息對話框1. 建立產(chǎn)品基本信息的CProductInfo對話框類使用Visual C+6.0的“InsertType”為“MFC Class”,“Name”為“CProductInfo”,“Base class”為“CDialog”,“Dialog ID”為“IDD_PRODUCTINFO_FORM”。然后單擊“OK”按鈕即可完成CProductInfo類的創(chuàng)建。2.為模塊“基本信息設(shè)置”創(chuàng)建菜單項,如表3.2.1所示表3.2.1基本信息設(shè)置菜單說明資源ID標(biāo)題ID_set_productInfo
27、產(chǎn)品信息設(shè)置ID_input_staffInfor雇員信息設(shè)置ID_input_clientInfor客戶信息設(shè)置ID_set_storehouse倉庫信息設(shè)置3.主要代碼(1)重載對話框的OnInitDialog函數(shù)在OnInitDialog函數(shù)中主要完成列表框控件的樣式設(shè)定、列標(biāo)題添加、數(shù)據(jù)庫中已經(jīng)存在的數(shù)據(jù)顯示和編輯框及按鈕控件可用性設(shè)置、為存放倉庫組合框控件添加可選項。步驟如下:調(diào)用列表框控件的InsertColumm()方法插入列,并設(shè)定列標(biāo)題;分別查詢storeHouse、product表,并構(gòu)造相應(yīng)的查詢結(jié)果記錄集;打開storeHouse的查詢結(jié)果記錄集,將記錄集中的數(shù)據(jù)插入到
28、相應(yīng)的組合框中;打開product的查詢結(jié)果記錄集,調(diào)用列表框控件的InsertItem()和SetItemText()方法將記錄集中的數(shù)據(jù)插入到列表框控件中;調(diào)用控件的GetDlgItem()方法,為控件可用性控制變量賦值;調(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(st
29、yle);/為列表框控件添加列,并設(shè)定列標(biāo)題m_list.InsertColumn(0,"商品編號",LVCFMT_LEFT,100);/左對齊 寬度100m_list.InsertColumn(1,"商品名稱",LVCFMT_LEFT,100); /左對齊 寬度100/此處省略部分代碼_RecordsetPtr m_pListRecordset; /用于創(chuàng)建一個查詢記錄集CString strSQL;HRESULT hTRes;strSQL="select * from storeHouse" /構(gòu)造查詢語句為存放倉庫組合框添加可選
30、項_RecordsetPtr m_pStoreHouseRecordset;hTRes = m_pStoreHouseRecordset.CreateInstance(_T("ADODB.Recordset");if (SUCCEEDED(hTRes) hTRes = m_pStoreHouseRecordset->Open(LPTSTR)strSQL.GetBuffer(130),(CStoreApp*)AfxGetApp()->m_pConn.GetInterfacePtr(),adOpenDynamic,adLockPessimistic,adCmdTex
31、t);/打開查詢結(jié)果記錄集if(SUCCEEDED(hTRes)TRACE(_T("連接成功!n");while(!(m_pStoreHouseRecordset->adoEOF)m_storeHouseCombo.AddString(CStoreApp*)AfxGetApp()->GetStringFromVariant(m_pStoreHouseRecordset->GetCollect("storeHouseName");/插入組合框m_pStoreHouseRecordset->MoveNext();/記錄集指針向后移動m
32、_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 = m_pListRecordset->Open(LPTSTR)strSQL.GetBuffer(130),(CStoreApp*)A
33、fxGetApp()->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*)AfxGetApp()->GetStringFromVariant(m_pListReco
34、rdset->GetCollect("productID");/產(chǎn)品編號m_list.SetItemText(i,1,(CStoreApp*)AfxGetApp()->GetStringFromVariant(m_pListRecordset->GetCollect("productName");/產(chǎn)品名稱 /此處省略部分代碼if (!(m_pListRecordset->adoEOF) m_pListRecordset->MoveNext(); /記錄集指針向后移動i+;catch(_com_error e)/捕捉異常CS
35、tring errormessage;MessageBox("創(chuàng)建記錄集失敗!","錯誤");flag=0;/為對話框控件可用性控制變量賦值tx_productID=GetDlgItem(IDC_productID);tx_productName=GetDlgItem(IDC_productName);/此處省略部分代碼bt_modify=GetDlgItem(IDC_modify);/設(shè)定按鈕的可用性bt_save->EnableWindow(false);/保存按鈕可用bt_modify->EnableWindow(false);/修改按
36、鈕可用bt_delete->EnableWindow(false);/刪除按鈕可用/初始情況下,所有的編輯框不可用tx_productID->EnableWindow(false);/此處省略部分代碼UpdateData(false); /更新對話框數(shù)據(jù)return TRUE; (2)實現(xiàn)列表框控件的NM_CLICK消息函數(shù)當(dāng)列表框中的條目被單擊(如列表框的條目被選中)時該函數(shù)自動被調(diào)用。作用是當(dāng)列表框中的一個條目被選中時,將該條目對應(yīng)的信息顯示到相應(yīng)的編輯框控件中,使按鈕“增加”、“修改”、“刪除”變?yōu)榭捎?,“存盤”按鈕不可用;當(dāng)沒有條目被選中時,“修改”、“刪除”、“保存”按鈕
37、不可用,只有“增加”按鈕可用,同時將編輯框控件內(nèi)容清空并使其不可用。步驟如下:調(diào)用m_list的GetFirstSelectedItemPosition()方法,獲得單擊的位置。調(diào)用m_list的GetNextSelectedItem()方法,獲得單擊的條目。調(diào)用m_list的GetItemText()方法,獲得條目中對應(yīng)列的字符串,并將其轉(zhuǎn)換成預(yù)定的類型。具體代碼如下:void CProductInfo:OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) UpdateData(true);/將對話框中數(shù)據(jù)更新到變量POSITION pos = m_li
38、st.GetFirstSelectedItemPosition();/獲取單擊的位置if(pos)int nFirstSelItem = m_list.GetNextSelectedItem(pos);/獲取單擊的條目m_productID=m_list.GetItemText(nFirstSelItem,0);/產(chǎn)品編號/省略部分代碼bt_modify->EnableWindow(true); /修改按鈕可用bt_delete->EnableWindow(true); /刪除按鈕可用UpdateData(false); /將數(shù)據(jù)更新到對話框*pResult = 0;(3)為“增加
39、”按鈕提供實現(xiàn)函數(shù)“增加”按鈕只是完成添加的準(zhǔn)備工作,使得除了“產(chǎn)品編號”以外的所有編輯控件可用,并且為他們設(shè)定默認(rèn)值。通過查詢數(shù)據(jù)庫,查詢可用的產(chǎn)品入庫單號,并更新下一個可用的產(chǎn)品入庫單號。當(dāng)所有內(nèi)容添加完畢后,單擊“存盤”按鈕才能實現(xiàn)實際的保存工作。代碼如下:void CProductInfo:OnAdd() UpdateData(true);/對話框數(shù)據(jù)更新到變量/獲取新增加的產(chǎn)品的編號int productID=(CStoreApp*)AfxGetApp()->m_pIDRecordset->GetCollect("productID").intVal;
40、if(productID<10) /為產(chǎn)品編號設(shè)定格式m_productID.Format("product0000%d",productID);else if(productID<100&&productID>9)m_productID.Format("product000%d",productID);else if(productID<1000&&productID>99)m_productID.Format("product00%d",productID);CStri
41、ng str;str.Format("%d",productID+1); /更新下一個可用的產(chǎn)品編號(CStoreApp*)AfxGetApp()->m_pIDRecordset->PutCollect("productID",_variant_t(str);(CStoreApp*)AfxGetApp()->m_pIDRecordset->Update();/更新數(shù)據(jù)庫/為對話框控件的變量設(shè)定默認(rèn)值m_productName = _T("");m_standard = _T("");/此處省
42、略部分代碼flag=1; /添加 /設(shè)定除產(chǎn)品編號以外的其他編輯控件均可用tx_productID->EnableWindow(false);/此處省略部分代碼tx_numMin->EnableWindow(true); /設(shè)定按鈕的可用性bt_save->EnableWindow(true); /保存按鈕可用bt_add->EnableWindow(false); /添加按鈕不可用bt_modify->EnableWindow(false); /修改按鈕不可用bt_delete->EnableWindow(false); /刪除按鈕不可用UpdateDat
43、a(false);/將數(shù)據(jù)更新到對話框(4)為修改按鈕提供實現(xiàn)函數(shù)“修改”按鈕只是完成修改的準(zhǔn)備工作,除了“產(chǎn)品入庫單號”外的其他編輯控件均可用。當(dāng)所有的內(nèi)容修改完畢后,單擊“存盤”按鈕才能實現(xiàn)實際的保存工作。代碼如下:void CProductInfo:OnModify() /設(shè)定除產(chǎn)品編號以外的其他編輯控件均可用tx_productID->EnableWindow(false);tx_productName->EnableWindow(true);/此處省略部分代碼tx_numMin->EnableWindow(true);flag=2;/修改bt_save->En
44、ableWindow(true);/保存按鈕可用(5)為存盤按鈕提供實現(xiàn)函數(shù)“存盤”按鈕用于將新添加的條目或修改后的條目存儲到數(shù)據(jù)庫中,并將列表框控件中的內(nèi)容刷新,同時使新增加的條目或修改的條目在列表框控件中可見并處于選中狀態(tài)。實現(xiàn)時如果是新增,查詢所有的記錄,在該記錄集中增加記錄并更新數(shù)據(jù)庫;如果是修改記錄,則查詢產(chǎn)品編號等于目前編輯的產(chǎn)品編號的記錄,修改該記錄,最后將記錄更新到數(shù)據(jù)庫。代碼如下:void CProductInfo:OnSave() UpdateData(true);/將控件中的值更新到變量_RecordsetPtr m_pRecordset; CString strSQL;
45、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,ad
46、LockPessimistic,adCmdText);/打開查詢結(jié)果記錄集if(SUCCEEDED(hTRes) TRACE(_T("連接成功!n");CString str;m_pRecordset->AddNew();/添加新的記錄m_pRecordset->PutCollect("productID",_variant_t(m_productID);/產(chǎn)品編號/此處省略部分代碼m_pRecordset->Update(); /更新數(shù)據(jù)庫int j;j=m_list.GetItemCount(); /獲取要插入的條目的位置m_lis
47、t.InsertItem(j,m_productID); /產(chǎn)品編號m_list.SetItemText(j,1,m_productName); /產(chǎn)品名稱 /此處省略部分代碼 AfxMessageBox("插入成功!"); /提示信息catch(_com_error e)/捕捉異常CString errormessage;MessageBox("創(chuàng)建記錄集失敗!","錯誤");else if(flag=2) /修改strSQL="SELECT * FROM product where productID='&quo
48、t; ;strSQL=strSQL+m_productID+"'"/構(gòu)造查詢指定產(chǎn)品編號的產(chǎn)品的信息的sql語句tryHRESULT hTRes;hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset");if (SUCCEEDED(hTRes)hTRes = m_pRecordset->Open(LPTSTR)strSQL.GetBuffer(130),(CStoreApp*)AfxGetApp()->m_pConn.GetInterfacePtr(),adOpenDynami
49、c,adLockPessimistic,adCmdText);/打開查詢結(jié)果記錄集if(SUCCEEDED(hTRes)TRACE(_T("連接成功!n");CString str;m_pRecordset->PutCollect("productName",_variant_t(m_productName);/產(chǎn)品名稱/此處省略部分代碼AfxMessageBox("修改成功!");/提示信息catch(_com_error e)/捕捉異常CString errormessage;MessageBox("創(chuàng)建記錄集失敗
50、!","錯誤");Refresh();/設(shè)定按鈕的可用性bt_add->EnableWindow(true);/添加按鈕可用bt_delete->EnableWindow(true);/刪除按鈕可用bt_modify->EnableWindow(true);/修改按鈕可用bt_save->EnableWindow(false);/保存按鈕不可用/所有的編輯控件均不可用tx_productID->EnableWindow(false);/此處省略部分代碼UpdateData(false);/將數(shù)據(jù)更新到對話框(6)為“刪除”按鈕提供實現(xiàn)函數(shù)刪除選定的記錄或者是當(dāng)前記錄,先生成刪除指定產(chǎn)品編號的產(chǎn)品信息的SQL語句,調(diào)用數(shù)據(jù)庫連接對象Execute方法執(zhí)行該SQL語句將滿足條件的記錄從數(shù)據(jù)庫中刪除。最后將刪除的記錄從列表框控件中清除并為編輯框控件變量賦默認(rèn)值。代碼如下:void CProductInfo:OnDelete() CAffirm dlg;if(dlg.DoModal()!=IDOK)/顯示確認(rèn)刪除對話框 return;_variant_t RecordsAffected;CString strSQL;/構(gòu)造刪除記錄的sql語句strSQL="delete from product
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《護(hù)理康復(fù)評定上》課件
- 2021屆天津市楊村一中、寶坻一中等四校高一下學(xué)期期末聯(lián)考化學(xué)試題
- 《綜合醫(yī)院評審概述》課件
- 小學(xué)四年級數(shù)學(xué)小數(shù)加減法計算題練習(xí)卷
- 《汽車車型解析》課件
- 電焊管道焊接技術(shù)
- 美食烹飪行業(yè)調(diào)味技巧培訓(xùn)實踐
- 物流行業(yè)倉儲管理心得總結(jié)
- 電影院服務(wù)員的服務(wù)技巧
- 印刷行業(yè)采購工作心得
- 配合、協(xié)調(diào)、服務(wù)方案
- 市政工程監(jiān)理大綱
- 2023-2024學(xué)年廣東省廣州市黃埔區(qū)六年級(上)期末數(shù)學(xué)試卷(A卷)
- 高職院校專業(yè)教師數(shù)字素養(yǎng)架構(gòu)與提升路徑
- 2024年北京市學(xué)業(yè)水平合格性地理試卷(第一次)
- 黑龍江哈爾濱六中2025屆高三第六次模擬考試數(shù)學(xué)試卷含解析
- GB/T 36547-2024電化學(xué)儲能電站接入電網(wǎng)技術(shù)規(guī)定
- 會議記錄培訓(xùn)教材課件幻燈片
- 售后服務(wù)人員培訓(xùn)資料課件
- 2024-2030年中國薯條行業(yè)發(fā)展趨勢及投資盈利預(yù)測報告
- 期末 (試題) -2024-2025學(xué)年人教PEP版(2024)英語三年級上冊
評論
0/150
提交評論