超市管理系統(tǒng)MFCodbc可編輯_第1頁
超市管理系統(tǒng)MFCodbc可編輯_第2頁
超市管理系統(tǒng)MFCodbc可編輯_第3頁
超市管理系統(tǒng)MFCodbc可編輯_第4頁
超市管理系統(tǒng)MFCodbc可編輯_第5頁
已閱讀5頁,還剩177頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

超市管理系統(tǒng)MFCodbc(可編輯)超市管理系統(tǒng)MFCodbc(可編輯)超市管理系統(tǒng)MFCodbc(可編輯)Contents數(shù)據(jù)庫系統(tǒng)及其訪問技術(shù):采用MFC的ODBC數(shù)據(jù)庫訪問技術(shù),從Access數(shù)據(jù)庫里讀取銷售信息、商品情況、雇員信息及運貨商的信息。這是一個小型的數(shù)據(jù)庫應(yīng)用,使用Access數(shù)據(jù)庫就足夠了。在這里借助MFC對ODBC封裝類CRecordset,從該類派生應(yīng)用程序里使用的CCommonRs類。以CCommonRs類為基礎(chǔ),實現(xiàn)對ODBC數(shù)據(jù)源的數(shù)據(jù)訪問。MFCODBC:由于數(shù)據(jù)庫應(yīng)用程序是管理數(shù)據(jù)的重要方面,Microsoft開發(fā)了ODBCAPI的封裝程序,為ODBC編程提供了一個面向?qū)ο蟮姆椒āFC對ODBC的封裝主要是開發(fā)了CDatabase類和CRecordSet類。使用時候需包含頭文件D:\MicrosoftVisualStudio9.0\VC\atlmfc\include\afxdb.h

第一部分ODBC關(guān)于MFCODBC第一部分開發(fā)的兩個類CRecordSet類用CRecordSet類實現(xiàn)對結(jié)果集的數(shù)據(jù)操作。CRecordSet類定義了從數(shù)據(jù)庫接收或者發(fā)送數(shù)據(jù)到數(shù)據(jù)庫的成員變量。成員變量m_hstmt代表了定義該記錄集的SQL語句句柄,m_nFields成員變量保存了記錄集中字段個數(shù),m_nParams成員變量保存了記錄集所使用的參數(shù)個數(shù)。CRecordSet的記錄集通過CDatabase實例的指針實現(xiàn)同數(shù)據(jù)源的連接,即CRecordSet的成員變量m_pDatabase。關(guān)于MFCODBCCDatabase類CDatabase類用于應(yīng)用程序建立同數(shù)據(jù)源的連接。CDatabase類為C++數(shù)據(jù)庫開發(fā)人員提供了ODBC的面向?qū)ο蟮木幊探涌凇Database類包含一個m_hdbc變量,它代表了數(shù)據(jù)源的連接句柄。CDatabase類提供了對數(shù)據(jù)庫進行操作的函數(shù)。CDatabase類提供的函數(shù)可以用于返回數(shù)據(jù)源的特定信息。第一部分開發(fā)的兩個類關(guān)于MFCODBC1記錄查詢myRS.Open(AFX_DATABASE_USE_DEFAULT,strSQL);(1)聲明參變量,代碼如下: CStringstrName; intnAge;(2)在構(gòu)造函數(shù)中初始化參變量如下 strName=_T(""); nAge=0; m_nParams=2;(3)將參變量及對應(yīng)列綁定,代碼如下: pFX->SetFieldType(CFieldExchange::param) RFX_Text(pFX,_T("Name"),strName); RFX_Single(pFX,_T("Age"),nAge);完成以上步驟之后就可以利用參變量進行條件查詢了,代碼如下:m_pmyRS->strName="劉鵬"; m_pmyRS->nAge=26; m_pmyRS->Requery();如果查詢的結(jié)果是多條記錄,可以利用CRecordSet類的成員函數(shù)Move(),MoveNext(),MovePrev(),MoveFirst()和MoveLast()來移動記錄光標(biāo)。第一部分開發(fā)的兩個類關(guān)于MFCODBC2記錄添加m_pmyRS->AddNew(); //在表的末尾添加新記錄 m_pmyRS->SetFieldNull(&(m_pSet->m_type),FALSE); m_pmyRS->m_strName="劉鵬"; //輸入新的字段值 m_pmyRS->m_nAge=26; //輸入新的字段值 m_pmyRS-> Update(); //將新記錄存入數(shù)據(jù)庫 m_pmyRS->Requery(); //重新建立記錄集3記錄刪除m_pmyRS->Delete(); if(!m_pmyRS->IsEOF()) m_pmyRS->MoveNext(); else m_pmyRS->MoveLast();4記錄修改調(diào)用Edit()成員函數(shù)可以實現(xiàn)記錄修改,在修改完成后需要調(diào)用Update()將修改結(jié)果存入數(shù)據(jù)庫,代碼如下: m_pmyRS->Edit(); //修改當(dāng)前記錄 m_pmyRS->m_strName="劉波"; //修改當(dāng)前記錄字段值m_pmyRS->Update(); //將修改結(jié)果存入數(shù)據(jù)庫 m_pmyRS->Requery();第一部分開發(fā)的兩個類關(guān)于MFCODBC5撤銷數(shù)據(jù)庫更新操作如果用戶增加或者修改記錄后希望放棄當(dāng)前操作,可以在調(diào)用Update()函數(shù)之前調(diào)用Move()函數(shù),就可以使數(shù)據(jù)庫更新撤銷了,代碼如下: CRecordSet::Move(AFX_MOVE_REFRESH);6直接執(zhí)行SQL語句但有的時候我們還想進行一些其他操作,例如建立新表、刪除表、建立新的字段等等,這時就需要用到CDatabase類的直接執(zhí)行SQL語句的機制。代碼如下: BOOLCMyDB::ExecuteSQLWithReport(constCString&strSQL) { TRY { m_pMyDB->ExecuteSQL(strSQL); //直接執(zhí)行SQL語句 } CATCH(CDBException,e) { CStringstrMsg; strMsg.LoadString(IDS_EXECUTE_SQL_FAILED); strMsg+=strSQL; returnFALSE; }END_CATCHreturnTRUE;}第一部分?jǐn)?shù)據(jù)庫設(shè)計/*一、數(shù)據(jù)庫設(shè)計*/時間:2015年12月11日設(shè)計表格第一部分?jǐn)?shù)據(jù)庫設(shè)計數(shù)據(jù)庫E-R思路(改)根據(jù)一個超市的整個運轉(zhuǎn)流程,可以知道存在如下實體為:1.工作人員:管理員、銷售員。2.庫存商品。3.供應(yīng)商。關(guān)于數(shù)據(jù)庫第一部分實體信息工作人員(operator)屬性信息工作人員的信息:工作人員:分為管理員、銷售員兩種。(以身份屬性表示區(qū)分)在管理系統(tǒng)登錄時,需要工作人員的用戶賬號、密碼。系統(tǒng)需要記錄每一位工作人員的相關(guān)信息便于隨時聯(lián)系。不同身份的工作人員操作系統(tǒng)的權(quán)限不同。關(guān)于數(shù)據(jù)庫工作人員信息圖第一部分實體信息庫存商品(storage)庫存商品的信息:商品:編號、名稱、數(shù)量、進價、單價、入庫信息(供應(yīng)商、入庫工作人員、入庫時間、商品問題備注)關(guān)于數(shù)據(jù)庫庫存商品信息圖第一部分實體信息供應(yīng)商(provider)供應(yīng)商的信息:商品:編號、名稱、地址、相關(guān)信息(供應(yīng)商聯(lián)系人、聯(lián)系方式)關(guān)于數(shù)據(jù)庫供應(yīng)商信息圖第一部分實體聯(lián)系圖實體之間聯(lián)系工作人員——庫存商品——供應(yīng)商。(1)工作人員——庫存商品銷售、入庫(2)供應(yīng)商——庫存商品提供商品關(guān)于數(shù)據(jù)庫第一部分聯(lián)系屬性圖實體之間聯(lián)系工作人員——庫存商品1、銷售(交易號+商品編號)2、入庫()關(guān)于數(shù)據(jù)庫聯(lián)系——銷售(sale)第一部分聯(lián)系屬性圖實體之間聯(lián)系工作人員——庫存商品1、銷售()2、入庫(入庫單號+商品號)關(guān)于數(shù)據(jù)庫聯(lián)系——入庫(putin)第一部分建立數(shù)據(jù)庫Database\stocks.mdb文件(創(chuàng)建5個表)關(guān)于數(shù)據(jù)庫Database\stocks.mdb文件(創(chuàng)建5個表)第二部分添加數(shù)據(jù)源/*二、添加ODBC數(shù)據(jù)源*/時間:2015年12月11日數(shù)據(jù)源ODBC全稱:OpenDatabaseConnectivity,開放數(shù)據(jù)庫互連。因為ODBC這種方法在設(shè)計的最初時候就是要到達(dá)有最大的獨立性和開放性:及具體的編程語言無關(guān),與具體的數(shù)據(jù)庫系統(tǒng)無關(guān),與具體的操作系統(tǒng)無關(guān)。C:\Windows\SysWOW64“odbcad32.exe”文件1.“開始”——>“設(shè)置”——>“控制面板”——>“管理工具”——>“數(shù)據(jù)源(ODBC)”。2.“用戶數(shù)據(jù)源”——>“MSACCESSDATABASE”——>“添加”——>“MicrosoftACCESSDRIVER(*.mdb)”。3.“數(shù)據(jù)源名稱”——>“選擇數(shù)據(jù)庫文件”——>用戶本地機上ODBC數(shù)據(jù)源。第二部分添加數(shù)據(jù)源數(shù)據(jù)源第二部分思路流程商品銷售修改密碼銷售員倒換超市管理系統(tǒng)銷售員界面管理員界面商品入庫庫存查詢工作人員管理銷售記錄管理供應(yīng)商查詢修改密碼入庫記錄管理關(guān)于數(shù)據(jù)庫需求分析第二部分思路流程關(guān)于數(shù)據(jù)庫需求分析管理員可以操作:(1)商品入庫:管理員輸入要入庫商品的編號、名稱、數(shù)量等信息并點擊添加商品后入庫商品的詳細(xì)信息會顯示在列表中,也可以選中某件商品然后刪除,當(dāng)?shù)谝淮翁砑由唐窌r會產(chǎn)生入庫單號,當(dāng)點擊確認(rèn)入庫后會將列表中的所有商品入庫,然后清空列表,也可以點擊取消入庫取消某次入庫操作。(2)員工以及供應(yīng)商管理:可以對超市員工和供應(yīng)商信息進行增加、刪除、查詢和修改。(3)銷售日志和入庫日志信息管理:可以對商品入庫日志和銷售日志信息進行查詢和刪除等操作,其中在管理銷售日志信息時可以根據(jù)查詢到的銷售日志信息計算銷售額。(4)修改登錄密碼:管理員在修改密碼時也要輸入正確的原密碼并確保兩次輸入的新密碼相同。第二部分思路流程關(guān)于數(shù)據(jù)庫需求分析銷售員為顧客結(jié)賬進行服務(wù),可以進行如下操作:(1)商品銷售:在商品銷售過程中,銷售員輸入商品編號和商品數(shù)量等信息并點擊添加商品后在已購商品列表中會顯示所購商品的名稱和價格等詳細(xì)信息,同時也可以選中某件商品后點擊刪除商品刪除該商品,系統(tǒng)自動計算出顧客應(yīng)付金額,當(dāng)輸入顧客實際所支付的金額后點擊確認(rèn)付款后系統(tǒng)自動計算出找零金額并清空交易號和已購商品列表。銷售員也可以點擊取消交易來終止一次交易。(2)銷售員換班:銷售員點擊收銀員換班后輸入正確的編號和密碼后會實現(xiàn)銷售員的交接班。(3)修改登錄密碼:銷售員在修改密碼時要輸入正確的原密碼并且兩次輸入的新密碼要相同才能修改密碼。第三部分創(chuàng)建工程/*三、創(chuàng)建ODBC工程*/時間:2015年12月11日創(chuàng)建工程第三部分建立工程操作步驟:1.打開VC++的工程創(chuàng)建向?qū)?。File>>New>>FCAppWizard(exe)項。在ProjectName>>輸入工程名稱“Supermarket”,并在Location編輯區(qū)里調(diào)整工程路徑。2.選擇應(yīng)用程序的框架類型。單擊“工程創(chuàng)建向?qū)А贝翱诘腛K按鈕,進入MFCAppWizard–Step1>>Singledocument>>Next。3.進入“MFCAppWizard–Step2of6”>>查看數(shù)據(jù)庫不使用文件支持。設(shè)置應(yīng)用程序數(shù)據(jù)庫特性。選擇數(shù)據(jù)源4.設(shè)置應(yīng)用程序?qū)?fù)雜文檔的支持。進入“MFCAppWizard–Step3of6”>>選擇如下兩項:NoneActiveXControls創(chuàng)建工程5.進入“MFCAppWizard–Step4of6”對話框,設(shè)置應(yīng)用程序的特征信息

:DockingtoolbarInitialstatusbarPrintingandprintpreview3DcontrolsNormal6.進入“MFCAppWizard–Step5of6”對話框,選擇工程風(fēng)格和MFC類庫的加載方式。在對話框里設(shè)置如下三項:MFCStandardYes,PleaseAssharedDLL第三部分建立工程創(chuàng)建工程7.“MFCAppWizard–Step6of6”對話框顯示工程創(chuàng)建中的類信息。創(chuàng)建工程包含了四個類:CSuperView類,工程視圖類CSuperApp類,工程的應(yīng)用類CMainFrame類,工程主框架類CSuperDoc類,工程文檔類這四個類構(gòu)成了應(yīng)用程序工程的主要框架。我們?yōu)閂iew類選擇ClistView基類。第三部分建立工程創(chuàng)建工程8.在對話框“MFCAppWizard–Step6of6”里單擊Finish>>完成工程創(chuàng)建。工程創(chuàng)建向?qū)⒃摯喂こ虅?chuàng)建的信息顯示在一個“NewProjectInformation”對話框里。在對話框里單擊“OK”>>工程創(chuàng)建完成。第四部分設(shè)計界面/*四、設(shè)計界面程序*/時間:2015年12月11日設(shè)計界面第四部分設(shè)計界面/*用戶登錄界面*/時間:2015年12月11日設(shè)計界面第四部分建立界面用戶登錄界面資源類型資源ID標(biāo)題功能編輯框IDC_EDIT_NAME

輸入用戶名編輯框IDC_EDIT_PWD

輸入密碼按鈕IDC_BUTTON_LOGIN

登陸登陸按鈕IDC_BUTTON_EXIT退出程序

退出程序IDD_SUPERMARKET_FORM//SupermarketView.cpp:implementationoftheCSupermarketViewclass第四部分建立界面用戶登錄界面創(chuàng)建classCDoperator類——父類CRecordset//SupermarketView.cpp:implementationoftheCSupermarketViewclass第四部分建立界面用戶登錄界面選擇ODBC數(shù)據(jù)源為剛剛創(chuàng)建的CDoperator類為CDoperator類設(shè)置缺省的表//SupermarketView.cpp:implementationoftheCSupermarketViewclass第四部分建立界面用戶登錄界面在類里聲明報表信息變量,編寫類的消息響應(yīng)函數(shù)//SupermarketView.cpp:implementationoftheCSupermarketViewclass第四部分建立界面用戶登錄界面if(m_Name.IsEmpty()||m_Pwd.IsEmpty())//判斷輸入是否完整及提示

{

MessageBox("請輸入登錄名或密碼!","提示消息"); m_Pwd=""; } else{ CStringsqlstr; intflag=0;

//判斷用戶名、密碼以及權(quán)限,跳轉(zhuǎn)到不同工作界面sqlstr.Format("select*fromtb_operatorwhereoperator_id='%s'",m_Name);if(m_pSet->IsOpen()==TRUE) m_pSet->Close();m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr);//根據(jù)條件打開記錄集

if(m_pSet->IsEOF())//判斷用戶是否在記錄集中 { MessageBox("此用戶不存在!","提示消息"); m_Name=""; m_Pwd=""; }if(strlevel=="管理員")

//strlevel是根據(jù)用戶名和密碼得到的權(quán)限{ CDmanagedlg_manage; dlg_manage.m_Oid=strid; dlg_manage.m_Oname=strname;//在管理界面顯示管理員編號和姓名 AfxGetMainWnd()->ShowWindow(SW_HIDE);//隱藏主界面 dlg_manage.DoModal();//顯示管理界面 AfxGetMainWnd()->ShowWindow(SW_SHOW);//顯示主界面}if(strlevel=="銷售員"){

//代碼實現(xiàn)及管理員類似CDselldlg_sell; dlg_sell.m_Oid=strid; dlg_sell.m_Oname=strname;//銷售界面顯示編號和姓名 AfxGetMainWnd()->ShowWindow(SW_HIDE); dlg_sell.DoModal(); AfxGetMainWnd()->ShowWindow(SW_SHOW);}if(flag==0)//賬號下面判斷密碼輸入 { MessageBox("密碼錯誤!","提示消息"); m_Name=""; m_Pwd=""; }第四部分建立界面用戶登錄界面第四部分設(shè)計界面/*用戶管理界面*/時間:2015年12月11日設(shè)計界面第四部分建立界面管理界面商品入庫模塊員工管理模塊供應(yīng)商管理模塊入庫記錄模塊銷售記錄模塊退出管理模塊庫存查詢模塊修改密碼模塊IDD_DIALOG_MANAGE//Dmanage.cpp:implementationfile入庫信息顯示模塊功能鏈接按鈕模塊第四部分建立界面資源類型資源ID標(biāo)題功能只讀編輯框IDC_EDIT_OID

自動顯示用戶賬號只讀編輯框IDC_EDIT_ONAME

自動顯示用戶姓名只讀編輯框IDC_EDIT_TIME

自動顯示當(dāng)前時間IDD_DIALOG_MANAGE登錄自動顯示信息管理界面第四部分建立界面登錄自動顯示當(dāng)前時間信息voidCDmanage::OnTimer(UINTnIDEvent){ //TODO:Addyourmessagehandlercodehereand/orcalldefault CStringstrTime; CTimetm; tm=CTime::GetCurrentTime(); strTime=tm.Format("%Y年%m月%d日%H:%M:%S"); SetDlgItemText(IDC_EDIT_TIME,strTime);//顯示系統(tǒng)時間 CDialog::OnTimer(nIDEvent);}用戶賬號及姓名顯示的程序語句在前面登錄界面函數(shù)中。//在管理界面顯示管理員編號和姓名管理界面第四部分設(shè)計界面/*商品入庫模塊*/時間:2015年12月11日設(shè)計界面第四部分建立界面管理界面商品入庫模塊資源類型資源ID標(biāo)題功能編輯框IDC_EDIT_GOODSID商品編號編輯框IDC_EDIT_GOODSNAME商品名稱

編輯框IDC_EDIT_QUANTITY商品數(shù)量

編輯框IDC_EDIT_TYPE規(guī)格型號

編輯框IDC_EDIT_BID進價編輯框IDC_EDIT_PRICE售價編輯框IDC_EDIT_REMARK備注組合框IDC_COMBO_PROVIDER供應(yīng)商選擇只讀編輯框IDC_EDIT_PUTINID入庫單號系統(tǒng)自動生成按鈕IDC_BUTTON_ADD

添加商品按鈕IDC_BUTTON_DELETE

刪除商品按鈕IDC_BUTTON_CPUTIN

確認(rèn)入庫按鈕IDC_BUTTON_CPUTIN2

取消入庫第四部分建立界面管理界面IDD_DIALOG_MANAGE商品入庫模塊第四部分建立界面管理界面IDD_DIALOG_MANAGE添加商品voidCDmanage::OnKillfocusEditGoodsid(){

//首先輸入商品必須的屬性,添加商品按鈕被觸發(fā)后首先判斷數(shù)量問題 UpdateData(); if(storage_set.IsOpen()) storage_set.Close(); storage_set.Open(); while(!storage_set.IsEOF()) { if(m_Goodsid==storage_set.m_goods_id) { if(storage_set.m_goods_quantity!=0)//庫存數(shù)量有剩余 { MessageBox("此商品尚有庫存,請勿添加!","提示消息"); 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=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);}//Dmanage.cpp:implementationfile商品入庫模塊第四部分建立界面管理界面IDD_DIALOG_MANAGE刪除商品voidCDmanage::OnButtonDelete(){

//TODO:Addyourcontrolnotificationhandlercodehere intnSel=m_Goods.GetNextItem(-1,LVNI_SELECTED); if(-1==nSel) { return; } m_Goods.DeleteItem(nSel);}//Dmanage.cpp:implementationfile取消入庫voidCDmanage::OnButtonCputin2(){ //TODO:Addyourcontrolnotificationhandlercodehere UpdateData(); if(MessageBox("確定要取消入庫?","提示消息",MB_OKCANCEL|MB_ICONQUESTION)==IDOK) { m_Goods.DeleteAllItems(); m_Putinid=""; UpdateData(FALSE); }}商品入庫模塊第四部分建立界面管理界面IDD_DIALOG_MANAGEvoidCDmanage::OnButtonCputin(){

//TODO:Addyourcontrolnotificationhandlercodehere UpdateData(); if(m_Goods.GetItemCount()==0) { MessageBox("請先添加商品!","提示消息"); return; } for(inti=0;i<m_Goods.GetItemCount();i++)//依次檢索商品列表中的商品信息 { if(storage_set.IsOpen()) storage_set.Close(); storage_set.Open(); while(!storage_set.IsEOF()) { if(m_Goods.GetItemText(i,0)==storage_set.m_goods_id) { storage_set.Edit();//為更新記錄集做準(zhǔn)備 storage_set.m_goods_quantity=atoi(m_Goods.GetItemText(i,2));//根據(jù)新入庫的商品信息更新記錄集各個字段的值 storage_set.m_putin_date=m_Goods.GetItemText(i,8); storage_set.m_putin_time=m_Goods.GetItemText(i,9); storage_set.m_goods_operator=m_Goods.GetItemText(i,7); storage_set.Update();//將記錄集的更新提交到數(shù)據(jù)源上 break; }//當(dāng)庫存表中有此商品時更新此商品信息確定入庫商品入庫模塊第四部分建立界面管理界面IDD_DIALOG_MANAGE storage_set.MoveNext(); } if(storage_set.IsEOF())//向入庫表中插入新數(shù)據(jù) { storage_set.AddNew();//將列表中的信息依次付給記錄集的相應(yīng)字段 storage_set.m_goods_id=m_Goods.GetItemText(i,0); storage_set.m_goods_name=m_Goods.GetItemText(i,1); storage_set.m_goods_quantity=atoi(m_Goods.GetItemText(i,2)); storage_set.m_goods_type=m_Goods.GetItemText(i,3); storage_set.m_goods_bid=atof(m_Goods.GetItemText(i,4)); storage_set.m_goods_price=atof(m_Goods.GetItemText(i,5)); storage_set.m_goods_provider=m_Goods.GetItemText(i,6); storage_set.m_goods_operator=m_Goods.GetItemText(i,7); storage_set.m_putin_date=m_Goods.GetItemText(i,8); storage_set.m_putin_time=m_Goods.GetItemText(i,9); storage_set.m_goods_remark=m_Goods.GetItemText(i,10); storage_set.Update();//當(dāng)庫存表中無此商品時向庫存表插入新數(shù)據(jù) }

if(putin_set.IsOpen()){putin_set.Close();}putin_set.Open(); putin_set.AddNew();//依次設(shè)置記錄集各個字段的值 putin_set.m_putin_id=m_Putinid; putin_set.m_putin_goods_id=m_Goods.GetItemText(i,0); putin_set.m_putin_goods_name=m_Goods.GetItemText(i,1); putin_set.m_putin_goods_date=m_Goods.GetItemText(i,8); putin_set.m_putin_goods_time=m_Goods.GetItemText(i,9); putin_set.m_provider=m_Goods.GetItemText(i,6); putin_set.m_quantity=atoi(m_Goods.GetItemText(i,2)); putin_set.m_type=m_Goods.GetItemText(i,3); putin_set.m_bid=atof(m_Goods.GetItemText(i,4)); putin_set.m_operator=m_Oname; putin_set.m_remark=m_Goods.GetItemText(i,10); putin_set.Update();//將記錄集的更新提交到數(shù)據(jù)源上 } MessageBox("入庫成功!","提示消息"); m_Goods.DeleteAllItems(); m_Putinid=""; UpdateData(FALSE);}商品入庫模塊第四部分建立界面管理界面列表框IDC_LIST_GOODS顯示入庫表格//設(shè)置列表控件的標(biāo)題 m_Goods.InsertColumn(0,"商品編號",LVCFMT_CENTER,80); m_Goods.InsertColumn(1,"商品名稱",LVCFMT_CENTER,125); m_Goods.InsertColumn(2,"商品數(shù)量",LVCFMT_CENTER,80); m_Goods.InsertColumn(3,"規(guī)格型號",LVCFMT_CENTER,95); m_Goods.InsertColumn(4,"進價",LVCFMT_CENTER,80); m_Goods.InsertColumn(5,"售價",LVCFMT_CENTER,80); m_Goods.InsertColumn(6,"供應(yīng)商",LVCFMT_CENTER,126); m_Goods.InsertColumn(7,"經(jīng)辦人",LVCFMT_CENTER,94); m_Goods.InsertColumn(8,"入庫日期",LVCFMT_CENTER,95); m_Goods.InsertColumn(9,"入庫時間",LVCFMT_CENTER,95); m_Goods.InsertColumn(10,"備注",LVCFMT_CENTER,95);

//設(shè)置列表控件的格式 m_Goods.SetExtendedStyle(m_Goods.GetExtendedStyle()|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);IDD_DIALOG_MANAGE入庫信息顯示模塊第四部分建立界面管理界面列表框IDC_LIST_GOODS顯示入庫表格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.GetItemText(nSel,5)); 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;}voidCDsputin::OnClickListPutin(NMHDR*pNMHDR,LRESULT*pResult){

//TODO:Addyourcontrolnotificationhandlercodehere intnSel=m_Putin.GetNextItem(-1,LVNI_SELECTED); if(nSel==-1) return;IDD_DIALOG_MANAGE入庫信息顯示模塊第四部分設(shè)計界面/*庫存查詢模塊*/時間:2015年12月11日設(shè)計界面第四部分建立界面管理界面庫存查詢模塊IDD_DIALOG_MANAGE資源類型資源ID標(biāo)題功能單選按鈕IDC_RADIO_FRGOODSID商品編號單選按鈕IDC_RADIO_FRGOODSNAME商品名稱

單選按鈕IDC_RADIO_FRGOODSDATE入庫日期按鈕IDC_BUTTON1查詢編輯框IDC_EDIT_FGOODSID顯示輸入編號編輯框IDC_EDIT_FGOODSNAME顯示輸入名稱編輯框IDC_EDIT_FGOODSDATE顯示輸入日期第四部分建立界面管理界面庫存查詢模塊IDD_DIALOG_MANAGEvoidCDmanage::OnRadioFrgoodsid(){

//TODO:Addyourcontrolnotificationhandlercodehere UpdateData();

GetDlgItem(IDC_EDIT_FGOODSID)->EnableWindow(TRUE); m_Fgoodsname=""; GetDlgItem(IDC_EDIT_FGOODSNAME)->EnableWindow(FALSE); m_Date=""; GetDlgItem(IDC_EDIT_FGOODSDATE)->EnableWindow(FALSE); UpdateData(FALSE);}第四部分建立界面管理界面IDD_DIALOG_MANAGEvoidCDmanage::OnRadioFrgoodsname(){

//TODO:Addyourcontrolnotificationhandlercodehere UpdateData(); m_Fgoodsid=""; GetDlgItem(IDC_EDIT_FGOODSID)->EnableWindow(FALSE);

GetDlgItem(IDC_EDIT_FGOODSNAME)->EnableWindow(TRUE); m_Date=""; GetDlgItem(IDC_EDIT_FGOODSDATE)->EnableWindow(FALSE); UpdateData(FALSE);}庫存查詢模塊第四部分建立界面管理界面IDD_DIALOG_MANAGEvoidCDmanage::OnRadioFrgoodsdate(){

//TODO:Addyourcontrolnotificationhandlercodehere UpdateData(); m_Fgoodsid=""; GetDlgItem(IDC_EDIT_FGOODSID)->EnableWindow(FALSE); m_Fgoodsname=""; GetDlgItem(IDC_EDIT_FGOODSNAME)->EnableWindow(FALSE);

GetDlgItem(IDC_EDIT_FGOODSDATE)->EnableWindow(TRUE); UpdateData(FALSE);}庫存查詢模塊第四部分建立界面管理界面IDD_DIALOG_MANAGEvoidCDmanage::OnButton1(){

//TODO:Addyourcontrolnotificationhandlercodehere UpdateData(); m_Goods.DeleteAllItems(); CStringsqlstr; if(m_Fway==0) {

if(m_Fgoodsid.IsEmpty()) { MessageBox("請輸入商品編號!","提示消息"); return; } sqlstr.Format("select*fromtb_storagewheregoods_id='%s'",m_Fgoodsid); }查詢按鈕函數(shù)庫存查詢模塊第四部分建立界面管理界面IDD_DIALOG_MANAGEelseif(m_Fway==1) {

if(m_Fgoodsname.IsEmpty()) { MessageBox("請輸入商品名稱!","提示消息"); return; } sqlstr.Format("select*fromtb_storagewheregoods_name='%s'",m_Fgoodsname); } elseif(m_Fway==2) {

if(m_Date.IsEmpty()) { MessageBox("請輸入入庫日期!","提示消息"); return; } sqlstr.Format("select*fromtb_storagewhereputin_date='%s'",m_Date); } else{//沒有選擇單選按鈕 MessageBox("請選擇查找方式!","提示消息"); return; }查詢按鈕函數(shù)庫存查詢模塊第四部分建立界面管理界面IDD_DIALOG_MANAGECStringstrbid,strprice,strquan; if(storage_set.IsOpen()) { storage_set.Close(); } storage_set.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr); if(storage_set.IsEOF())//查詢結(jié)果集為空 { MessageBox("沒有此記錄!","提示消息"); return; }查詢按鈕函數(shù)庫存查詢模塊第四部分建立界面管理界面IDD_DIALOG_MANAGE while(!storage_set.IsEOF())//在列表框顯示可查詢的記錄集內(nèi)容 { strquan.Format("%d",storage_set.m_goods_quantity); strbid.Format("%.2lf",storage_set.m_goods_bid); strprice.Format("%.2lf",storage_set.m_goods_price); intnItem=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_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_time); 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);}查詢按鈕函數(shù)庫存查詢模塊第四部分建立界面管理界面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ù)庫存查詢模塊第四部分設(shè)計界面/*修改密碼模塊*/時間:2015年12月11日設(shè)計界面第四部分建立界面管理界面IDD_DIALOG_MANAGE資源類型資源ID標(biāo)題功能按鈕IDC_BUTTON2確定按鈕IDC_BUTTON3取消編輯框IDC_EDIT_OLDPWD輸入舊密碼編輯框IDC_EDIT_NEWPWD輸入新密碼編輯框IDC_EDIT_NEWPWDC輸入確認(rèn)新修改密碼模塊第四部分建立界面管理界面IDD_DIALOG_MANAGEvoidCDmanage::OnButton2(){

//TODO:Addyourcontrolnotificationhandlercodehere UpdateData(); if(m_Goods.GetItemCount()!=0) { MessageBox("修改密碼前請停止其它操作!","提示消息"); m_Oldpwd=""; m_Newpwd=""; m_CNewpwd=""; UpdateData(FALSE); return; } if(m_Oldpwd.IsEmpty()||m_Newpwd.IsEmpty()||m_CNewpwd.IsEmpty()) {//三個編輯框沒有全部輸入信息 MessageBox("請輸入完整信息!","提示消息"); m_Oldpwd=""; m_Newpwd=""; m_CNewpwd=""; UpdateData(FALSE); return;}確定修改按鈕函數(shù)修改密碼模塊第四部分建立界面管理界面IDD_DIALOG_MANAGE CStringsqlstr; sqlstr.Format("select*fromtb_operatorwhereoperator_id='%s'andoperator_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é)果集密碼為空 { MessageBox("原密碼錯誤!","提示消息"); m_Oldpwd=""; m_Newpwd=""; m_CNewpwd=""; UpdateData(FALSE); return; }確定修改按鈕函數(shù)修改密碼模塊第四部分建立界面管理界面IDD_DIALOG_MANAGEif(m_CNewpwd!=m_Newpwd) {//兩次輸入新密碼比較 MessageBox("確認(rèn)新密碼失??!","提示消息"); return; } if(MessageBox("確定要修改密碼?","提示消息",MB_OKCANCEL|MB_ICONQUESTION)==IDOK) { operator_set.Edit(); operator_set.m_operator_pwd=m_Newpwd; if(!operator_set.Update()) {//新舊密碼一致 MessageBox("修改密碼失??!","提示消息"); return; } MessageBox("修改密碼成功,請重新登錄!","提示消息"); CDialog::OnOK(); } else{ m_Oldpwd=""; m_Newpwd=""; m_CNewpwd=""; UpdateData(FALSE); }}確定修改按鈕函數(shù)修改密碼模塊第四部分建立界面管理界面IDD_DIALOG_MANAGEvoidCDmanage::OnButton3(){

//TODO:Addyourcontrolnotificationhandlercodehere UpdateData(); m_Oldpwd=""; m_Newpwd=""; m_CNewpwd=""; UpdateData(FALSE);}取消修改按鈕函數(shù)修改密碼模塊第四部分設(shè)計界面/*功能鏈接模塊*/時間:2015年12月11日設(shè)計界面第四部分建立界面管理界面功能模塊鏈接按鈕IDD_DIALOG_MANAGE資源類型資源ID標(biāo)題功能按鈕IDC_BUTTON4入庫記錄管理按鈕IDC_BUTTON6員工管理

按鈕IDC_BUTTON5銷售記錄管理按鈕IDC_BUTTON7供應(yīng)商管理按鈕IDC_BUTTON8退出管理第四部分建立界面管理界面功能模塊鏈接按鈕IDD_DIALOG_MANAGEvoidCDmanage::OnButton4()

{

//TODO:Addyourcontrolnotificationhandlercodehere CDsputindlg_sputin; dlg_sputin.DoModal();}voidCDmanage::OnButton5(){

//TODO:Addyourcontrolnotificationhandlercodehere CDssaledlg_ssale; dlg_ssale.DoModal();}voidCDmanage::OnButton6(){

//TODO:Addyourcontrolnotificationhandlercodehere CDmpeopledlg_mpeople; dlg_mpeople.DoModal();}voidCDmanage::OnButton7(){

//TODO:Addyourcontrolnotificationhandlercodehere CDmproviderdlg_mprovider; dlg_mprovider.DoModal();}voidCDmanage::OnButton8(){ CDialog::OnOK();}第四部分設(shè)計界面/*入庫記錄模塊*/時間:2015年12月11日設(shè)計界面第四部分建立界面入庫記錄界面IDD_DIALOG_SPUTIN入庫記錄模塊入庫信息查詢?nèi)霂煨畔⒐芾砣霂煊涗涳@示表//Dsputin.cpp:implementationfile第四部分建立界面IDC_LIST_PUTIN//Dsputin.cpp:implementationfilevoidCDsputin::OnClickListPutin(NMHDR*pNMHDR,LRESULT*pResult){ //TODO:Addyourcontrolnotificationhandlercodehere intnSel=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.GetItemText(nSel,5));

入庫記錄顯示表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;}入庫記錄界面第四部分建立界面入庫信息查詢資源類型資源ID標(biāo)題功能單選按鈕IDC_RADIO_RFPUTINID入庫單號單選按鈕IDC_RADIO_RFGOODSID商品編號

單選按鈕IDC_RADIO_RFGOODSNAME商品名稱單選按鈕IDC_RADIO_RFDATE入庫日期單選按鈕IDC_RADIO_RFOPERATOR經(jīng)辦人按鈕IDC_BUTTON1顯示所有信息按鈕IDC_BUTTON9查詢編輯框IDC_EDIT_FPUTINID顯示入庫單號編輯框IDC_EDIT_FGOODSID顯示商品編號編輯框IDC_EDIT_FGOODSNAME顯示商品名稱編輯框IDC_EDIT_FDATE顯示入庫日期組合框IDC_COMBO_FOPERATOR顯示選擇經(jīng)辦人入庫記錄界面IDD_DIALOG_SPUTIN第四部分建立界面//Dsputin.cpp:implementationfilevoidCDsputin::OnRadioRfputinid(){ //TODO:Addyourcontrolnotificationhandlercodehere UpdateData();

GetDlgItem(IDC_EDIT_FPUTINID)->EnableWindow(TRUE); GetDlgItem(IDC_EDIT_FGOODSID)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_FGOODSNAME)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_FDATE)->EnableWindow(FALSE); GetDlgItem(IDC_COMBO_FOPERATOR)->EnableWindow(FALSE); m_Fgoodsid=""; m_Fgoodsname=""; m_Fdate=""; m_Foperator.SetCurSel(-1); UpdateData(FALSE);}入庫信息查詢?nèi)霂煊涗浗缑鍵DD_DIALOG_SPUTIN第四部分建立界面//Dsputin.cpp:implementationfilevoidCDsputin::OnRadioRfgoodsid(){ //TODO:Addyourcontrolnotificationhandlercodehere UpdateData(); 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_Fputinid=""; m_Fgoodsname=""; m_Fdate=""; m_Foperator.SetCurSel(-1); UpdateData(FALSE);}入庫信息查詢?nèi)霂煊涗浗缑鍵DD_DIALOG_SPUTIN第四部分建立界面//Dsputin.cpp:implementationfilevoidCDsputin::OnRadioRfgoodsname(){ //TODO:Addyourcontrolnotificationhandlercodehere UpdateData(); GetDlgItem(IDC_EDIT_FPUTINID)->EnableWindow(FALSE); GetDlgItem(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);}入庫信息查詢?nèi)霂煊涗浗缑鍵DD_DIALOG_SPUTIN第四部分建立界面//Dsputin.cpp:implementationfilevoidCDsputin::OnRadioRfdate(){ //TODO:Addyourcontrolnotificationhandlercodehere UpdateData(); GetDlgItem(IDC_EDIT_FPUTINID)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_FGOODSID)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_FGOODSNAME)->EnableWindow(FALSE);

GetDlgItem(IDC_EDIT_FDATE)->EnableWindow(TRUE); GetDlgItem(IDC_COMBO_FOPERATOR)->EnableWindow(FALSE); m_Fputinid=""; m_Fgoodsname=""; m_Fgoodsid=""; m_Foperator.SetCurSel(-1); UpdateData(FALSE);}入庫信息查詢?nèi)霂煊涗浗缑鍵DD_DIALOG_SPUTIN第四部分建立界面//Dsputin.cpp:implementationfilevoidCDsputin::OnRadioRfoperator(){ //TODO:Addyourcontrolnotificationhandlercodehere UpdateData(); 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); m_Fputinid=""; m_Fgoodsname=""; m_Fdate=""; m_Fgoodsid=""; UpdateData(FALSE);}入庫信息查詢?nèi)霂煊涗浗缑鍵DD_DIALOG_SPUTIN第四部分建立界面//Dsputin.cpp:implementationfilevoidCDsputin::OnButton1(){ //TODO:Addyourcontrolnotificationhandlercodehere m_Putin.DeleteAllItems(); if(putin_set.IsOpen()) putin_set.Close(); putin_set.Open(); while(!putin_set.IsEOF()) { CStringstrquan,strbid; strquan.Format("%d",putin_set.m_quantity); strbid.Format("%.2lf",putin_set.m_bid);入庫信息查詢?nèi)霂煊涗浗缑鍵DD_DIALOG_SPUTIN第四部分建立界面 intnItem=m_Putin.InsertItem(m_Putin.GetItemCount(),putin_set.m_putin_id); m_Putin.SetItemText(nItem,1,putin_set.m_putin_goods_id); m_Putin.SetItemText(nItem,2,putin_set.m_putin_goods_name); m_Putin.SetItemText(nItem,3,strquan); m_Putin.SetItemText(nItem,4,putin_set.m_type); m_Putin.SetItemText(nItem,5,strbid); m_Putin.SetItemText(nItem,6,putin_set.m_provider); m_Putin.SetItemText(nItem,7,putin_set.m_operator); m_Putin.SetItemText(nItem,8,putin_set.m_putin_goods_date); m_Putin.SetItemText(nItem,9,putin_set.m_putin_goods_time); m_Putin.SetItemText(nItem,10,putin_set.m_remark); putin_set.MoveNext(); } putin_set.Close();}入庫信息查詢?nèi)霂煊涗浗缑鍵DD_DIALOG_SPUTIN第四部分建立界面//Dsputin.cpp:implementationfilevoidCDsputin::OnButton9(){ //TODO:Addyourcontrolnotificationhandlercodehere UpdateData(); CStringsqlstr; if(m_RFway==-1) { MessageBox("請選擇查詢方式!","提示消息"); return; } elseif(m_RFway==0) { if(m_Fputinid.IsEmpty()) { MessageBox("請輸入入庫單號!","提示消息"); return; } sqlstr.Format("select*fromtb_putinwhereputin_id='%s'",m_Fputinid); }

入庫信息查詢?nèi)霂煊涗浗缑鍵DD_DIALOG_SPUTIN第四部分建立界面elseif(m_RFway==1) { if(m_Fgoodsid.IsEmpty()) { MessageBox("請輸入商品編號!","提示消息"); return; } sqlstr.Format("select*fromtb_putinwhereputin_goods_id='%s'",m_Fgoodsid); } elseif(m_RFway==2) { if(m_Fgoodsname.IsEmpty()) { MessageBox("請輸入商品名稱!","提示消息"); return; } sqlstr.Format("select*fromtb_putinwhereputin_goods_name='%s'",m_Fgoodsname); }

入庫信息查詢?nèi)霂煊涗浗缑鍵DD_DIALOG_SPUTIN第四部分建立界面 elseif(m_R

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論