庫存管理系統(tǒng)論文_第1頁
庫存管理系統(tǒng)論文_第2頁
庫存管理系統(tǒng)論文_第3頁
庫存管理系統(tǒng)論文_第4頁
庫存管理系統(tǒng)論文_第5頁
已閱讀5頁,還剩71頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

6、和刪除倉庫信息,在信息錄入過程中,程序自動生成倉庫編號以方便對倉庫信息的管理,同時程序也檢查輸入的合法性。2.庫存信息的錄入與修改(1)產品入庫單信息錄入與修改:該功能允許用戶輸入入庫單信息,在輸入過程中,程序自動生成產品入庫單編號以方便對入庫產品的信息管理和單據的查詢,同時程序也檢查輸入的合法性。(2)產品出庫單信息錄入與修改:該功能允許用戶輸入出庫單信息,在輸入過程中,程序自動生成產品出庫單編號以方便對出庫產品的信息管理和單據的查詢,同時程序也檢查輸入的合法性。(3)產品調撥單信息錄入與修改:因為倉庫所處地區(qū)的不同,以及庫存量的差異,所以企業(yè)內部倉庫之間貨品的調撥時必然的。該功能允許用戶輸

7、入調撥單信息,在輸入過程中,程序自動生成產品調撥單編號以方便對調撥產品的信息管理和單據的查詢,同時程序也檢查輸入的合法性。(4)產品報損單信息錄入與修改:因為在產品的運輸過程或是存儲過程中,會有產品的損壞,所以系統(tǒng)也應該具備產品報損信息的管理功能。該功能允許用戶輸入產品報損單信息,在輸入過程中,程序自動生成產品報損單編號以方便對報損產品的信息管理和單據的查詢,同時程序也檢查輸入的合法性。3.庫存信息的查詢(1)產品入庫單信息的查詢:該功能不僅要對產品入庫單據的信息(如:入庫倉庫、生產部門、產品名稱、經辦人等)進行查詢,而且要對該單據所包括的產品的信息(產品名稱、型號、單價等)進行查詢。(2)產

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

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

10、名字:產品編號別名:描述: 此產品在產品中的惟一的標識.定義:1數(shù)字10位置: 產品信息 產品入庫單 產品出庫單產品調撥單產品報損單名字:產品入庫單號別名:描述: 此入庫單在單據中的惟一的標識.定義:1數(shù)字10位置: 產品入庫單 產品入庫單產品信息 入庫產品匯總統(tǒng)計名字:產品出庫單號別名:描述: 此出庫單在單據中的惟一的標識.定義:1數(shù)字10位置: 產品處庫單 產品出庫單產品信息 出庫產品匯總統(tǒng)計名字:產品報損單號別名:描述: 此報損單在單據中的惟一的標識.定義:1數(shù)字10位置: 產品報損單 產品報損單產品信息名字:產品調撥單號別名:描述: 此調撥單在單據中的惟一的標識.定義:1數(shù)字10位置:

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

12、 客戶信息實體E-R圖倉庫名稱名稱倉庫地址倉庫信息倉庫編號計價法圖3.4 倉庫信息實體E-R圖入庫單號產品入庫單信息制單日期產品生產日期生產部門入庫類別入庫倉庫備注經辦人圖3.5 入庫單信息實體E-R圖產品單價產品入庫單產品信息入庫單號產品編號入庫數(shù)量圖3.6 入庫單產品信息實體E-R圖出庫單號產品出庫單信息制單日期出庫倉庫銷售部門出庫類別銷售人員發(fā)貨單號客戶名稱備注圖3.7 出庫單信息實體E-R圖產品出庫單產品信息出庫單號產品編號出庫數(shù)量產品單價圖3.8 出庫單產品信息實體E-R圖 產品調撥單信息調撥單號制單日期入庫倉庫出庫倉庫出庫類別經辦人備注圖3.9 調撥單信息實體E-R圖產品調撥單產品

13、信息調撥單號產品編號調撥數(shù)量產品單價圖3.10 調撥單產品信息實體E-R圖產品報損單信息報損單號制單日期報損倉庫出庫類別經辦人備注圖3.11 報損單信息實體E-R圖產品編號產品報損單產品信息報損單號報損數(shù)量產品單價圖3.12 報損單產品信息實體E-R圖產品報損單產品出庫單入庫單出庫單產品入庫單產品調撥單報損單選擇報損出庫工作人員辦理調撥單產品選擇調撥出庫辦理選擇生產入庫辦理銷售出庫辦理NMNNM1NNN選擇NNMMNM1MMM1NNM1M圖3.13整個系統(tǒng)的ER圖3.3數(shù)據庫設計 數(shù)據庫有以下十三個表組成:表3.1 產品基本信息表字段說明字段名稱數(shù)據類型數(shù)據長度說明主鍵ProductIDCha

14、r10產品編號是ProductNameChar20產品名稱否StandardChar10規(guī)格否modelChar10型號否PriceFloat8單價否qualityGuaranteeInt4保存期限否maintanceInt4維護期否UnitChar10計量單位否colorTypeChar10顏色類別否qualityLevelChar10質量等級否finishRateFloat4成品率否storeHouseChar20存放倉庫否taxRateFloat8稅率否RemarkChar100備注否numMinInt4存儲下限否NumMaxInt4存儲上限否表3.2 雇員基本信息表字段說明字段名稱數(shù)據

15、類型數(shù)據長度說明主鍵staffIDChar20員工編號是staffNameChar30員工姓名否DutyChar20員工職務否DepartmentChar20所在部門否SexChar2性別否AddressChar30員工住址否BirthdayDatetime8出生日期否PostcodeChar10郵政編碼否marriageConditionChar10婚姻狀況否TelephoneChar20員工電話否NationalityChar20國籍否eMailChar20電子郵件否educationLevelChar20學歷否QQChar10QQ號碼否guaduateSchoolChar20畢業(yè)院校否M

16、ajorChar20專業(yè)否IdentityNOChar20身份證號碼否MobileChar20手機號碼否workTypeChar20員工工種否RemarkChar100備注否表3.3客戶基本信息表字段說明字段名稱數(shù)據類型數(shù)據長度說明主鍵CilentIDChar20客戶編號是bookinDateDatetime8登記日期否clientLevelChar20客戶級別否clientTypeChar20客戶類型否CompanyChar20客戶公司否contactPersonChar20聯(lián)系人否AreaIDChar20地區(qū)否AddressChar20地址否PostcodeChar20郵政編碼否Telep

17、honeChar20聯(lián)系電話否FaxChar20傳真否eMailChar20電子郵件否RemarkChar100備注否manageRangeChar20經營范圍否manageProductChar20經營產品否AccountbankChar20開戶銀行否AccountChar20銀行賬號否TaxNOChar20稅號否RegisterDateDatetime8注冊日期否registerFundFloat8注冊資金否ScaleChar20規(guī)模否IndustrycharacterChar20行業(yè)性質否AllfundsFloat8總資產否ClientcharacterChar20客戶性質否表3.4倉庫

18、表字段說明字段名稱數(shù)據類型數(shù)據長度說明主鍵StorehouseIDChar20倉庫編號是storehouseNameChar30倉庫名稱否storehousePostionChar30倉庫地址否priceMethodChar20倉庫計價法否表3.5產品入庫單基本信息表字段說明字段名稱數(shù)據類型數(shù)據長度說明主鍵ProductInputFormIDChar10產品入庫單號是ProduceDateDatetime8生產日期否storeHouseChar20倉庫名稱否produceDepartmentChar20生產部門否DealerChar20經辦人否houseInTypeChar20入庫類別否Rem

19、arkChar100備注否FormdateDatetime8制單日期否表3.6入庫產品信息表字段說明字段名稱數(shù)據類型數(shù)據長度說明主鍵productInputFormIDChar10入庫單號是productIDChar10產品編號是NumInt4數(shù)量否PriceFloat8單價否表3.7產品出庫單基本信息表字段說明字段名稱數(shù)據類型數(shù)據長度說明主鍵ProductOutputFormIDChar10產品出庫單號是ConsignmentFormIDChar10發(fā)貨單號否storeHouseChar20倉庫名稱否sellDepartmentChar20銷售部門否SellerChar20銷售人員否clie

20、ntNameChar20客戶名稱否HouseOutTypeChar20出庫類別否RemarkChar20備注否FormdateDatetime8制單日期否DealerChar20經辦人否表3.8出庫產品信息表字段說明字段名稱數(shù)據類型數(shù)據長度說明主鍵ProductOutputFormIDChar10出庫單號是ProductIDChar10產品編號是NumInt4數(shù)量否PriceFloat8單價否表3.9產品調撥單基本信息表字段說明字段名稱數(shù)據類型數(shù)據長度說明主鍵productMoveFormIDChar10產品調撥單號是storeHouseInChar20入庫倉庫否storeHouseOutCh

21、ar20出庫倉庫否DealerChar20經辦人否houseOutTypeChar20出庫類別否RemarkChar100備注否FormdateDatetime8制單日期否表3.10調撥產品信息表字段說明字段名稱數(shù)據類型數(shù)據長度說明主鍵ProductMoveFormIDChar10產品調撥單號是ProductIDChar10產品編號是NumInt4數(shù)量否PriceFloat8單價否表3.11產品報損單基本信息表字段說明字段名稱數(shù)據類型數(shù)據長度說明主鍵ProductLoseFormIDChar10產品報損單號是storeHousechar20報損倉庫否DealerChar20經辦人否houseO

22、utTypeChar20出庫類別否RemarkChar100備注否FormdateDatetime8制單日期否表3.12報損產品信息表字段說明字段名稱數(shù)據類型數(shù)據長度說明主鍵ProductLoseFormIDChar10報損單號是ProductIDChar10產品編號是NumInt4數(shù)量否PriceFloat8單價否3.2代碼設計我在應用程序類StoreApp的InitInstance方法中進行初始化。各模塊在連接數(shù)據庫的時候都需要聲明所需的指針,聲明如下:_RecordsetPtr m_pIDRecordset; / 記錄集指針的個數(shù)可根據實際的需要來確定聲明幾個_ConnectionPtr

23、 m_pConn;在StoreApp的構造函數(shù)中定義數(shù)據庫的連接字符串:TreeConnString=_T("Data Source=SaleData;UID=Sa;PWD=;")數(shù)據庫的初始化,連接代碼如下: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ù)據庫失敗!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ù)據庫時,還需關閉連接,代碼如下:m_pIDRe

26、cordset->Close();3.2.1 基本信息模塊的實現(xiàn)圖3.2.1單擊條目后產品信息對話框1. 建立產品基本信息的CProductInfo對話框類使用Visual C+6.0的“InsertType”為“MFC Class”,“Name”為“CProductInfo”,“Base class”為“CDialog”,“Dialog ID”為“IDD_PRODUCTINFO_FORM”。然后單擊“OK”按鈕即可完成CProductInfo類的創(chuàng)建。2.為模塊“基本信息設置”創(chuàng)建菜單項,如表3.2.1所示表3.2.1基本信息設置菜單說明資源ID標題ID_set_productInfo

27、產品信息設置ID_input_staffInfor雇員信息設置ID_input_clientInfor客戶信息設置ID_set_storehouse倉庫信息設置3.主要代碼(1)重載對話框的OnInitDialog函數(shù)在OnInitDialog函數(shù)中主要完成列表框控件的樣式設定、列標題添加、數(shù)據庫中已經存在的數(shù)據顯示和編輯框及按鈕控件可用性設置、為存放倉庫組合框控件添加可選項。步驟如下:調用列表框控件的InsertColumm()方法插入列,并設定列標題;分別查詢storeHouse、product表,并構造相應的查詢結果記錄集;打開storeHouse的查詢結果記錄集,將記錄集中的數(shù)據插入到

28、相應的組合框中;打開product的查詢結果記錄集,調用列表框控件的InsertItem()和SetItemText()方法將記錄集中的數(shù)據插入到列表框控件中;調用控件的GetDlgItem()方法,為控件可用性控制變量賦值;調用控件的EnableWindow()方法,設定控件的可用性。部分代碼如下:style=m_list.GetExStyle();style=(style|LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT)&(LVS_EX_CHECKBOXES) ;/設定列表框風格 網格行選擇 取消復選框m_list.SetExtendedStyle(st

29、yle);/為列表框控件添加列,并設定列標題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" /構造查詢語句為存放倉庫組合框添加可選

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);/打開查詢結果記錄集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(); /關閉記錄集/將目前數(shù)據庫中已經存在的產品信息添加到產品列表框中strSQL="SELECT * FROM product"/構造查詢語句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);/打開查詢結果記錄集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");/產品編號m_list.SetItemText(i,1,(CStoreApp*)AfxGetApp()->GetStringFromVariant(m_pListRecordset->GetCollect("productName");/產品名稱 /此處省略部分代碼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);/設定按鈕的可用性bt_save->EnableWindow(false);/保存按鈕可用bt_modify->EnableWindow(false);/修改按

36、鈕可用bt_delete->EnableWindow(false);/刪除按鈕可用/初始情況下,所有的編輯框不可用tx_productID->EnableWindow(false);/此處省略部分代碼UpdateData(false); /更新對話框數(shù)據return TRUE; (2)實現(xiàn)列表框控件的NM_CLICK消息函數(shù)當列表框中的條目被單擊(如列表框的條目被選中)時該函數(shù)自動被調用。作用是當列表框中的一個條目被選中時,將該條目對應的信息顯示到相應的編輯框控件中,使按鈕“增加”、“修改”、“刪除”變?yōu)榭捎?,“存盤”按鈕不可用;當沒有條目被選中時,“修改”、“刪除”、“保存”按鈕

37、不可用,只有“增加”按鈕可用,同時將編輯框控件內容清空并使其不可用。步驟如下:調用m_list的GetFirstSelectedItemPosition()方法,獲得單擊的位置。調用m_list的GetNextSelectedItem()方法,獲得單擊的條目。調用m_list的GetItemText()方法,獲得條目中對應列的字符串,并將其轉換成預定的類型。具體代碼如下:void CProductInfo:OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) UpdateData(true);/將對話框中數(shù)據更新到變量POSITION pos = m_li

38、st.GetFirstSelectedItemPosition();/獲取單擊的位置if(pos)int nFirstSelItem = m_list.GetNextSelectedItem(pos);/獲取單擊的條目m_productID=m_list.GetItemText(nFirstSelItem,0);/產品編號/省略部分代碼bt_modify->EnableWindow(true); /修改按鈕可用bt_delete->EnableWindow(true); /刪除按鈕可用UpdateData(false); /將數(shù)據更新到對話框*pResult = 0;(3)為“增加

39、”按鈕提供實現(xiàn)函數(shù)“增加”按鈕只是完成添加的準備工作,使得除了“產品編號”以外的所有編輯控件可用,并且為他們設定默認值。通過查詢數(shù)據庫,查詢可用的產品入庫單號,并更新下一個可用的產品入庫單號。當所有內容添加完畢后,單擊“存盤”按鈕才能實現(xiàn)實際的保存工作。代碼如下:void CProductInfo:OnAdd() UpdateData(true);/對話框數(shù)據更新到變量/獲取新增加的產品的編號int productID=(CStoreApp*)AfxGetApp()->m_pIDRecordset->GetCollect("productID").intVal;

40、if(productID<10) /為產品編號設定格式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); /更新下一個可用的產品編號(CStoreApp*)AfxGetApp()->m_pIDRecordset->PutCollect("productID",_variant_t(str);(CStoreApp*)AfxGetApp()->m_pIDRecordset->Update();/更新數(shù)據庫/為對話框控件的變量設定默認值m_productName = _T("");m_standard = _T("");/此處省

42、略部分代碼flag=1; /添加 /設定除產品編號以外的其他編輯控件均可用tx_productID->EnableWindow(false);/此處省略部分代碼tx_numMin->EnableWindow(true); /設定按鈕的可用性bt_save->EnableWindow(true); /保存按鈕可用bt_add->EnableWindow(false); /添加按鈕不可用bt_modify->EnableWindow(false); /修改按鈕不可用bt_delete->EnableWindow(false); /刪除按鈕不可用UpdateDat

43、a(false);/將數(shù)據更新到對話框(4)為修改按鈕提供實現(xiàn)函數(shù)“修改”按鈕只是完成修改的準備工作,除了“產品入庫單號”外的其他編輯控件均可用。當所有的內容修改完畢后,單擊“存盤”按鈕才能實現(xiàn)實際的保存工作。代碼如下:void CProductInfo:OnModify() /設定除產品編號以外的其他編輯控件均可用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ù)據庫中,并將列表框控件中的內容刷新,同時使新增加的條目或修改的條目在列表框控件中可見并處于選中狀態(tài)。實現(xiàn)時如果是新增,查詢所有的記錄,在該記錄集中增加記錄并更新數(shù)據庫;如果是修改記錄,則查詢產品編號等于目前編輯的產品編號的記錄,修改該記錄,最后將記錄更新到數(shù)據庫。代碼如下:void CProductInfo:OnSave() UpdateData(true);/將控件中的值更新到變量_RecordsetPtr m_pRecordset; CString strSQL;

45、if(flag=1) /添加strSQL="SELECT * FROM product" ;/構造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);/打開查詢結果記錄集if(SUCCEEDED(hTRes) TRACE(_T("連接成功!n");CString str;m_pRecordset->AddNew();/添加新的記錄m_pRecordset->PutCollect("productID",_variant_t(m_productID);/產品編號/此處省略部分代碼m_pRecordset->Update(); /更新數(shù)據庫int j;j=m_list.GetItemCount(); /獲取要插入的條目的位置m_lis

47、t.InsertItem(j,m_productID); /產品編號m_list.SetItemText(j,1,m_productName); /產品名稱 /此處省略部分代碼 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+"'"/構造查詢指定產品編號的產品的信息的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);/打開查詢結果記錄集if(SUCCEEDED(hTRes)TRACE(_T("連接成功!n");CString str;m_pRecordset->PutCollect("productName",_variant_t(m_productName);/產品名稱/此處省略部分代碼AfxMessageBox("修改成功!");/提示信息catch(_com_error e)/捕捉異常CString errormessage;MessageBox("創(chuàng)建記錄集失敗

50、!","錯誤");Refresh();/設定按鈕的可用性bt_add->EnableWindow(true);/添加按鈕可用bt_delete->EnableWindow(true);/刪除按鈕可用bt_modify->EnableWindow(true);/修改按鈕可用bt_save->EnableWindow(false);/保存按鈕不可用/所有的編輯控件均不可用tx_productID->EnableWindow(false);/此處省略部分代碼UpdateData(false);/將數(shù)據更新到對話框(6)為“刪除”按鈕提供實現(xiàn)函數(shù)刪除選定的記錄或者是當前記錄,先生成刪除指定產品編號的產品信息的SQL語句,調用數(shù)據庫連接對象Execute方法執(zhí)行該SQL語句將滿足條件的記錄從數(shù)據庫中刪除。最后將刪除的記錄從列表框控件中清除并為編輯框控件變量賦默認值。代碼如下:void CProductInfo:OnDelete() CAffirm dlg;if(dlg.DoModal()!=IDOK)/顯示確認刪除對話框 return;_variant_t RecordsAffected;CString strSQL;/構造刪除記錄的sql語句strSQL="delete from product

溫馨提示

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