




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGEPAGE1目錄一、需求與功能分析 1二、系統(tǒng)總體框架2三、邏輯設(shè)計(jì)2四、類(lèi)的設(shè)計(jì)與分析4五、數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)6六、特色算法分析7七、功能測(cè)試11八、存在的不足與對(duì)策14九、程序源代碼 14一.需求與功能分析㈠前言由于企業(yè)的物資供應(yīng)管理往往是很復(fù)雜、繁鎖的。所掌握的物資種類(lèi)眾多,訂貨、管理、發(fā)放的渠道各有差異,各個(gè)企業(yè)之間的管理體制不盡相同,各類(lèi)統(tǒng)計(jì)計(jì)劃報(bào)表繁多,因此物資管理必須實(shí)現(xiàn)計(jì)算化,而且必須根據(jù)企業(yè)的具體情況制定相應(yīng)的方案以便提高工作效率。以往企事業(yè)倉(cāng)庫(kù)管理員由于缺乏適當(dāng)?shù)能浖o其工作上帶來(lái)了很多的麻煩,如物資的計(jì)劃,訂貨,核銷(xiāo)拖收,驗(yàn)收入庫(kù),根據(jù)企業(yè)各個(gè)部門(mén)的需要來(lái)發(fā)送物資設(shè)備,并隨時(shí)按期進(jìn)行庫(kù)存盤(pán)點(diǎn),作臺(tái)帳,根據(jù)企業(yè)領(lǐng)導(dǎo)和自身管理的需要按月,季,年進(jìn)行統(tǒng)計(jì)分析,產(chǎn)生相應(yīng)的報(bào)表等等。期間復(fù)雜,繁瑣的業(yè)務(wù)是在讓管理人員極多不便。㈡需求分析隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類(lèi)社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用。作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)信息進(jìn)行管理,具有與手工管理所無(wú)法比擬的優(yōu)點(diǎn).例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高企業(yè)倉(cāng)庫(kù)管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。因此,開(kāi)發(fā)這樣的管理軟件成為了很有必要的事情。本論文所介紹的便是一個(gè)企事業(yè)倉(cāng)庫(kù)管理系統(tǒng),以方便實(shí)現(xiàn)企事業(yè)物資設(shè)備管理的系統(tǒng)化,規(guī)范化和自動(dòng)化,從而達(dá)到提高倉(cāng)庫(kù)管理效率的目的,進(jìn)而是倉(cāng)庫(kù)管理人員可以在業(yè)務(wù)上方便的進(jìn)行任務(wù)管理。㈢功能分析該系統(tǒng)適用于企事業(yè)生產(chǎn)所需要的各種設(shè)備。其功能主要分為六大類(lèi):1.
倉(cāng)庫(kù)管理各種信息的輸入;2.
倉(cāng)庫(kù)管理各種信息的查詢(xún);3.
倉(cāng)庫(kù)管理各種信息的修改;4.
倉(cāng)庫(kù)管理各種信息的刪除;5.
倉(cāng)庫(kù)各個(gè)產(chǎn)品入庫(kù)量的管理;6.
倉(cāng)庫(kù)各個(gè)產(chǎn)品出庫(kù)量的管理;這幾個(gè)子模塊包括了企業(yè)管理的主要業(yè)務(wù),可以全面實(shí)現(xiàn)對(duì)物資的出庫(kù)、還庫(kù)、統(tǒng)計(jì)和流通等業(yè)務(wù)的計(jì)算機(jī)管理,應(yīng)用本系統(tǒng)可以在計(jì)算機(jī)上靈活、方便地管理倉(cāng)庫(kù)物資,從而大大的提高了處理效率,使管理更加現(xiàn)代化。二.系統(tǒng)總體框架倉(cāng)庫(kù)管理系統(tǒng)倉(cāng)庫(kù)管理系統(tǒng)修改信息刪除舊貨添加新貨貨物出庫(kù)貨物入庫(kù)查找信息三.邏輯設(shè)計(jì) 1.查找信息設(shè)計(jì):當(dāng)管理員在登錄框上輸入正確的“帳號(hào)”和“密碼”,進(jìn)入到系統(tǒng)后,會(huì)出現(xiàn)有查詢(xún)和操作兩個(gè)模塊,當(dāng)點(diǎn)擊“貨物信息查詢(xún)”的按鈕后,在編輯框內(nèi)就會(huì)把倉(cāng)庫(kù)里的貨物信息輸出來(lái),顯示到用戶(hù)面前。分析:當(dāng)用戶(hù)點(diǎn)擊查詢(xún)按鈕后,系統(tǒng)會(huì)自動(dòng)連接到數(shù)據(jù)庫(kù)里相應(yīng)的表格并把該表的信息輸出到用戶(hù)所看到的編輯框內(nèi)。圖1查找信息活動(dòng)圖2.貨物入庫(kù)設(shè)計(jì):用戶(hù)按了查詢(xún)按鈕,把倉(cāng)庫(kù)里的貨物信息顯示出來(lái)后,在編輯框內(nèi)選擇要入庫(kù)的貨物那一欄,接著點(diǎn)擊“貨物入庫(kù)”按鈕,這時(shí)會(huì)彈出一個(gè)對(duì)話框,要求用戶(hù)輸入該貨品入庫(kù)的數(shù)量,確定后該貨物入庫(kù)對(duì)話框會(huì)自動(dòng)關(guān)閉并且回到主對(duì)話框,那時(shí)可以看到倉(cāng)庫(kù)里的該貨物信息已經(jīng)修改成功。分析:選擇了需要入庫(kù)的貨物的那一欄后,系統(tǒng)會(huì)自動(dòng)連接到數(shù)據(jù)庫(kù)并把該條信息的編號(hào)顯示出來(lái),當(dāng)用戶(hù)輸入入庫(kù)量后,數(shù)據(jù)庫(kù)里相關(guān)信息的庫(kù)存量也會(huì)自動(dòng)的增加相應(yīng)的數(shù)目。3.貨物出庫(kù)設(shè)計(jì):與“貨物入庫(kù)”原理類(lèi)似,在查詢(xún)編輯框內(nèi)選擇貨物后,點(diǎn)擊“貨物出庫(kù)”按鈕,輸入要出庫(kù)的數(shù)量,確定后對(duì)話框自動(dòng)關(guān)閉,相應(yīng)的信息的庫(kù)存量也會(huì)自動(dòng)減小。分析:類(lèi)似于“貨物入庫(kù)”,數(shù)據(jù)庫(kù)里相應(yīng)信息的庫(kù)存量自動(dòng)減小。4.添加新貨設(shè)計(jì):直接點(diǎn)擊“添加新貨”按鈕,會(huì)彈出添加貨物對(duì)話框,用戶(hù)按照上面的輸入要添加的信息,按“確定”按鈕之后,該對(duì)話框會(huì)自動(dòng)關(guān)閉,并且在主對(duì)話框上該條新添加的信息會(huì)顯示到查詢(xún)編輯框上。分析:在彈出“添加新貨”對(duì)話框時(shí),系統(tǒng)會(huì)自動(dòng)連接到數(shù)據(jù)庫(kù),并且把用戶(hù)輸入的信息添加到相應(yīng)的列里。5.刪除舊貨設(shè)計(jì):當(dāng)用戶(hù)在查詢(xún)編輯框內(nèi)選擇要?jiǎng)h除貨物的那一欄后,點(diǎn)擊刪除按鈕,該條信息便會(huì)自動(dòng)刪除。分析:當(dāng)選擇了指定刪除貨物的那一欄后,系統(tǒng)會(huì)與數(shù)據(jù)庫(kù)上的信息進(jìn)行查詢(xún)匹配,當(dāng)找到該條信息便把該信息從表上刪除掉。6.修改信息設(shè)計(jì):當(dāng)用戶(hù)在查詢(xún)編輯框上選擇了要修改信息的那一欄后,點(diǎn)擊“修改信息”按鈕后,會(huì)彈出修改貨物操作對(duì)話框,用戶(hù)按照上面的提示修改信息后,點(diǎn)擊“確定”按鈕后,該對(duì)話框會(huì)自動(dòng)關(guān)閉并且回到主菜單欄,用戶(hù)可以看到剛才的信息已經(jīng)修改成功。分析:當(dāng)選擇了要修改的信息后,連接上數(shù)據(jù)庫(kù)上的信息會(huì)進(jìn)行自動(dòng)匹配,當(dāng)在表上找到對(duì)應(yīng)的信息后,會(huì)按照用戶(hù)輸入的新信息把該條信息替換掉,修改成功。圖2管理員操作圖四.類(lèi)的設(shè)計(jì)與分析 為了滿(mǎn)足用戶(hù)的要求,實(shí)現(xiàn)倉(cāng)庫(kù)的商品管理、出入庫(kù)管理、查詢(xún)管理及用戶(hù)管理等功能。該倉(cāng)庫(kù)管理系統(tǒng)是針對(duì)企業(yè)倉(cāng)庫(kù)的商品貨物的經(jīng)常出入庫(kù)和查詢(xún)統(tǒng)計(jì)等方面工作而開(kāi)發(fā)的管理軟件。倉(cāng)庫(kù)管理系統(tǒng)是用于完成眾多倉(cāng)庫(kù)管理業(yè)務(wù)所面臨的日常工作。用戶(hù)通過(guò)相應(yīng)的模塊,對(duì)倉(cāng)庫(kù)里的商品的基本情況進(jìn)行更新、刪除和查詢(xún),對(duì)商品的出庫(kù)和入庫(kù)進(jìn)行管理,對(duì)出入庫(kù)明細(xì)進(jìn)行查詢(xún),對(duì)使用該系統(tǒng)的用戶(hù)進(jìn)行更新、刪除和查詢(xún),對(duì)庫(kù)存數(shù)量進(jìn)行查詢(xún),用戶(hù)通過(guò)簡(jiǎn)單的操作即可輕松的管理倉(cāng)庫(kù)。倉(cāng)庫(kù)管理系統(tǒng)開(kāi)發(fā)的總體任務(wù)是實(shí)現(xiàn)企業(yè)物資設(shè)備管理的系統(tǒng)化、規(guī)范化和自動(dòng)化,從而達(dá)到提高倉(cāng)庫(kù)管理效率的目的。1.Operate類(lèi)Operate類(lèi)的類(lèi)圖classOperate{public:COperate();OnInitDialog();//初始化對(duì)話框Onsearch();//查詢(xún)信息OnCancel();//取消OnButtonAdd();//貨物入庫(kù)OnDelete();//貨物出庫(kù)OnAdd();//添加新貨OnDELETE();//刪除舊貨OnCHANG();//修改貨物private:charno,name,style,store,left,price;//貨物編號(hào),貨物名稱(chēng),貨物類(lèi)型,倉(cāng)庫(kù)名稱(chēng),庫(kù)存量,單價(jià)};Operate類(lèi)說(shuō)明表名稱(chēng)屬性說(shuō)明no數(shù)據(jù)成員貨物編號(hào)name數(shù)據(jù)成員貨物名稱(chēng)style數(shù)據(jù)成員貨物類(lèi)型store數(shù)據(jù)成員倉(cāng)庫(kù)名稱(chēng)left數(shù)據(jù)成員庫(kù)存量price數(shù)據(jù)成員單價(jià)InitDialog()成員方法初始化對(duì)話框,以便以后使用search()成員方法查詢(xún)信息Cancel()成員方法取消ButtonAdd()成員方法貨物入庫(kù)Delete()成員方法貨物出庫(kù)Add()成員方法添加新貨DELETE()成員方法刪除舊貨CHANG()成員方法修改貨物信息Operate()成員方法缺省參數(shù)的析構(gòu)函數(shù)2.AddNewGoods類(lèi)AddNewGoods類(lèi)的類(lèi)圖classAddNewGoods{public: OnCancel();OnOK();private: charm_no,m_name,m_style,m_store,m_left,m_price;}AddNewGoods類(lèi)說(shuō)明表名稱(chēng)屬性說(shuō)明m_no數(shù)據(jù)成員貨物編號(hào)m_name數(shù)據(jù)成員貨物名稱(chēng)m_style數(shù)據(jù)成員貨物類(lèi)型m_store數(shù)據(jù)成員倉(cāng)庫(kù)名稱(chēng)m_left數(shù)據(jù)成員庫(kù)存量m_price數(shù)據(jù)成員單價(jià)OnOK()成員方法確定OnCancel()成員方法取消,即退出當(dāng)前對(duì)話框五.?dāng)?shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)USER_PSW表結(jié)構(gòu)如下:createtableUSER_PSW(UIDchar(20)primarykey,PASSchar(20)notnull)其中UID:帳號(hào),PASS:密碼;Goods表結(jié)構(gòu)如下:createtableGoods(Gnochar(10)primarykey,Gnamechar(10)notnull,Gstylechar(8)notnull,Gstorenamechar(8)notnull,Gstorelestchar(8)notnull,Gpricechar(8)notnull)其中Gno:貨物編號(hào),Gname:貨物名稱(chēng),Gstyle:貨物類(lèi)型,Gstorename:倉(cāng)庫(kù)名稱(chēng),Gstorelese:庫(kù)存量,Gprice:?jiǎn)蝺r(jià)。六.特色算法分析 在函數(shù)或成員方法里找出你認(rèn)為比較有特色的1~2個(gè)算法。Operate類(lèi)中的InitDialog方法功能:當(dāng)用戶(hù)進(jìn)到系統(tǒng)主界面,點(diǎn)擊查詢(xún)信息,在查詢(xún)編輯框內(nèi)會(huì)把數(shù)據(jù)庫(kù)里該表的信息輸出來(lái),可是唯一有特色的是,一般顯示到編輯框里的信息如果要選擇的話,點(diǎn)擊某一行只能把該行的某一個(gè)選了,而不能把整一行全都選了,這個(gè)方法的功能是隨便點(diǎn)擊某一行的其中一列,都會(huì)把指定的那一行全都選擇了。算法思路:首先,聲明一個(gè)類(lèi)型變量,作為存放值的用途,把每一列里的右值減去左值所得的結(jié)果存放到該變量上,計(jì)算每一列的寬度,最后把列名添加進(jìn)去。流程圖:代碼:BOOLCOperate::OnInitDialog(){ CDialog::OnInitDialog(); //TODO:Addextrainitializationhere DWORDdwExStyle=LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_UNDERLINEHOT; m_list.SetExtendedStyle(dwExStyle); LV_COLUMNlvColumn; lvColumn.mask=LVCF_FMT|LVCF_WIDTH|LVCF_TEXT|LVCF_SUBITEM; lvColumn.fmt=LVCFMT_CENTER; RECTrectmessage;//聲明一個(gè)RECT類(lèi)型的變量 m_list.GetWindowRect(&rectmessage);//取得listControl對(duì)象m_listshow的寬賦值給rectmessage并進(jìn)行匹配 intwidmessage; widmessage=rectmessage.right-rectmessage.left; lvColumn.cx=widmessage/6; lvColumn.iSubItem=0; lvColumn.pszText="編號(hào)"; m_list.InsertColumn(0,&lvColumn); //添加數(shù)目列 lvColumn.cx=widmessage/6; lvColumn.iSubItem=1; lvColumn.pszText="貨物名稱(chēng)"; m_list.InsertColumn(1,&lvColumn);lvColumn.cx=widmessage/6; lvColumn.iSubItem=2; lvColumn.pszText="貨物類(lèi)別"; m_list.InsertColumn(2,&lvColumn); lvColumn.cx=widmessage/6; lvColumn.iSubItem=3; lvColumn.pszText="貨物倉(cāng)庫(kù)名"; m_list.InsertColumn(3,&lvColumn); lvColumn.cx=widmessage/6; lvColumn.iSubItem=4; lvColumn.pszText="庫(kù)存量"; m_list.InsertColumn(4,&lvColumn); lvColumn.cx=widmessage/6; lvColumn.iSubItem=5; lvColumn.pszText="單價(jià)"; m_list.InsertColumn(5,&lvColumn); returnTRUE;//returnTRUEunlessyousetthefocustoacontrol //EXCEPTION:OCXPropertyPagesshouldreturnFALSE}Addgoods類(lèi)中的OnOK方法功能:用戶(hù)點(diǎn)擊查詢(xún)按鈕,在查詢(xún)編輯框里選擇需要添加貨物的那一欄,再按“貨物入庫(kù)”按鈕,就會(huì)彈出入庫(kù)對(duì)話框,此時(shí),用戶(hù)之前所選擇的該物品的編號(hào)會(huì)顯示出來(lái),用戶(hù)只需要填入入庫(kù)量即可,不用再填入入庫(kù)貨品的編號(hào),這樣省下了管理員的工作量,操作簡(jiǎn)單、方便。算法思路:當(dāng)用戶(hù)選擇了該行,系統(tǒng)會(huì)與數(shù)據(jù)庫(kù)里的進(jìn)行匹配直到找到該條信息,接著把該條信息的編號(hào)反饋到相應(yīng)位置,用戶(hù)只需添加數(shù)量即可,添加的數(shù)量也會(huì)增加到對(duì)應(yīng)的信息上。流程圖:代碼:voidCAddgoods::OnOK(){ //TODO:Addyourcontrolnotificationhandlercodehere CStringa;m_num.GetWindowText(a); if(sql.m_database.IsOpen()) {sql.m_database.Close(); } CStringstr; str="Driver={SQLServer};Server=(local);Database=lian;uid=sa;pwd="; sql.m_database.OpenEx(str,0); //賦記錄集地址值給rs以便使用,打開(kāi)記錄集 sql.rs.m_pDatabase=&sql.m_database;CStringstr1="select*fromGoods"; sql.rs.Open(CRecordset::snapshot,str1,CRecordset::readOnly);CStringrr,tt; //id.Replace("",NULL);//出去id的空格 while(!sql.rs.IsEOF()){ sql.rs.GetFieldValue("Gno",rr);if(id.Compare(rr)==0){ sql.rs.GetFieldValue("Gstorelest",tt); inttemp=atoi(tt)+atoi(a); tt.Format("%d",temp); str="updateGoodssetGstorelest='"+tt+"'whereGno='"+id+"'"; sql.m_database.ExecuteSQL(str); MessageBox("入倉(cāng)成功!"); CDialog::OnCancel(); } sql.rs.MoveNext();} CDialog::OnCancel();}BOOLCAddgoods::OnInitDialog(){ CDialog::OnInitDialog(); //TODO:Addextrainitializationhere SetDlgItemText(IDC_ff,id);//將主界面?zhèn)鱽?lái)的值賦值給id變量并顯示到static界面上 returnTRUE;//returnTRUEunlessyousetthefocustoacontrol //EXCEPTION:OCXPropertyPagesshouldreturnFALSE}七.功能測(cè)試 ⑴登陸框模塊圖7-1登陸框測(cè)試圖⑵倉(cāng)庫(kù)管理系統(tǒng)主界面圖7-2系統(tǒng)界面測(cè)試圖⑶信息查詢(xún)模塊圖7-3查詢(xún)信息測(cè)試圖⑷貨物入庫(kù)模塊圖7-4貨物入庫(kù)測(cè)試圖⑸貨物出庫(kù)模塊圖7-5貨物出庫(kù)測(cè)試圖⑹添加新貨模塊圖7-6添加新貨測(cè)試圖⑺刪除舊貨模塊圖7-7刪除舊貨測(cè)試圖⑻修改信息模塊圖7-8修改信息測(cè)試圖八.存在的不足與對(duì)策由于設(shè)計(jì)者水平有限及時(shí)間等方面的原因,該系統(tǒng)的功能比較簡(jiǎn)單,查錯(cuò)能力也不強(qiáng),對(duì)于一些不正確的輸入可能會(huì)造成一些難以預(yù)料的結(jié)果,因此,請(qǐng)不要故意輸入錯(cuò)誤信息。這些不足請(qǐng)老師多多諒解。今后設(shè)計(jì)者會(huì)更多的學(xué)習(xí)編程技巧,不斷的提高程序設(shè)計(jì)水平。1.該系統(tǒng)暫設(shè)的帳號(hào)和密碼就只有一個(gè),沒(méi)有設(shè)計(jì)到注冊(cè)框讓用戶(hù)進(jìn)行注冊(cè),就是想要添加帳號(hào)的話,那就只能是懂得數(shù)據(jù)庫(kù)的人員在USER_PSW表中insert新的帳號(hào)跟密碼,這是該系統(tǒng)連接數(shù)據(jù)庫(kù)時(shí)的一點(diǎn)不足。2.?dāng)?shù)據(jù)庫(kù)中Goods的表邏輯結(jié)構(gòu)不怎么強(qiáng),就是顯示的信息沒(méi)有一個(gè)順序,表中插進(jìn)的信息是插到最后一行,這樣子的話用戶(hù)看到的信息就會(huì)很亂,比如添加的信息是加到A倉(cāng)庫(kù)上,該條信息只會(huì)加到表的最后一行,而不會(huì)跟前面A倉(cāng)庫(kù)的信息放在一起,管理員看起來(lái)會(huì)顯得有點(diǎn)亂。3.倉(cāng)庫(kù)里缺少一個(gè)報(bào)警信號(hào),就是要是倉(cāng)庫(kù)里貨物的信息為0時(shí)也不會(huì)報(bào)警,只有當(dāng)管理員通過(guò)查詢(xún)時(shí)才會(huì)發(fā)現(xiàn)到,這是該系統(tǒng)的另一不足之處。不過(guò)因?yàn)闀r(shí)間的緊張,所以我只做了查詢(xún),添加,刪除,修改等幾個(gè)基本的操作,至于系統(tǒng)的其它功能還在不斷的完善中。九.程序源代碼#include"stdafx.h"#include"倉(cāng)庫(kù)管理系統(tǒng).h"#include"倉(cāng)庫(kù)管理系統(tǒng)Dlg.h"#include"sql.h"#include"Operate.h"#include"OutGoods.h"#include"Change.h"#include"AddNewGoods.h"#include"Addgoods.h"#include"stdlib.h"externSQLsql;externCStringid;//倉(cāng)庫(kù)管理系統(tǒng)Dlg.cpp:implementationfile#include"stdafx.h"#include"倉(cāng)庫(kù)管理系統(tǒng).h"#include"倉(cāng)庫(kù)管理系統(tǒng)Dlg.h"#include"sql.h"#include"Operate.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////CAboutDlgdialogusedforAppAboutSQLsql;classCAboutDlg:publicCDialog{public: CAboutDlg();//DialogData //{{AFX_DATA(CAboutDlg) enum{IDD=IDD_ABOUTBOX}; //}}AFX_DATA //ClassWizardgeneratedvirtualfunctionoverrides //{{AFX_VIRTUAL(CAboutDlg) protected: virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport //}}AFX_VIRTUAL//Implementationprotected: //{{AFX_MSG(CAboutDlg) //}}AFX_MSG DECLARE_MESSAGE_MAP()};CAboutDlg::CAboutDlg():CDialog(CAboutDlg::IDD){ //{{AFX_DATA_INIT(CAboutDlg) //}}AFX_DATA_INIT}voidCAboutDlg::DoDataExchange(CDataExchange*pDX){ CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CAboutDlg) //}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CAboutDlg,CDialog) //{{AFX_MSG_MAP(CAboutDlg) //Nomessagehandlers //}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CMyDlgdialogCMyDlg::CMyDlg(CWnd*pParent/*=NULL*/) :CDialog(CMyDlg::IDD,pParent){ //{{AFX_DATA_INIT(CMyDlg) m_id=_T(""); m_password=_T(""); //}}AFX_DATA_INIT //NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32 m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);}voidCMyDlg::DoDataExchange(CDataExchange*pDX){ CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CMyDlg) DDX_Text(pDX,IDC_EDIT1,m_id); DDX_Text(pDX,IDC_EDIT2,m_password); //}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CMyDlg,CDialog) //{{AFX_MSG_MAP(CMyDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_BUTTON1,OnOK) ON_BN_CLICKED(IDC_BUTTON2,OnCancel) //}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CMyDlgmessagehandlersBOOLCMyDlg::OnInitDialog(){ CDialog::OnInitDialog(); //Add"About..."menuitemtosystemmenu. //IDM_ABOUTBOXmustbeinthesystemcommandrange. ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX<0xF000); CMenu*pSysMenu=GetSystemMenu(FALSE); if(pSysMenu!=NULL) { CStringstrAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if(!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu); } } //Settheiconforthisdialog.Theframeworkdoesthisautomatically //whentheapplication'smainwindowisnotadialog SetIcon(m_hIcon,TRUE); //Setbigicon SetIcon(m_hIcon,FALSE); //Setsmallicon //TODO:Addextrainitializationhere returnTRUE;//returnTRUEunlessyousetthefocustoacontrol}voidCMyDlg::OnSysCommand(UINTnID,LPARAMlParam){ if((nID&0xFFF0)==IDM_ABOUTBOX) { CAboutDlgdlgAbout; dlgAbout.DoModal(); } else { CDialog::OnSysCommand(nID,lParam); }}//Ifyouaddaminimizebuttontoyourdialog,youwillneedthecodebelow//todrawtheicon.ForMFCapplicationsusingthedocument/viewmodel,//thisisautomaticallydoneforyoubytheframework.voidCMyDlg::OnPaint(){ if(IsIconic()) { CPaintDCdc(this);//devicecontextforpainting SendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0); //Centericoninclientrectangle intcxIcon=GetSystemMetrics(SM_CXICON); intcyIcon=GetSystemMetrics(SM_CYICON); CRectrect; GetClientRect(&rect); intx=(rect.Width()-cxIcon+1)/2; inty=(rect.Height()-cyIcon+1)/2; //Drawtheicon dc.DrawIcon(x,y,m_hIcon); } else { CDialog::OnPaint(); }}//Thesystemcallsthistoobtainthecursortodisplaywhiletheuserdrags//theminimizedwindow.HCURSORCMyDlg::OnQueryDragIcon(){ return(HCURSOR)m_hIcon;}voidCMyDlg::OnOK(){ //TODO:Addyourcontrolnotificationhandlercodehere intflag=0; UpdateData(true); while(m_id.GetLength()<20) {m_id=m_id+""; } while(m_password.GetLength()<20) {m_password=m_password+""; } //打開(kāi)數(shù)據(jù)庫(kù) if(sql.m_database.IsOpen()) {sql.m_database.Close(); } CStringstr; str="Driver={SQLServer};Server=(local);Database=lian;uid=sa;pwd="; sql.m_database.OpenEx(str,0); //賦記錄集地址值給rs以便使用,打開(kāi)記錄集 sql.rs.m_pDatabase=&sql.m_database;CStringstr1="select*fromUSER_PSW"; sql.rs.Open(CRecordset::snapshot,str1,CRecordset::readOnly); while(!sql.rs.IsEOF()) { sql.rs.GetFieldValue("UID",str); if(str.Compare(m_id)==0) { sql.rs.GetFieldValue("PASS",str); if(str.Compare(m_password)==0) { flag=1;COperateobj; obj.DoModal(); CDialog::OnCancel(); } } sql.rs.MoveNext(); } if(flag==0)MessageBox("登陸失??!");}voidCMyDlg::OnCancel(){//TODO:Addyourcontrolnotificationhandlercodehere CDialog::OnCancel();}//Operate.cpp:implementationfile#include"stdafx.h"#include"倉(cāng)庫(kù)管理系統(tǒng).h"#include"Operate.h"#include"sql.h"#include"Addgoods.h"#include"OutGoods.h"#include"AddNewGoods.h"#include"Change.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////COperatedialogexternSQLsql;externCStringid;COperate::COperate(CWnd*pParent/*=NULL*/) :CDialog(COperate::IDD,pParent){//{{AFX_DATA_INIT(COperate) //NOTE:theClassWizardwilladdmemberinitializationhere //}}AFX_DATA_INIT}voidCOperate::DoDataExchange(CDataExchange*pDX){CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(COperate) DDX_Control(pDX,IDC_LIST1,m_list); //}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(COperate,CDialog) //{{AFX_MSG_MAP(COperate) ON_BN_CLICKED(IDC_BUTTON1,Onsearch) ON_BN_CLICKED(IDC_BUTTON_ADD,OnButtonAdd) ON_BN_CLICKED(IDC_BUTTON_delete,OnDelete) ON_BN_CLICKED(IDC_BUTTON2,OnButton2) ON_BN_CLICKED(IDC_BUTTON3,OnDELETE) ON_BN_CLICKED(IDC_BUTTON5,OnCancel) ON_BN_CLICKED(IDC_BUTTON4,OnCHANG) //}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////COperatemessagehandlers//初始化對(duì)話框代碼BOOLCOperate::OnInitDialog(){CDialog::OnInitDialog(); //TODO:Addextrainitializationhere DWORDdwExStyle=LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_UNDERLINEHOT; m_list.SetExtendedStyle(dwExStyle); LV_COLUMNlvColumn; lvColumn.mask=LVCF_FMT|LVCF_WIDTH|LVCF_TEXT|LVCF_SUBITEM; lvColumn.fmt=LVCFMT_CENTER; RECTrectmessage;//聲明一個(gè)RECT類(lèi)型的變量 m_list.GetWindowRect(&rectmessage);//取得listControl對(duì)象m_listshow的寬賦值給rectmessage并進(jìn)行匹配 intwidmessage; widmessage=rectmessage.right-rectmessage.left; lvColumn.cx=widmessage/6; lvColumn.iSubItem=0; lvColumn.pszText="編號(hào)"; m_list.InsertColumn(0,&lvColumn); //添加數(shù)目列 lvColumn.cx=widmessage/6; lvColumn.iSubItem=1; lvColumn.pszText="貨物名稱(chēng)"; m_list.InsertColumn(1,&lvColumn);lvColumn.cx=widmessage/6; lvColumn.iSubItem=2; lvColumn.pszText="貨物類(lèi)別"; m_list.InsertColumn(2,&lvColumn); lvColumn.cx=widmessage/6; lvColumn.iSubItem=3; lvColumn.pszText="貨物倉(cāng)庫(kù)名"; m_list.InsertColumn(3,&lvColumn); lvColumn.cx=widmessage/6; lvColumn.iSubItem=4; lvColumn.pszText="庫(kù)存量"; m_list.InsertColumn(4,&lvColumn); lvColumn.cx=widmessage/6; lvColumn.iSubItem=5; lvColumn.pszText="單價(jià)"; m_list.InsertColumn(5,&lvColumn); returnTRUE;//returnTRUEunlessyousetthefocustoacontrol //EXCEPTION:OCXPropertyPagesshouldreturnFALSE}//查詢(xún)信息代碼voidCOperate::Onsearch(){//TODO:Addyourcontrolnotificationhandlercodehere m_list.DeleteAllItems();//打開(kāi)數(shù)據(jù)庫(kù) if(sql.m_database.IsOpen()) {sql.m_database.Close(); } CStringstr; str="Driver={SQLServer};Server=(local);Database=lian;uid=sa;pwd="; sql.m_database.OpenEx(str,0); //賦記錄集地址值給rs以便使用,打開(kāi)記錄集 sql.rs.m_pDatabase=&sql.m_database;CStringstr1="select*fromGoods"; sql.rs.Open(CRecordset::snapshot,str1,CRecordset::readOnly);inti=0;while(!sql.rs.IsEOF()){ sql.rs.GetFieldValue("Gno",str1);//將帳號(hào)數(shù)據(jù)庫(kù)中的值賦值給str; m_list.InsertItem(i,str1);//在此i為第i列的行號(hào);str數(shù)值 sql.rs.GetFieldValue("Gname",str1); m_list.SetItemText(i,1,str1);//注,第一列使用insertitem()插入數(shù)值,但是第二列要是用setitemtext()函數(shù)插入數(shù)值 sql.rs.GetFieldValue("Gstyle",str1); m_list.SetItemText(i,2,str1); sql.rs.GetFieldValue("Gstorename",str1);m_list.SetItemText(i,3,str1); sql.rs.GetFieldValue("Gstorelest",str1);m_list.SetItemText(i,4,str1); sql.rs.GetFieldValue("Gprice",str1); m_list.SetItemText(i,5,str1); i++; sql.rs.MoveNext();}}voidCOperate::OnCancel(){//TODO:Addyourcontrolnotificationhandlercodehere CDialog::OnCancel();}//貨物入庫(kù)代碼voidCOperate::OnButtonAdd(){//TODO:AddyourcontrolnotificationhandlercodehereintnItem=m_list.GetNextItem(-1,LVNI_SELECTED);// id=m_list.GetItemText(nItem,0); CAddgoodsobj; obj.DoModal();COperate::Onsearch();}//貨物出庫(kù)代碼voidCOperate::OnDelete(){//TODO:Addyourcontrolnotificationhandlercodehere intnItem=m_list.GetNextItem(-1,LVNI_SELECTED); id=m_list.GetItemText(nItem,0);//將被選中行的第一列的數(shù)值賦值給id COutGoodsobj1; obj1.DoModal();COperate::Onsearch();}//添加新物代碼voidCOperate::OnButton2(){ //TODO:Addyourcontrolnotificationhandlercodehere CAddNewGoodsobj2; obj2.DoModal(); COperate::Onsearch();}//刪除舊貨代碼voidCOperate::OnDELETE(){ //TODO:Addyourcontrolnotificationhandlercodehere //UpdateData(true); CStringstr; CStringno; if(sql.m_database.IsOpen()) {sql.m_database.Close(); } str="Driver={SQLSERVER};SERVER=(Local);Database=lian;UID=sa;PWD="; sql.m_database.OpenEx(str); sql.rs.m_pDatabase=&sql.m_database; str="select*fromGoods"; sql.rs.Open(CRecordset::snapshot,str,CRecordset::readOnly); intnItem=m_list.GetNextItem(-1,LVNI_SELECTED); no=m_list.GetItemText(nItem,0);//將被選中行的第一列的數(shù)值賦值給no str="deletefromGoodswhereGno='"+no+"'"; sql.m_database.ExecuteSQL(str); if(sql.m_database.CanUpdate()) {MessageBox("刪除成功!"); } else MessageBox("刪除失??!"); COperate::Onsearch();}//修改信息代碼voidCOperate::OnCHANG(){ //TODO:Addyourcontrolnotificationhandlercodehere intnItem=m_list.GetNextItem(-1,LVNI_SELECTED);// id=m_list.GetItemText(nItem,0); CChangeobj5;SQLsql;CStringstr="driver={sqlserver};server=(local);database=lian;uid=sa;pwd=";sql.m_database.OpenEx(str); if(nItem==-1) { MessageBox("沒(méi)有選擇要修改的數(shù)據(jù)"); return; } CStringname=m_list.GetItemText(nItem,1); CStringstyle=m_list.GetItemText(nItem,2); CStringstore=m_list.GetItemText(nItem,3); CStringleft=m_list.GetItemText(nItem,4); CStringprice=m_list.GetItemText(nItem,4); obj5.m_name=name; obj5.m_style=style; obj5.m_store=store; obj5.m_left=left; obj5.m_price=price;if(obj5.DoModal()==IDOK) { CStringname1=obj5.m_name; CStringstyle1=obj5.m_style; CStringstore1=obj5.m_store; CStringleft1=obj5.m_left; CStringprice1=obj5.m_price; CStringstr1; str1="updateGoodssetGname='"+name1+"',Gstyle='"+style1+"',Gstorename='"+store1+"',Gstorelest='"+left1+"',Gprice='"+price1+"'whereGno='"+id+"'"; sql.m_database.ExecuteSQL(str1); MessageBox("修改成功"); } COperate::Onsearch();//運(yùn)行IDC_SELECT_BUTTON()這個(gè)按鈕}//Addgoods.cpp#include"stdafx.h"#include"倉(cāng)庫(kù)管理系統(tǒng).h"#include"Addgoods.h"#include"sql.h"#include"stdlib.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////CAddgoodsdialogexternCStringid;externSQLsql;CAddgoods::CAddgoods(CWnd*pParent/*=NULL*/) :CDialog(CAddgoods::IDD,pParent){ //{{AFX_DATA_INIT(CAddgoods) //}}AFX_DATA_INIT}voidCAddgoods::DoDataExchange(CDataExchange*pDX){ CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CAddgoods) DDX_Control(pDX,IDC_EDIT2,m_num); //}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CAddgoods,CDialog) //{{AFX_MSG_MAP(CAddgoods) ON_BN_CLICKED(IDC_BUTTON1,OnOK) ON_BN_CLICKED(IDC_BUTTON2,OnCancel) //}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CAddgoodsmessagehandlersvoidCAddgoods::OnOK(){ //TODO:Addyourcontrolnotificationhandlercodehere CStringa;m_num.GetWindowText(a); if(sql.m_database.IsOpen()) {sql.m_database.Close(); } CStringstr; str="Driver={SQLServer};Server=(local);Database=lian;uid=sa;pwd="; sql.m_database.OpenEx(str,0); //賦記錄集地址值給rs以便使用,打開(kāi)記錄集 sql.rs.m_pDatabase=&sql.m_database;CStringstr1="select*fromGoods"; sql.rs.Open(CRecordset::snapshot,str1,CRecordset::readOnly);CStringrr,tt; while(!sql.rs.IsEOF()){ sql.rs.GetFieldValue("Gno",rr);if(id.Compare(rr)==0){ sql.rs.GetFieldValue("Gstorelest",tt); inttemp=atoi(tt)+atoi(a); tt.Format("%d",temp); str="updateGoodssetGstorelest='"+tt+"'whereGno='"+id+"'"; sql.m_database.ExecuteSQL(str); MessageBox("入倉(cāng)成功!"); CDialog::OnCancel(); } sql.rs.MoveNext();} CDialog::OnCancel();}BOOLCAddgoods::OnInitDialog(){ CDialog::OnInitDialog(); //TODO:Addextrainitializationhere SetDlgItemText(IDC_ff,id);//將主界面?zhèn)鱽?lái)的值賦值給id變量并顯示到static界面上 returnTRUE;//returnTRUEunlessyousetthefocustoacontrol //EXCEPTION:OCXPropertyPagesshouldreturnFALSE}voidCAddgoods::OnCancel(){ //TODO:Addyourcontrolnotificationhandlercodehere CDialog::OnCancel();}//AddNewGoods.cpp:implementationfile#include"stdafx.h"#include"倉(cāng)庫(kù)管理系統(tǒng).h"#include"AddNewGoods.h"#include"sql.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////CAddNewGoodsdialogCAddNewGoods::CAddNewGoods(CWnd*pParent/*=NULL*/) :CDialog(CAddNewGoods::IDD,pParent){ //{{AFX_DATA_INIT(CAddNewGoods) m_no=_T(""); m_name=_T(""); m_style=_T(""); m_store=_T(""); m_left=_T(""); m_price=_T(""); //}}AFX_DATA_INIT}voidCAddNewGoods::DoDataExchange(CDataExchange*pDX){ CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CAddNewGoods) DDX_Text(pDX,IDC_EDIT1,m_no); DDX_Text(pDX,IDC_EDIT2,m_name); DDX_Text(pDX,IDC_EDIT3,m_style); DDX_Text(pDX,IDC_EDIT4,m_store); DDX_Text(pDX,IDC_EDIT5,m_left); DDX_Text(pDX,IDC_EDIT6,m_price); //}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CAddNewGoods,CDialog) //{{AFX_MSG_MAP(CAddNewGoods) ON_BN_CLICKED(IDC_BUTTON2,OnButton2) ON_BN_CLICKED(IDC_BUTTON1,OnOK) //}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CAddNewGoodsmessagehandlersvoidCAddNewGoods::OnButton2(){ //TODO:Addyourcontrolnotificationhandlercodehere CDialog::OnCancel();}voidCAddNewGoods::OnOK(){ //TODO:AddyourcontrolnotificationhandlercodehereSQLsql; UpdateData(true); while(m_no.GetLength()<10) { m_no=m_no+""; } if(sql.m_database.IsOpen()) {sql.m_database.Close(); } CStringstr; str="DRIVER={SQLServer};SERVER=(local);Database=lian;UID=sa;PWD=";sql.m_database.OpenEx(str,0); str="select*fromGoods"; sql.rs.m_pDatabase=&sql.m_database; sql.rs.Open(CRecordset::snapshot,str,CRecordset::readOnly); while(!sql.rs.IsEOF()) {if(m_no.IsEmpty())//可能有問(wèn)題 {MessageBox("貨物號(hào)不能為空,請(qǐng)重新輸入!"); break; } sql.rs.GetFieldValue("Gno",str); if(str.Compare(m_no)==1) {MessageBox("貨物號(hào)相同,請(qǐng)重新輸入!"); break; } sql.rs.MoveNext(); } if(sql.rs.IsEOF()) { if(m_name.IsEmpty()) {MessageBox("貨物名不能為空!"); return; } if(m_style.IsEmpty()) {MessageBox("類(lèi)型不能為空!"); return; } if(m_store.IsEmpty()) {MessageBox("倉(cāng)庫(kù)名不能空"); return; } if(m_left.IsEmpty()) {MessageBox("庫(kù)存量不能為空!"); return; } if(m_price.IsEmpty()) {MessageBox("單價(jià)不能為空!"); return; }str="insertintoGoodsvalues('"+m_no+"','"+m_name+"','"+m_style+"','"+m_store+"','"+m_left+"','"+m_price+"')"; sql.m_database.ExecuteSQL(str);//執(zhí)行str的sql語(yǔ)句 MessageBox("添加成功!"); CDialog::OnCancel(); }}//Change.cpp:implementationfile#include"stdafx.h"#include"倉(cāng)庫(kù)管理系統(tǒng).h"#include"Change.h"#include"sql.h"#include"Operate.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////CChangedialogexternSQLsql;externCStringid;CChange::CChange(CWnd*pParent/*=NULL*/) :CDialog(CChange::IDD,pParent){ //{{AFX_DATA_INIT(CChange) m_name=_T(""); m_style=_T(""); m_store=_T(""); m_left=_T(""); m_price=_T(""); //}}AFX_DATA_INIT}voidCChange::DoDataExchange(CDataExchange*pDX){ CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CChange) DDX_Text(pDX,IDC_EDIT2,m_name); DDX_Text(pDX,IDC_EDIT3,m_style); DDX_Text(pDX,IDC_EDIT4,m_store); DDX_Text(pDX,IDC_EDIT5,m_left); DDX_Text(pDX,IDC_EDIT6,m_price); //}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CChange,CDialog) //{{AFX_MSG_MAP(CChange) ON_BN_CLICKED(IDC_BUTTON2,OnCancel) ON_BN_CLICKED(IDC_BUTTON1,OnOK) ON_BN_CLICKED(IDC_DMIN,OnDmin) //}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CChangemessagehandlersvoidCChange::OnCancel(){ //TODO:Addyourcontrolnotificationhandlercodehere
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 抗震支座鋼筋施工方案
- 果園道路安全施工方案
- 二零二五年度信用卡聯(lián)名信用卡與專(zhuān)屬客戶(hù)關(guān)懷服務(wù)合同
- 二零二五年度勞動(dòng)合同解除及競(jìng)業(yè)限制合同模板
- 二零二五年度旅行社與旅行社旅游意外險(xiǎn)合作合同
- 2025年度電子商務(wù)就業(yè)人員勞動(dòng)合同范本
- 二零二五年度股權(quán)激勵(lì)計(jì)劃股份占比變更合同范本
- 二零二五年度辦公用品代理銷(xiāo)售服務(wù)合同
- 2025年度股東合作分紅與信息安全保障協(xié)議
- 二零二五年度辦公室文員企業(yè)財(cái)務(wù)支持聘用合同
- 創(chuàng)新小白實(shí)操手冊(cè) 第2版 課件全套 吳雋 模塊1-8 人人皆可創(chuàng)新-商業(yè)呈現(xiàn)與商業(yè)計(jì)劃
- 2024年世界職業(yè)院校技能大賽高職組“關(guān)務(wù)實(shí)務(wù)組”賽項(xiàng)參考試題庫(kù)(含答案)
- 電商提成合同模板
- 正念八周課件
- 服務(wù)響應(yīng)時(shí)間和服務(wù)保障方案
- 蟾蜍毒抗病毒作用機(jī)制
- 光伏發(fā)電監(jiān)理合同協(xié)議
- 新能源汽車(chē)概論課件 3.1認(rèn)知純電動(dòng)汽車(chē)
- 【數(shù)學(xué)】小學(xué)四年級(jí)口算題大全(10000道)
- 中國(guó)腦出血診治指南
- 信息安全意識(shí)培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論