![超市管理系統(tǒng)MFCodbc(可編輯)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/11/da7a2d69-56dc-46ca-94b0-53d97e22517a/da7a2d69-56dc-46ca-94b0-53d97e22517a1.gif)
![超市管理系統(tǒng)MFCodbc(可編輯)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/11/da7a2d69-56dc-46ca-94b0-53d97e22517a/da7a2d69-56dc-46ca-94b0-53d97e22517a2.gif)
![超市管理系統(tǒng)MFCodbc(可編輯)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/11/da7a2d69-56dc-46ca-94b0-53d97e22517a/da7a2d69-56dc-46ca-94b0-53d97e22517a3.gif)
![超市管理系統(tǒng)MFCodbc(可編輯)_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/11/da7a2d69-56dc-46ca-94b0-53d97e22517a/da7a2d69-56dc-46ca-94b0-53d97e22517a4.gif)
![超市管理系統(tǒng)MFCodbc(可編輯)_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/11/da7a2d69-56dc-46ca-94b0-53d97e22517a/da7a2d69-56dc-46ca-94b0-53d97e22517a5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、SuperMarket _ DBMS數(shù)據(jù)源:OFFICE ACCESSVC+_MFC_ODBC作者 cystContents數(shù)據(jù)庫(kù)系統(tǒng)及其訪問(wèn)技術(shù) :采用MFC的ODBC數(shù)據(jù)庫(kù)訪問(wèn)技術(shù),從Access數(shù)據(jù)庫(kù)里讀取銷售信息、商品情況、雇員信息及運(yùn)貨商的信息。這是一個(gè)小型的數(shù)據(jù)庫(kù)應(yīng)用,使用Access數(shù)據(jù)庫(kù)就足夠了。在這里借助MFC對(duì)ODBC封裝類CRecordset,從該類派生應(yīng)用程序里使用的CCommonRs類。以CCommonRs類為基礎(chǔ),實(shí)現(xiàn)對(duì)ODBC數(shù)據(jù)源的數(shù)據(jù)訪問(wèn)。MFC ODBC :由于數(shù)據(jù)庫(kù)應(yīng)用程序是管理數(shù)據(jù)的重要方面,Microsoft開(kāi)發(fā)了ODBC API的封裝程序,為ODBC
2、編程提供了一個(gè)面向?qū)ο蟮姆椒āFC對(duì)ODBC的封裝主要是開(kāi)發(fā)了CDatabase類和CRecordSet類。使用時(shí)候需包含頭文件D:Microsoft Visual Studio 9.0VCatlmfcincludeafxdb.h第一部分ODBC關(guān)于 MFC ODBC第一部分開(kāi)發(fā)的兩個(gè)類CRecordSet類用CRecordSet類實(shí)現(xiàn)對(duì)結(jié)果集的數(shù)據(jù)操作。CRecordSet類定義了從數(shù)據(jù)庫(kù)接收或者發(fā)送數(shù)據(jù)到數(shù)據(jù)庫(kù)的成員變量。成員變量m_hstmt代表了定義該記錄集的SQL語(yǔ)句句柄,m_nFields成員變量保存了記錄集中字段個(gè)數(shù),m_nParams成員變量保存了記錄集所使用的參數(shù)個(gè)數(shù)。CR
3、ecordSet的記錄集通過(guò)CDatabase實(shí)例的指針實(shí)現(xiàn)同數(shù)據(jù)源的連接,即CRecordSet的成員變量m_pDatabase。關(guān)于 MFC ODBCCDatabase類CDatabase類用于應(yīng)用程序建立同數(shù)據(jù)源的連接。CDatabase類為C+數(shù)據(jù)庫(kù)開(kāi)發(fā)人員提供了ODBC的面向?qū)ο蟮木幊探涌?。CDatabase類包含一個(gè)m_hdbc變量,它代表了數(shù)據(jù)源的連接句柄。CDatabase類提供了對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作的函數(shù)。CDatabase類提供的函數(shù)可以用于返回?cái)?shù)據(jù)源的特定信息。第一部分開(kāi)發(fā)的兩個(gè)類關(guān)于 MFC ODBC1 記錄查詢myRS.Open(AFX_DATABASE_USE_DEFA
4、ULT,strSQL);(1) 聲明參變量,代碼如下: CString strName;int nAge;(2) 在構(gòu)造函數(shù)中初始化參變量如下 strName =_T(); nAge =0; m_nParams=2;(3) 將參變量與對(duì)應(yīng)列綁定,代碼如下:pFX-SetFieldType(CFieldExchange:param)RFX_Text(pFX,_T(Name), strName);RFX_Single(pFX,_T(Age), nAge);完成以上步驟之后就可以利用參變量進(jìn)行條件查詢了,代碼如下: m_ pmyRS - strName =劉鵬;m_ pmyRS -nAge=26;m
5、_ pmyRS -Requery();如果查詢的結(jié)果是多條記錄,可以利用CRecordSet類的成員函數(shù)Move(),MoveNext(),MovePrev(),MoveFirst()和MoveLast()來(lái)移動(dòng)記錄光標(biāo)。 第一部分開(kāi)發(fā)的兩個(gè)類關(guān)于 MFC ODBC2 記錄添加m_ pmyRS -AddNew(); / 在表的末尾添加新記錄m_ pmyRS -SetFieldNull(&(m_pSet-m_type), FALSE); m_ pmyRS -m_strName=劉鵬; / 輸入新的字段值 m_ pmyRS -m_nAge=26; / 輸入新的字段值m_ pmyRS -Up
6、date(); / 將新記錄存入數(shù)據(jù)庫(kù)m_ pmyRS -Requery(); / 重新建立記錄集3 記錄刪除m_ pmyRS -Delete();if (!m_ pmyRS -IsEOF()m_ pmyRS -MoveNext();elsem_ pmyRS -MoveLast();4 記錄修改調(diào)用Edit()成員函數(shù)可以實(shí)現(xiàn)記錄修改,在修改完成后需要調(diào)用Update()將修改結(jié)果存入數(shù)據(jù)庫(kù),代碼如下:m_ pmyRS -Edit();/ 修改當(dāng)前記錄m_ pmyRS -m_strName=劉波;/ 修改當(dāng)前記錄字段值m_ pmyRS -Update();/ 將修改結(jié)果存入數(shù)據(jù)庫(kù)m_ pmyR
7、S -Requery();第一部分開(kāi)發(fā)的兩個(gè)類關(guān)于 MFC ODBC5 撤銷數(shù)據(jù)庫(kù)更新操作如果用戶增加或者修改記錄后希望放棄當(dāng)前操作,可以在調(diào)用Update()函數(shù)之前調(diào) 用Move()函數(shù),就可以使數(shù)據(jù)庫(kù)更新撤銷了,代碼如下: CRecordSet:Move(AFX_MOVE_REFRESH); 6 直接執(zhí)行SQL語(yǔ)句但有的時(shí)候我們還想進(jìn)行一些其他操作, 例如建立新表、刪除表、建立新的字段等等,這時(shí)就需要用到CDatabase 類的直接執(zhí)行SQL語(yǔ)句的機(jī)制。代碼如下:BOOL CMyDB:ExecuteSQLWithReport (const CString& strSQL)TRYm
8、_pMyDB-ExecuteSQL(strSQL); / 直接執(zhí)行SQL語(yǔ)句CATCH (CDBException,e)CString strMsg;strMsg.LoadString(IDS_EXECUTE_SQL_FAILED);strMsg+=strSQL;return FALSE; END_CATCH return TRUE; 第一部分?jǐn)?shù)據(jù)庫(kù)設(shè)計(jì)/* 一、數(shù)據(jù)庫(kù)設(shè)計(jì) */ 時(shí)間:2015年12月11日設(shè)計(jì)表格第一部分?jǐn)?shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)E-R思路(改)根據(jù)一個(gè)超市的整個(gè)運(yùn)轉(zhuǎn)流程,可以知道存在如下實(shí)體為:關(guān)于 數(shù)據(jù)庫(kù)第一部分實(shí)體信息工作人員(operator)屬性信息工作人員的信息:工作人員
9、:分為管理員、銷售員兩種。(以身份屬性表示區(qū)分)在管理系統(tǒng)登錄時(shí),需要工作人員的用戶賬號(hào)、密碼。系統(tǒng)需要記錄每一位工作人員的相關(guān)信息便于隨時(shí)聯(lián)系。不同身份的工作人員操作系統(tǒng)的權(quán)限不同。關(guān)于 數(shù)據(jù)庫(kù)工作人員信息圖第一部分實(shí)體信息庫(kù)存商品(storage)庫(kù)存商品的信息:商品:編號(hào)、名稱、數(shù)量、進(jìn)價(jià)、單價(jià)、入庫(kù)信息(供應(yīng)商、入庫(kù)工作人員、入庫(kù)時(shí)間、商品問(wèn)題備注)關(guān)于 數(shù)據(jù)庫(kù)庫(kù)存商品信息圖第一部分實(shí)體信息供應(yīng)商(provider)供應(yīng)商的信息:商品:編號(hào)、名稱、地址、相關(guān)信息(供應(yīng)商聯(lián)系人、聯(lián)系方式)關(guān)于 數(shù)據(jù)庫(kù)供應(yīng)商信息圖第一部分實(shí)體聯(lián)系圖實(shí)體之間聯(lián)系工作人員庫(kù)存商品供應(yīng)商。(1)工作人員庫(kù)存商品
10、 銷售、入庫(kù)(2)供應(yīng)商庫(kù)存商品 提供商品關(guān)于 數(shù)據(jù)庫(kù)第一部分聯(lián)系屬性圖實(shí)體之間聯(lián)系工作人員庫(kù)存商品1、銷售(交易號(hào)+商品編號(hào))2、入庫(kù)()關(guān)于 數(shù)據(jù)庫(kù)聯(lián)系銷售(sale)第一部分聯(lián)系屬性圖實(shí)體之間聯(lián)系工作人員庫(kù)存商品1、銷售()2、入庫(kù)(入庫(kù)單號(hào)+商品號(hào))關(guān)于 數(shù)據(jù)庫(kù)聯(lián)系入庫(kù)(putin)第一部分建立數(shù)據(jù)庫(kù)l Databasestocks.mdb文件(創(chuàng)建5個(gè)表)關(guān)于 數(shù)據(jù)庫(kù)l Databasestocks.mdb文件(創(chuàng)建5個(gè)表)第二部分添加數(shù)據(jù)源/* 二、添加ODBC數(shù)據(jù)源 */ 時(shí)間:2015年12月11日數(shù)據(jù)源ODBC全稱:Open Database Connectivity,開(kāi)放數(shù)
11、據(jù)庫(kù)互連。因?yàn)镺DBC這種方法在設(shè)計(jì)的最初時(shí)候就是要到達(dá)有最大的獨(dú)立性和開(kāi)放性:與具體的編程語(yǔ)言無(wú)關(guān),與具體的數(shù)據(jù)庫(kù)系統(tǒng)無(wú)關(guān),與具體的操作系統(tǒng)無(wú)關(guān)。C:WindowsSysWOW64 “odbcad32.exe”文件1.“開(kāi)始” “設(shè)置” “控制面板” “管理工具” “數(shù)據(jù)源( ODBC)”。2.“用戶數(shù)據(jù)源”“MS ACCESS DATABASE”“添加”“Microsoft ACCESS DRIVER(*.mdb)”。3.“數(shù)據(jù)源名稱”“選擇數(shù)據(jù)庫(kù)文件”用戶本地機(jī)上ODBC數(shù)據(jù)源。第二部分添加數(shù)據(jù)源數(shù)據(jù)源第二部分思路流程商品銷售修改密碼銷售員倒換超市管理系統(tǒng)銷售員界面管理員界面商品入庫(kù)庫(kù)存
12、查詢工作人員管理銷售記錄管理供應(yīng)商查詢修改密碼入庫(kù)記錄管理關(guān)于 數(shù)據(jù)庫(kù)l 需求分析第二部分思路流程關(guān)于 數(shù)據(jù)庫(kù)l 需求分析管理員可以操作:(1) 商品入庫(kù):管理員輸入要入庫(kù)商品的編號(hào)、名稱、數(shù)量等信息并點(diǎn)擊添加商品后入庫(kù)商品的詳細(xì)信息會(huì)顯示在列表中,也可以選中某件商品然后刪除,當(dāng)?shù)谝淮翁砑由唐窌r(shí)會(huì)產(chǎn)生入庫(kù)單號(hào),當(dāng)點(diǎn)擊確認(rèn)入庫(kù)后會(huì)將列表中的所有商品入庫(kù),然后清空列表,也可以點(diǎn)擊取消入庫(kù)取消某次入庫(kù)操作。(2) 員工以及供應(yīng)商管理:可以對(duì)超市員工和供應(yīng)商信息進(jìn)行增加、刪除、查詢和修改。(3) 銷售日志和入庫(kù)日志信息管理:可以對(duì)商品入庫(kù)日志和銷售日志信息進(jìn)行查詢和刪除等操作,其中在管理銷售日志信息時(shí)
13、可以根據(jù)查詢到的銷售日志信息計(jì)算銷售額。(4) 修改登錄密碼:管理員在修改密碼時(shí)也要輸入正確的原密碼并確保兩次輸入的新密碼相同。第二部分思路流程關(guān)于 數(shù)據(jù)庫(kù)l 需求分析銷售員為顧客結(jié)賬進(jìn)行服務(wù),可以進(jìn)行如下操作:(1) 商品銷售:在商品銷售過(guò)程中,銷售員輸入商品編號(hào)和商品數(shù)量等信息并點(diǎn)擊添加商品后在已購(gòu)商品列表中會(huì)顯示所購(gòu)商品的名稱和價(jià)格等詳細(xì)信息,同時(shí)也可以選中某件商品后點(diǎn)擊刪除商品刪除該商品,系統(tǒng)自動(dòng)計(jì)算出顧客應(yīng)付金額,當(dāng)輸入顧客實(shí)際所支付的金額后點(diǎn)擊確認(rèn)付款后系統(tǒng)自動(dòng)計(jì)算出找零金額并清空交易號(hào)和已購(gòu)商品列表。銷售員也可以點(diǎn)擊取消交易來(lái)終止一次交易。(2) 銷售員換班:銷售員點(diǎn)擊收銀員換班
14、后輸入正確的編號(hào)和密碼后會(huì)實(shí)現(xiàn)銷售員的交接班。(3) 修改登錄密碼:銷售員在修改密碼時(shí)要輸入正確的原密碼并且兩次輸入的新密碼要相同才能修改密碼。第三部分創(chuàng)建工程/* 三、創(chuàng)建ODBC工程 */ 時(shí)間:2015年12月11日創(chuàng)建工程第三部分建立工程創(chuàng)建工程第三部分建立工程創(chuàng)建工程第三部分建立工程創(chuàng)建工程第四部分設(shè)計(jì)界面/* 四、設(shè)計(jì)界面程序 */ 時(shí)間:2015年12月11日設(shè)計(jì)界面第四部分設(shè)計(jì)界面/* 用戶登錄界面 */ 時(shí)間:2015年12月11日設(shè)計(jì)界面第四部分建立界面用戶登錄界面資源類型資源ID標(biāo)題功能編輯框IDC_EDIT_NAME 輸入用戶名編輯框IDC_EDIT_PWD 輸入密碼按
15、鈕IDC_BUTTON_LOGIN 登陸登陸按鈕IDC_BUTTON_EXIT退出程序 退出程序IDD_SUPERMARKET_FORM/ SupermarketView.cpp : implementation of the CSupermarketView class第四部分建立界面用戶登錄界面創(chuàng)建class CDoperator類父類CRecordset/ SupermarketView.cpp : implementation of the CSupermarketView class第四部分建立界面用戶登錄界面選擇ODBC數(shù)據(jù)源為剛剛創(chuàng)建的CDoperator類為CDoperator
16、類設(shè)置缺省的表/ SupermarketView.cpp : implementation of the CSupermarketView class第四部分建立界面用戶登錄界面在類里聲明報(bào)表信息變量,編寫(xiě)類的消息響應(yīng)函數(shù)/ SupermarketView.cpp : implementation of the CSupermarketView class第四部分建立界面用戶登錄界面if(m_Name.IsEmpty()|m_Pwd.IsEmpty() /判斷輸入是否完整及提示MessageBox(請(qǐng)輸入登錄名或密碼!,提示消息);m_Pwd=;else CString sqlstr;int
17、flag=0;/判斷用戶名、密碼以及權(quán)限,跳轉(zhuǎn)到不同工作界面sqlstr.Format(select * from tb_operator where operator_id=%s,m_Name);if(m_pSet-IsOpen()=TRUE)m_pSet-Close();m_pSet-Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr); /根據(jù)條件打開(kāi)記錄集if (m_pSet-IsEOF() /判斷用戶是否在記錄集中MessageBox(此用戶不存在!,提示消息);m_Name=;m_Pwd=;if (strlevel=管理員) /strlevel是根據(jù)用戶名和密碼
18、得到的權(quán)限CDmanage dlg_manage;dlg_manage.m_Oid=strid;dlg_manage.m_Oname=strname; /在管理界面顯示管理員編號(hào)和姓名AfxGetMainWnd()-ShowWindow(SW_HIDE); /隱藏主界面dlg_manage.DoModal(); /顯示管理界面AfxGetMainWnd()-ShowWindow(SW_SHOW); /顯示主界面if (strlevel=銷售員)/代碼實(shí)現(xiàn)與管理員類似CDsell dlg_sell;dlg_sell.m_Oid=strid;dlg_sell.m_Oname=strname;/銷售
19、界面顯示編號(hào)和姓名AfxGetMainWnd()-ShowWindow(SW_HIDE);dlg_sell.DoModal();AfxGetMainWnd()-ShowWindow(SW_SHOW);if (flag=0) /賬號(hào)下面判斷密碼輸入MessageBox(密碼錯(cuò)誤!,提示消息);m_Name=;m_Pwd=;第四部分建立界面用戶登錄界面第四部分設(shè)計(jì)界面/* 用戶管理界面 */ 時(shí)間:2015年12月11日設(shè)計(jì)界面第四部分建立界面管理界面商品入庫(kù)模塊員工管理模塊供應(yīng)商管理模塊入庫(kù)記錄模塊銷售記錄模塊退出管理模塊庫(kù)存查詢模塊修改密碼模塊IDD_DIALOG_MANAGE/ Dmanag
20、e.cpp : implementation file入庫(kù)信息顯示模塊功能鏈接按鈕模塊第四部分建立界面資源類型資源ID標(biāo)題功能只讀編輯框IDC_EDIT_OID 自動(dòng)顯示用戶賬號(hào)只讀編輯框IDC_EDIT_ONAME 自動(dòng)顯示用戶姓名只讀編輯框IDC_EDIT_TIME 自動(dòng)顯示當(dāng)前時(shí)間IDD_DIALOG_MANAGE 登錄自動(dòng)顯示信息管理界面第四部分建立界面登錄自動(dòng)顯示當(dāng)前時(shí)間信息void CDmanage:OnTimer(UINT nIDEvent) / TODO: Add your message handler code here and/or call defaultCString
21、 strTime;CTime tm;tm=CTime:GetCurrentTime(); strTime=tm.Format(%Y年年%m月月%d日日 %H:%M:%S);SetDlgItemText(IDC_EDIT_TIME,strTime); /顯示系統(tǒng)顯示系統(tǒng)時(shí)間時(shí)間CDialog:OnTimer(nIDEvent);用戶賬號(hào)與姓名顯示的程序語(yǔ)句在前面登錄界面函數(shù)中。/在管理界面顯示管理員編號(hào)和姓名管理界面第四部分設(shè)計(jì)界面/* 商品入庫(kù)模塊 */ 時(shí)間:2015年12月11日設(shè)計(jì)界面第四部分建立界面管理界面商品入庫(kù)模塊資源類型資源ID標(biāo)題功能編輯框IDC_EDIT_GOODSID商品編
22、號(hào) 編輯框IDC_EDIT_GOODSNAME商品名稱 編輯框IDC_EDIT_QUANTITY商品數(shù)量 編輯框IDC_EDIT_TYPE規(guī)格型號(hào) 編輯框IDC_EDIT_BID進(jìn)價(jià) 編輯框IDC_EDIT_PRICE 售價(jià)編輯框IDC_EDIT_REMARK備注 組合框IDC_COMBO_PROVIDER供應(yīng)商 選擇只讀編輯框IDC_EDIT_PUTINID入庫(kù)單號(hào)系統(tǒng)自動(dòng)生成按鈕IDC_BUTTON_ADD 添加商品按鈕IDC_BUTTON_DELETE 刪除商品按鈕IDC_BUTTON_CPUTIN 確認(rèn)入庫(kù)按鈕IDC_BUTTON_CPUTIN2 取消入庫(kù)第四部分建立界面管理界面IDD
23、_DIALOG_MANAGE商品入庫(kù)模塊第四部分建立界面管理界面IDD_DIALOG_MANAGE添加商品void CDmanage:OnKillfocusEditGoodsid() / 首先輸入商品必須的屬性,添加商品按鈕被觸首先輸入商品必須的屬性,添加商品按鈕被觸發(fā)后首先判斷數(shù)量問(wèn)題發(fā)后首先判斷數(shù)量問(wèn)題UpdateData();if(storage_set.IsOpen()storage_set.Close();storage_set.Open();while(!storage_set.IsEOF()if (m_Goodsid=storage_set.m_goods_id)if(stora
24、ge_set.m_goods_quantity!=0) / 庫(kù)存庫(kù)存數(shù)量有剩余數(shù)量有剩余MessageBox(此商品尚有庫(kù)存,請(qǐng)勿添加!此商品尚有庫(kù)存,請(qǐng)勿添加!,提示消息提示消息);GetDlgItem(IDC_EDIT_GOODSID)-SetFocus();return;m_EGoodsid.SetReadOnly(TRUE);m_Goodsname=storage_set.m_goods_name;m_EGoodsname.SetReadOnly(TRUE);m_Type=storage_set.m_goods_type;m_EType.SetReadOnly(TRUE);m_Bid=
25、storage_set.m_goods_bid;m_EBid.SetReadOnly(TRUE);m_Pirce=storage_set.m_goods_price;m_EPirce.SetReadOnly(TRUE);m_Remark=storage_set.m_goods_remark;m_ERemark.SetReadOnly(TRUE);m_Cprovider.SelectString(-1,storage_set.m_goods_provider);break;storage_set.MoveNext();storage_set.Close();UpdateData(FALSE);/
26、 Dmanage.cpp : implementation file商品入庫(kù)模塊第四部分建立界面管理界面IDD_DIALOG_MANAGE刪除商品void CDmanage:OnButtonDelete() / TODO: Add your control notification handler code hereint nSel=m_Goods.GetNextItem(-1,LVNI_SELECTED);if (-1=nSel)return;m_Goods.DeleteItem(nSel);/ Dmanage.cpp : implementation file取消入庫(kù)void CDmana
27、ge:OnButtonCputin2() / TODO: Add your control notification handler code hereUpdateData();if (MessageBox(確定要取消入庫(kù)?確定要取消入庫(kù)?,提示消息提示消息,MB_OKCANCEL|MB_ICONQUESTION)=IDOK)m_Goods.DeleteAllItems();m_Putinid=;UpdateData(FALSE);商品入庫(kù)模塊第四部分建立界面管理界面IDD_DIALOG_MANAGEvoid CDmanage:OnButtonCputin() / TODO: Add your
28、 control notification handler code hereUpdateData();if(m_Goods.GetItemCount()=0)MessageBox(請(qǐng)先添加商品!請(qǐng)先添加商品!,提示消息提示消息);return;for (int i=0;iEnableWindow(TRUE);m_Fgoodsname=;GetDlgItem(IDC_EDIT_FGOODSNAME)-EnableWindow(FALSE);m_Date=;GetDlgItem(IDC_EDIT_FGOODSDATE)-EnableWindow(FALSE);UpdateData(FALSE);
29、第四部分建立界面管理界面IDD_DIALOG_MANAGEvoid CDmanage:OnRadioFrgoodsname() / TODO: Add your control notification handler code hereUpdateData();m_Fgoodsid=;GetDlgItem(IDC_EDIT_FGOODSID)-EnableWindow(FALSE);GetDlgItem(IDC_EDIT_FGOODSNAME)-EnableWindow(TRUE);m_Date=;GetDlgItem(IDC_EDIT_FGOODSDATE)-EnableWindow(FA
30、LSE);UpdateData(FALSE);庫(kù)存查詢模塊第四部分建立界面管理界面IDD_DIALOG_MANAGEvoid CDmanage:OnRadioFrgoodsdate() / TODO: Add your control notification handler code hereUpdateData();m_Fgoodsid=;GetDlgItem(IDC_EDIT_FGOODSID)-EnableWindow(FALSE);m_Fgoodsname=;GetDlgItem(IDC_EDIT_FGOODSNAME)-EnableWindow(FALSE);GetDlgItem(
31、IDC_EDIT_FGOODSDATE)-EnableWindow(TRUE);UpdateData(FALSE);庫(kù)存查詢模塊第四部分建立界面管理界面IDD_DIALOG_MANAGEvoid CDmanage:OnButton1() / TODO: Add your control notification handler code hereUpdateData();m_Goods.DeleteAllItems();CString sqlstr;if(m_Fway=0)if(m_Fgoodsid.IsEmpty()MessageBox(請(qǐng)輸入商品編號(hào)!請(qǐng)輸入商品編號(hào)!,提示消息提示消息);
32、return;sqlstr.Format(select * from tb_storage where goods_id=%s,m_Fgoodsid);查詢按鈕函數(shù)庫(kù)存查詢模塊第四部分建立界面管理界面IDD_DIALOG_MANAGEelse if (m_Fway=1)if (m_Fgoodsname.IsEmpty()MessageBox(請(qǐng)輸入商品名稱!請(qǐng)輸入商品名稱!,提示消息提示消息);return;sqlstr.Format(select * from tb_storage where goods_name=%s,m_Fgoodsname);else if (m_Fway=2)if
33、(m_Date.IsEmpty()MessageBox(請(qǐng)輸入入庫(kù)日期!請(qǐng)輸入入庫(kù)日期!,提示消息提示消息);return;sqlstr.Format(select * from tb_storage where putin_date=%s,m_Date);else / 沒(méi)有選擇單選按鈕沒(méi)有選擇單選按鈕MessageBox(請(qǐng)選擇查找方式!請(qǐng)選擇查找方式!,提示消息提示消息);return;查詢按鈕函數(shù)庫(kù)存查詢模塊第四部分建立界面管理界面IDD_DIALOG_MANAGECString strbid,strprice,strquan;if (storage_set.IsOpen()storag
34、e_set.Close();storage_set.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr);if (storage_set.IsEOF() / 查詢結(jié)果集為空查詢結(jié)果集為空MessageBox(沒(méi)有此記錄!沒(méi)有此記錄!,提示消息提示消息);return;查詢按鈕函數(shù)庫(kù)存查詢模塊第四部分建立界面管理界面IDD_DIALOG_MANAGEwhile(!storage_set.IsEOF() /在列表框顯示可查詢的記錄集內(nèi)容在列表框顯示可查詢的記錄集內(nèi)容strquan.Format(%d,storage_set.m_goods_quantity);strbid.Fo
35、rmat(%.2lf,storage_set.m_goods_bid);strprice.Format(%.2lf,storage_set.m_goods_price);int nItem=m_Goods.InsertItem(m_Goods.GetItemCount(),storage_set.m_goods_id);m_Goods.SetItemText(nItem,1,storage_set.m_goods_name);m_Goods.SetItemText(nItem,2,strquan);m_Goods.SetItemText(nItem,3,storage_set.m_goods_
36、type);m_Goods.SetItemText(nItem,4,strbid);m_Goods.SetItemText(nItem,5,strprice);m_Goods.SetItemText(nItem,6,storage_set.m_goods_provider);m_Goods.SetItemText(nItem,7,storage_set.m_goods_operator);m_Goods.SetItemText(nItem,8,storage_set.m_putin_date);m_Goods.SetItemText(nItem,9,storage_set.m_putin_ti
37、me);m_Goods.SetItemText(nItem,10,storage_set.m_goods_remark);storage_set.MoveNext();m_Fway=-1;m_Fgoodsid=;m_Fgoodsname=;m_Date=;GetDlgItem(IDC_EDIT_FGOODSID)-EnableWindow(FALSE);GetDlgItem(IDC_EDIT_FGOODSNAME)-EnableWindow(FALSE);GetDlgItem(IDC_EDIT_FGOODSDATE)-EnableWindow(FALSE);UpdateData(FALSE);
38、查詢按鈕函數(shù)庫(kù)存查詢模塊第四部分建立界面管理界面IDD_DIALOG_MANAGEm_Fway=-1;m_Fgoodsid=;m_Fgoodsname=;m_Date=;GetDlgItem(IDC_EDIT_FGOODSID)-EnableWindow(FALSE);GetDlgItem(IDC_EDIT_FGOODSNAME)-EnableWindow(FALSE);GetDlgItem(IDC_EDIT_FGOODSDATE)-EnableWindow(FALSE);UpdateData(FALSE);查詢按鈕函數(shù)庫(kù)存查詢模塊第四部分設(shè)計(jì)界面/* 修改密碼模塊 */ 時(shí)間:2015年12
39、月11日設(shè)計(jì)界面第四部分建立界面管理界面IDD_DIALOG_MANAGE資源類型資源ID標(biāo)題功能按鈕IDC_BUTTON2確定 按鈕IDC_BUTTON3取消 編輯框IDC_EDIT_OLDPWD輸入舊密碼編輯框IDC_EDIT_NEWPWD輸入新密碼編輯框IDC_EDIT_NEWPWDC輸入確認(rèn)新修改密碼模塊第四部分建立界面管理界面IDD_DIALOG_MANAGEvoid CDmanage:OnButton2() / TODO: Add your control notification handler code hereUpdateData();if (m_Goods.GetItemC
40、ount()!=0)MessageBox(修改密碼前請(qǐng)停止其它操作!修改密碼前請(qǐng)停止其它操作!,提示消息提示消息);m_Oldpwd=;m_Newpwd=;m_CNewpwd=;UpdateData(FALSE);return; if (m_Oldpwd.IsEmpty()|m_Newpwd.IsEmpty()|m_CNewpwd.IsEmpty() / 三個(gè)編輯框沒(méi)有全部輸入信息三個(gè)編輯框沒(méi)有全部輸入信息MessageBox(請(qǐng)輸入完整信息!請(qǐng)輸入完整信息!,提示消息提示消息);m_Oldpwd=;m_Newpwd=;m_CNewpwd=;UpdateData(FALSE);return;
41、確定修改按鈕函數(shù)修改密碼模塊第四部分建立界面管理界面IDD_DIALOG_MANAGECString sqlstr;sqlstr.Format(select * from tb_operator where operator_id=%s and operator_pwd=%s,m_Oid,m_Oldpwd);if (operator_set.IsOpen()=TRUE)operator_set.Close();operator_set.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr);if (operator_set.IsEOF() / 查詢結(jié)果集密碼為空查詢結(jié)果集密碼
42、為空MessageBox(原密碼錯(cuò)誤!原密碼錯(cuò)誤!,提示消息提示消息);m_Oldpwd=;m_Newpwd=;m_CNewpwd=;UpdateData(FALSE);return;確定修改按鈕函數(shù)修改密碼模塊第四部分建立界面管理界面IDD_DIALOG_MANAGEif (m_CNewpwd!=m_Newpwd) / 兩次輸入新密碼比較兩次輸入新密碼比較MessageBox(確認(rèn)新密碼失?。〈_認(rèn)新密碼失??!,提示消息提示消息);return;if (MessageBox(確定要修改密碼?確定要修改密碼?,提示消息提示消息,MB_OKCANCEL|MB_ICONQUESTION)=IDOK)
43、operator_set.Edit();operator_set.m_operator_pwd=m_Newpwd;if (!operator_set.Update() / 新舊密碼一致新舊密碼一致MessageBox(修改密碼失敗!修改密碼失??!,提示消息提示消息);return;MessageBox(修改密碼成功修改密碼成功,請(qǐng)重新登錄!請(qǐng)重新登錄!,提示消息提示消息);CDialog:OnOK();else m_Oldpwd=;m_Newpwd=;m_CNewpwd=;UpdateData(FALSE); 確定修改按鈕函數(shù)修改密碼模塊第四部分建立界面管理界面IDD_DIALOG_MANAG
44、Evoid CDmanage:OnButton3() / TODO: Add your control notification handler code hereUpdateData();m_Oldpwd=;m_Newpwd=;m_CNewpwd=;UpdateData(FALSE);取消修改按鈕函數(shù)修改密碼模塊第四部分設(shè)計(jì)界面/* 功能鏈接模塊 */ 時(shí)間:2015年12月11日設(shè)計(jì)界面第四部分建立界面管理界面功能模塊鏈接按鈕IDD_DIALOG_MANAGE資源類型資源ID標(biāo)題功能按鈕IDC_BUTTON4入庫(kù)記錄管理按鈕IDC_BUTTON6員工管理 按鈕IDC_BUTTON5銷售記錄
45、管理按鈕IDC_BUTTON7供應(yīng)商管理按鈕IDC_BUTTON8退出管理第四部分建立界面管理界面功能模塊鏈接按鈕IDD_DIALOG_MANAGEvoid CDmanage:OnButton4() / TODO: Add your control notification handler code hereCDsputin dlg_sputin;dlg_sputin.DoModal();void CDmanage:OnButton5() / TODO: Add your control notification handler code hereCDssale dlg_ssale;dlg_s
46、sale.DoModal();void CDmanage:OnButton6() / TODO: Add your control notification handler code hereCDmpeople dlg_mpeople;dlg_mpeople.DoModal();void CDmanage:OnButton7() / TODO: Add your control notification handler code hereCDmprovider dlg_mprovider;dlg_mprovider.DoModal();void CDmanage:OnButton8() CDi
47、alog:OnOK();第四部分設(shè)計(jì)界面/* 入庫(kù)記錄模塊 */ 時(shí)間:2015年12月11日設(shè)計(jì)界面第四部分建立界面入庫(kù)記錄界面IDD_DIALOG_SPUTIN入庫(kù)記錄模塊入庫(kù)信息查詢?nèi)霂?kù)信息管理入庫(kù)記錄顯示表/ Dsputin.cpp : implementation file第四部分建立界面IDC_LIST_PUTIN/ Dsputin.cpp : implementation filevoid CDsputin:OnClickListPutin(NMHDR* pNMHDR, LRESULT* pResult) / TODO: Add your control notification
48、 handler code hereint nSel=m_Putin.GetNextItem(-1,LVNI_SELECTED);if(nSel=-1)return;m_Putinid=m_Putin.GetItemText(nSel,0);m_Goodsid=m_Putin.GetItemText(nSel,1);m_Goodsname=m_Putin.GetItemText(nSel,2);m_Quantity=atoi(m_Putin.GetItemText(nSel,3);m_Type=m_Putin.GetItemText(nSel,4);m_Bid=atof(m_Putin.Get
49、ItemText(nSel,5);入庫(kù)記錄顯示表m_Provider=m_Putin.GetItemText(nSel,6);m_Operator=m_Putin.GetItemText(nSel,7);m_Date=m_Putin.GetItemText(nSel,8);m_Time=m_Putin.GetItemText(nSel,9);m_Remark=m_Putin.GetItemText(nSel,10);UpdateData(FALSE);*pResult = 0;入庫(kù)記錄界面第四部分建立界面入庫(kù)信息查詢資源類型資源ID標(biāo)題功能單選按鈕IDC_RADIO_RFPUTINID入庫(kù)單號(hào)
50、單選按鈕IDC_RADIO_RFGOODSID商品編號(hào) 單選按鈕IDC_RADIO_RFGOODSNAME商品名稱單選按鈕IDC_RADIO_RFDATE入庫(kù)日期 單選按鈕IDC_RADIO_RFOPERATOR經(jīng)辦人按鈕IDC_BUTTON1顯示所有信息 按鈕IDC_BUTTON9查詢編輯框IDC_EDIT_FPUTINID顯示入庫(kù)單號(hào)編輯框IDC_EDIT_FGOODSID顯示商品編號(hào)編輯框IDC_EDIT_FGOODSNAME顯示商品名稱編輯框IDC_EDIT_FDATE顯示入庫(kù)日期組合框IDC_COMBO_FOPERATOR顯示選擇經(jīng)辦人入庫(kù)記錄界面IDD_DIALOG_SPUTIN第
51、四部分建立界面/ Dsputin.cpp : implementation filevoid CDsputin:OnRadioRfputinid() / TODO: Add your control notification handler code hereUpdateData();GetDlgItem(IDC_EDIT_FPUTINID)-EnableWindow(TRUE);GetDlgItem(IDC_EDIT_FGOODSID)-EnableWindow(FALSE);GetDlgItem(IDC_EDIT_FGOODSNAME)-EnableWindow(FALSE);GetDlg
52、Item(IDC_EDIT_FDATE)-EnableWindow(FALSE);GetDlgItem(IDC_COMBO_FOPERATOR)-EnableWindow(FALSE);m_Fgoodsid=;m_Fgoodsname=;m_Fdate=;m_Foperator.SetCurSel(-1);UpdateData(FALSE);入庫(kù)信息查詢?nèi)霂?kù)記錄界面IDD_DIALOG_SPUTIN第四部分建立界面/ Dsputin.cpp : implementation filevoid CDsputin:OnRadioRfgoodsid() / TODO: Add your contro
53、l notification handler code hereUpdateData();GetDlgItem(IDC_EDIT_FPUTINID)-EnableWindow(FALSE);GetDlgItem(IDC_EDIT_FGOODSID)-EnableWindow(TRUE);GetDlgItem(IDC_EDIT_FGOODSNAME)-EnableWindow(FALSE);GetDlgItem(IDC_EDIT_FDATE)-EnableWindow(FALSE);GetDlgItem(IDC_COMBO_FOPERATOR)-EnableWindow(FALSE);m_Fpu
54、tinid=;m_Fgoodsname=;m_Fdate=;m_Foperator.SetCurSel(-1);UpdateData(FALSE);入庫(kù)信息查詢?nèi)霂?kù)記錄界面IDD_DIALOG_SPUTIN第四部分建立界面/ Dsputin.cpp : implementation filevoid CDsputin:OnRadioRfgoodsname() / TODO: Add your control notification handler code hereUpdateData();GetDlgItem(IDC_EDIT_FPUTINID)-EnableWindow(FALSE);G
55、etDlgItem(IDC_EDIT_FGOODSID)-EnableWindow(FALSE);GetDlgItem(IDC_EDIT_FGOODSNAME)-EnableWindow(TRUE);GetDlgItem(IDC_EDIT_FDATE)-EnableWindow(FALSE);GetDlgItem(IDC_COMBO_FOPERATOR)-EnableWindow(FALSE);m_Fputinid=;m_Fgoodsid=;m_Fdate=;m_Foperator.SetCurSel(-1);UpdateData(FALSE);入庫(kù)信息查詢?nèi)霂?kù)記錄界面IDD_DIALOG_S
56、PUTIN第四部分建立界面/ Dsputin.cpp : implementation filevoid CDsputin:OnRadioRfdate() / TODO: Add your control notification handler code hereUpdateData();GetDlgItem(IDC_EDIT_FPUTINID)-EnableWindow(FALSE);GetDlgItem(IDC_EDIT_FGOODSID)-EnableWindow(FALSE);GetDlgItem(IDC_EDIT_FGOODSNAME)-EnableWindow(FALSE);Ge
57、tDlgItem(IDC_EDIT_FDATE)-EnableWindow(TRUE);GetDlgItem(IDC_COMBO_FOPERATOR)-EnableWindow(FALSE);m_Fputinid=;m_Fgoodsname=;m_Fgoodsid=;m_Foperator.SetCurSel(-1);UpdateData(FALSE);入庫(kù)信息查詢?nèi)霂?kù)記錄界面IDD_DIALOG_SPUTIN第四部分建立界面/ Dsputin.cpp : implementation filevoid CDsputin:OnRadioRfoperator() / TODO: Add your
58、 control notification handler code hereUpdateData();GetDlgItem(IDC_EDIT_FPUTINID)-EnableWindow(FALSE);GetDlgItem(IDC_EDIT_FGOODSID)-EnableWindow(FALSE);GetDlgItem(IDC_EDIT_FGOODSNAME)-EnableWindow(FALSE);GetDlgItem(IDC_EDIT_FDATE)-EnableWindow(FALSE);GetDlgItem(IDC_COMBO_FOPERATOR)-EnableWindow(TRUE
59、);m_Fputinid=;m_Fgoodsname=;m_Fdate=;m_Fgoodsid=;UpdateData(FALSE);入庫(kù)信息查詢?nèi)霂?kù)記錄界面IDD_DIALOG_SPUTIN第四部分建立界面/ Dsputin.cpp : implementation filevoid CDsputin:OnButton1() / TODO: Add your control notification handler code herem_Putin.DeleteAllItems();if(putin_set.IsOpen()putin_set.Close();putin_set.Open()
60、;while (!putin_set.IsEOF()CString strquan,strbid;strquan.Format(%d,putin_set.m_quantity);strbid.Format(%.2lf,putin_set.m_bid);入庫(kù)信息查詢?nèi)霂?kù)記錄界面IDD_DIALOG_SPUTIN第四部分建立界面int nItem=m_Putin.InsertItem(m_Putin.GetItemCount(),putin_set.m_putin_id);m_Putin.SetItemText(nItem,1,putin_set.m_putin_goods_id);m_Putin.SetItem
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 構(gòu)建安全辦公環(huán)境從網(wǎng)絡(luò)安全培訓(xùn)開(kāi)始
- 醫(yī)療護(hù)理醫(yī)學(xué)培訓(xùn) 有創(chuàng)動(dòng)脈壓監(jiān)測(cè)波形分析課件
- 生產(chǎn)現(xiàn)場(chǎng)管理對(duì)效率的提升作用
- 現(xiàn)代企業(yè)管理中高效團(tuán)隊(duì)溝通的秘密
- 生態(tài)美學(xué)在洗浴空間設(shè)計(jì)中的應(yīng)用
- 現(xiàn)代辦公環(huán)境下實(shí)踐教學(xué)資源的整合與創(chuàng)新
- 現(xiàn)代辦公環(huán)境下的金融科技創(chuàng)新
- Unit 2 Shopping Lesson3(說(shuō)課稿)-2024-2025學(xué)年北師大版(三起)英語(yǔ)四年級(jí)上冊(cè)
- 8 安全記心上(說(shuō)課稿)-2024-2025學(xué)年道德與法治三年級(jí)上冊(cè)統(tǒng)編版
- 2023三年級(jí)英語(yǔ)下冊(cè) Fun Time 1(Recycle 2)說(shuō)課稿 人教精通版(三起)
- 呆死帳的發(fā)生與預(yù)防課件
- 10000中國(guó)普通人名大全
- 導(dǎo)數(shù)常見(jiàn)函數(shù)圖像
- 起重機(jī)械安裝吊裝危險(xiǎn)源辨識(shí)、風(fēng)險(xiǎn)評(píng)價(jià)表
- 華北理工兒童口腔醫(yī)學(xué)教案06兒童咬合誘導(dǎo)
- 中國(guó)建筑項(xiàng)目管理表格
- 高一3班第一次月考總結(jié)班會(huì)課件
- 公共政策分析導(dǎo)論教學(xué)課件匯總完整版電子教案
- 我國(guó)油菜生產(chǎn)機(jī)械化技術(shù)(-119)
- 大跨度斜拉橋上部結(jié)構(gòu)施工技術(shù)(圖文并茂)
- 論人口模型論文計(jì)劃生育政策調(diào)整對(duì)人口數(shù)量結(jié)構(gòu)及其影響
評(píng)論
0/150
提交評(píng)論