【《倉(cāng)庫(kù)管理系統(tǒng)設(shè)計(jì)的系統(tǒng)實(shí)現(xiàn)案例》6700字】_第1頁(yè)
【《倉(cāng)庫(kù)管理系統(tǒng)設(shè)計(jì)的系統(tǒng)實(shí)現(xiàn)案例》6700字】_第2頁(yè)
【《倉(cāng)庫(kù)管理系統(tǒng)設(shè)計(jì)的系統(tǒng)實(shí)現(xiàn)案例》6700字】_第3頁(yè)
【《倉(cāng)庫(kù)管理系統(tǒng)設(shè)計(jì)的系統(tǒng)實(shí)現(xiàn)案例》6700字】_第4頁(yè)
【《倉(cāng)庫(kù)管理系統(tǒng)設(shè)計(jì)的系統(tǒng)實(shí)現(xiàn)案例》6700字】_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

倉(cāng)庫(kù)管理系統(tǒng)設(shè)計(jì)的系統(tǒng)實(shí)現(xiàn)案例目錄TOC\o"1-3"\h\u12928倉(cāng)庫(kù)管理系統(tǒng)設(shè)計(jì)的系統(tǒng)實(shí)現(xiàn)案例 1262721.1數(shù)據(jù)庫(kù)實(shí)現(xiàn) 1267761.1.1連接數(shù)據(jù)庫(kù) 1211491.1.2建立數(shù)據(jù)表 292031.2系統(tǒng)登錄界面 692651.3倉(cāng)庫(kù)信息模塊 780421.3.1原料代碼管理窗口 8286251.3.2原料入庫(kù)管理窗口 11221661.3.3原料出庫(kù)管理窗口 14327111.3.4采購(gòu)?fù)素浌芾泶翱?16315881.3.5原料退庫(kù)管理窗口 19132941.3.6原料自動(dòng)采購(gòu)管理窗口 2254691.3.7原料請(qǐng)購(gòu)單管理窗口 24267161.3.8供貨渠道分析 26381.4查詢模塊 29251891.4.1庫(kù)存報(bào)警管理 30273941.4.2臨近保質(zhì)期報(bào)警管理 32324021.4.3原料入庫(kù)列表查詢 33187771.4.4原料出庫(kù)列表查詢 34285541.4.5采購(gòu)?fù)素浟斜聿樵?36257531.4.6原料退庫(kù)列表查詢 3774151.4.7現(xiàn)有庫(kù)存查詢 384851.4.8原料請(qǐng)購(gòu)單列表查詢 391.1數(shù)據(jù)庫(kù)實(shí)現(xiàn)1.1.1連接數(shù)據(jù)庫(kù)在進(jìn)行開(kāi)發(fā)設(shè)計(jì)前,一個(gè)很重要的步驟就是連接數(shù)據(jù)庫(kù)訪問(wèn)數(shù)據(jù)庫(kù)。VisualStudio2010提供了多種方式訪問(wèn)數(shù)據(jù)庫(kù),其中以O(shè)DBC與ADO訪問(wèn)數(shù)據(jù)庫(kù)方式最常見(jiàn)。ODBC與ADO數(shù)據(jù)庫(kù)接口已經(jīng)將一些底層的操作都封裝在類中,用戶可以方便地使用這些接口,而無(wú)需編寫(xiě)操作數(shù)據(jù)庫(kù)地底層代碼。具體ODBC及ADO詳見(jiàn)相關(guān)理論部分。本系統(tǒng)采用ADO方式訪問(wèn)數(shù)據(jù)庫(kù)。1.創(chuàng)建一個(gè)MyDBWork類,封裝ADO對(duì)象。2.在StdAfx.h頭文件中加入一段代碼,用于導(dǎo)入ADO動(dòng)態(tài)鏈接庫(kù),代碼如下:#import"Lib\msado15.dll"no_namespacerename("EOF","adoEOF"),rename("BOF","adoBOF")3.使用ADO連接數(shù)據(jù)庫(kù)使用ADO對(duì)象連接數(shù)據(jù)庫(kù),把連接數(shù)據(jù)庫(kù)操作封裝在一個(gè)類里,因?yàn)檎麄€(gè)系統(tǒng)都會(huì)使用到這個(gè)數(shù)據(jù)庫(kù),所以把數(shù)據(jù)庫(kù)的連接定義為全局變量。1.1.2建立數(shù)據(jù)表本軟件設(shè)計(jì)采用了SQLserver建立數(shù)據(jù)庫(kù)作為數(shù)據(jù)的服務(wù)器。先啟動(dòng)SQLserver程序,建立一個(gè)數(shù)據(jù)庫(kù)名為“raw_store”的數(shù)據(jù)庫(kù),在數(shù)據(jù)庫(kù)中表上右擊“新建表”來(lái)建立各表。數(shù)據(jù)庫(kù)各表如圖4-1所示:圖4-1為數(shù)據(jù)庫(kù)各表各個(gè)數(shù)據(jù)表格的設(shè)計(jì)結(jié)果如下面表格所示。每個(gè)表格所示在數(shù)據(jù)庫(kù)中的一個(gè)表。建立原料代碼表如下圖4-2所示:圖4-2為原料代碼表建立原料采購(gòu)申請(qǐng)表如下圖4-3所示:圖4-3為原料采購(gòu)申請(qǐng)表建立用戶登錄表如下圖4-4所示:圖4-4為用戶登錄表建立原料入庫(kù)表如下圖4-5所示:圖4-5為原料入庫(kù)表建立原料出庫(kù)表如下圖4-6所示:圖4-6為原料出庫(kù)表建立原料采購(gòu)?fù)素洷砣缦聢D4-7所示:圖4-7為原料采購(gòu)?fù)素洷斫⒃贤藥?kù)表如下圖4-8所示:圖4-8為原料退庫(kù)表建立原料自動(dòng)采購(gòu)表如下圖4-9所示:圖4-9為原料自動(dòng)采購(gòu)表1.2系統(tǒng)登錄界面1.設(shè)計(jì)思路與要點(diǎn):用戶運(yùn)行程序后,輸入用戶名與密碼,程序根據(jù)用戶名和密碼與后臺(tái)數(shù)據(jù)庫(kù)raw_enter查詢用戶名和密碼是否正確,如果正確,則調(diào)用主窗體模塊,執(zhí)行相應(yīng)的操作。2.系統(tǒng)登錄界面如圖4-10所示:圖4-10為系統(tǒng)登錄界面3.系統(tǒng)登錄界面實(shí)現(xiàn)代碼如下,建立對(duì)話框的類CLoginvoidCLogin::OnBnClickedOk(){ //TODO:在此添加控件通知處理程序代碼 UpdateData(TRUE);//MFC的窗口函數(shù) CMyDBWorkmydb; if(mydb.ConnDB()==false)return;//ConnDB()連接數(shù)據(jù)庫(kù),初始化對(duì)話框中的數(shù)據(jù) CStringstr; str.Format(L"select*fromraw_enterwhereuser1='%s'andpwd='%s'",m_cName,m_cPwd);//查詢數(shù)據(jù)庫(kù)raw_enter if(!mydb.SelectSQL((_bstr_t)str)){AfxMessageBox(L"查詢錯(cuò)誤!");return;} //AfxMessageBox(L"查詢成功!"); if(!mydb.IsRecordEOF()) { } else { m_cTip.Format(L"用戶名或密碼錯(cuò)誤!"); UpdateData(false); return; } CDialogEx::OnOK();}1.3倉(cāng)庫(kù)信息模塊倉(cāng)庫(kù)信息模塊是倉(cāng)庫(kù)管理的核心模塊,根據(jù)倉(cāng)庫(kù)的日常操作共分成八個(gè)子模塊,基本上包括了倉(cāng)庫(kù)管理的主要功能,子模塊分別包括:原料代碼管理原料入庫(kù)管理原料出庫(kù)管理采購(gòu)?fù)素浌芾碓贤藥?kù)管理原料自動(dòng)采購(gòu)原料請(qǐng)購(gòu)單供貨渠道分析1.3.1原料代碼管理窗口原料代碼表格(raw_code)包含原料編號(hào)、原料名稱、計(jì)量單位、最低庫(kù)存、最高庫(kù)存,原料代碼表經(jīng)常被其他表格引用,如獲取合法原料編號(hào),由設(shè)備編號(hào)查找設(shè)備名稱、最低最高庫(kù)存。該對(duì)話框類名為CrawCode,設(shè)計(jì)如圖4-11所示:圖4-11為原料代碼列表窗口2、原料代碼列表窗口包括一個(gè)列表框(listcontrol),一個(gè)“增加”按鈕、一個(gè)“刪除”按鈕、一個(gè)“修改”按鈕。3、列表框顯示原料代碼表的所有字段和數(shù)據(jù),無(wú)此原料代碼編號(hào)時(shí)點(diǎn)擊“增加”按鈕,調(diào)出增加原料代碼窗口,設(shè)計(jì)如圖4-12所示:圖4-12為增加原料代碼窗口4、原料代碼表的數(shù)據(jù)需要進(jìn)行修改時(shí),單擊一行點(diǎn)擊“修改”按鈕;或者雙擊要修改的行就調(diào)出增加原料代碼窗口,進(jìn)行修改操作。5、原料代碼表的數(shù)據(jù)需要進(jìn)行刪除時(shí),單擊一行點(diǎn)擊“刪除”按鈕。6、原料代碼管理模塊實(shí)現(xiàn)功能包含在RawCode.cpp、RawCode.h、RawCodeAdd.cpp、RawCodeAdd.h文件中。7、“增加”“修改”按鈕的實(shí)現(xiàn)代碼如下。voidCRawCodeAdd::OnBnClickedOk(){ UpdateData(TRUE); CMyDBWorkmydb; if(mydb.ConnDB()==false)return; CStringstr; longnum; if(m_nID<=0) str.Format(L"insertintoraw_code(raw_number,raw_name,raw_dw,low_number,high_number)values('%s','%s','%s','%s','%s')",m_cCode,m_cName,m_cUnit,m_cLownumber,m_cHighnumber);//查詢數(shù)據(jù)庫(kù)raw_code elsestr.Format(L"updateraw_codesetraw_number='%s',raw_name='%s',raw_dw='%s',low_number='%s',high_number='%s'whereraw_id=%d",m_cCode,m_cName,m_cUnit,m_nID,m_cLownumber,m_cHighnumber); if(!mydb.ExecuteSQL((_bstr_t)str,num)){AfxMessageBox(L"數(shù)據(jù)庫(kù)執(zhí)行錯(cuò)誤"+str);return;} AfxMessageBox(L"數(shù)據(jù)庫(kù)執(zhí)行成功"+str); CDialogEx::OnOK();}BOOLCRawCodeAdd::OnInitDialog(){ CDialogEx::OnInitDialog(); if(m_nID>0) { m_btnAdd.SetWindowTextW(L"保存"); CMyDBWorkmydb; if(mydb.ConnDB()==false)returnfalse; CStringstr; str.Format(L"select*fromraw_codewhereraw_id=%d",m_nID); if(!mydb.SelectSQL((_bstr_t)str)){returnfalse;} mydb.CollectMsg("raw_number",m_cCode); mydb.CollectMsg("raw_name",m_cName); mydb.CollectMsg("raw_dw",m_cUnit); mydb.CollectMsg("low_number",m_cLownumber); mydb.CollectMsg("high_number",m_cHighnumber); UpdateData(false); } returnTRUE;}1.3.2原料入庫(kù)管理窗口設(shè)計(jì)思路和要點(diǎn):原料入庫(kù)操作依據(jù)訂單來(lái)核實(shí)原料名稱和數(shù)量等信息,經(jīng)質(zhì)檢員檢驗(yàn)合格后的原料才能辦理入庫(kù)原料入庫(kù)的流程圖,如圖4-13所示:采購(gòu)訂單采購(gòu)訂單核實(shí)原料數(shù)量填寫(xiě)原料報(bào)檢單質(zhì)檢員檢驗(yàn)合格辦理原料入庫(kù)管理與原料代碼表核實(shí)此原料是否是新原料調(diào)用原料代碼管理是新增原料代碼信息原料入庫(kù)新增否調(diào)用原料代碼中原料名稱圖4-13原料入庫(kù)的流程圖3、原料入庫(kù)表格(raw_in)包含供應(yīng)商編號(hào)、供應(yīng)商名稱、入庫(kù)日期、原料編碼、入庫(kù)數(shù)量、單價(jià)、生產(chǎn)日期等字段,該對(duì)話框類名為CrawIn,設(shè)計(jì)如圖4-14所示:圖4-14原料入庫(kù)列表窗口4、原料入庫(kù)列表窗口包括一個(gè)列表框(listcontrol),一個(gè)“增加”按鈕、一個(gè)“刪除”按鈕、一個(gè)“修改”按鈕。5、列表框顯示原料入庫(kù)表的所有字段和數(shù)據(jù),原料入庫(kù)時(shí)點(diǎn)擊“增加”按鈕,調(diào)出增加原料入庫(kù)窗口,設(shè)計(jì)如圖4-15所示:圖4-15為原料入庫(kù)窗口6、原料入庫(kù)表的數(shù)據(jù)需要進(jìn)行修改時(shí),單擊一行點(diǎn)擊“修改”按鈕;或者雙擊要修改的行就調(diào)出增加原料修改窗口(同原料入庫(kù)窗口),進(jìn)行修改操作。7、原料入庫(kù)表的數(shù)據(jù)需要進(jìn)行刪除時(shí),單擊一行點(diǎn)擊“刪除”按鈕。8、原料入庫(kù)管理模塊實(shí)現(xiàn)功能包含在RawIn.cpp、RawIn.h、RawInAdd.cpp、RawInAdd.h文件中。9、“增加”“修改”按鈕的實(shí)現(xiàn)部分代碼如下。CStringraw_number; CStringstr; str.Format(L"selectraw_numberfromraw_codewhereraw_id=%d",RawID); if(!mydb.SelectSQL((_bstr_t)str)){return;}if(!mydb.IsRecordEOF())//只處理第一條記錄 { mydb.CollectMsg("raw_number",raw_number); } mydb.CloseRecord();//關(guān)閉tb_SystemInfo記錄集 longnum; if(m_nID<=0)str.Format(L"insertintoraw_in(in_date,gybh,gymc,raw_number,in_number,price,sc_date,time,in_person)\ values('%s','%s','%s','%s',%s,'%s','%s',%d,'%s')",in_date,m_cGybh,m_cGymc,raw_number,m_dNum,m_dPrice,sc_date,m_nTime,m_cPerson);//查詢數(shù)據(jù)庫(kù)raw_in elsestr.Format(L"updateraw_insetin_date='%s',gybh='%s',gymc='%s',raw_number='%s',in_number='%s',price='%s'\,sc_date='%s',time=%d,in_person='%s'wherein_id=%d",in_date,m_cGybh,m_cGymc,raw_number,m_dNum,m_dPrice,sc_date,m_nTime,m_cPerson,m_nID);if(!mydb.ExecuteSQL((_bstr_t)str,num)){AfxMessageBox(L"數(shù)據(jù)庫(kù)執(zhí)行錯(cuò)誤"+str);return;} AfxMessageBox(L"數(shù)據(jù)庫(kù)執(zhí)行成功"+str);1.3.3原料出庫(kù)管理窗口設(shè)計(jì)思路和要點(diǎn):原料出庫(kù)操作依據(jù)生產(chǎn)的領(lǐng)料單、現(xiàn)有庫(kù)存等信息,選擇原料的生產(chǎn)日期時(shí)遵循先進(jìn)先出的原則出庫(kù)。原料出庫(kù)的流程圖,如圖4-16所示:生產(chǎn)計(jì)劃生產(chǎn)計(jì)劃領(lǐng)料單原料出庫(kù)操作核實(shí)現(xiàn)有庫(kù)存信息原料請(qǐng)購(gòu)單削減現(xiàn)有庫(kù)存夠不夠圖4-16原料出庫(kù)的流程圖原料出庫(kù)表格(raw_out)包含出庫(kù)日期、原料編碼、出庫(kù)數(shù)量、生產(chǎn)日期等字段,該對(duì)話框類名為CrawOut,設(shè)計(jì)如圖4-17所示:圖4-17原料出庫(kù)列表原料出庫(kù)列表窗口包括一個(gè)列表框(listcontrol),一個(gè)“增加”按鈕、一個(gè)“刪除”按鈕、一個(gè)“修改”按鈕。列表框顯示原料出庫(kù)表的所有字段和數(shù)據(jù),原料出庫(kù)時(shí)點(diǎn)擊“增加”按鈕,調(diào)出增加原料出庫(kù)窗口,設(shè)計(jì)如圖4-18所示:圖4-18原料出庫(kù)窗口原料出庫(kù)表的數(shù)據(jù)需要進(jìn)行修改時(shí),選中一行點(diǎn)擊“修改”按鈕;或者雙擊要修改的行就調(diào)出增加原料出庫(kù)窗口,進(jìn)行修改操作。原料出庫(kù)表的數(shù)據(jù)需要進(jìn)行刪除時(shí),選中一行點(diǎn)擊“刪除”按鈕。原料出庫(kù)管理模塊實(shí)現(xiàn)功能包含在RawOut.cpp、RawOut.h、RawOutAdd.cpp、RawOutAdd.h文件中?!霸黾印薄靶薷摹卑粹o的實(shí)現(xiàn)部分代碼如下。longnum;if(m_nID<=0)str.Format(L"insertintoraw_out(out_date,raw_number,out_number,sc_date,taker,out_person)values('%s','%s',%s,'%s','%s','%s')",out_date,raw_number,m_cOutnumber,scdate,m_ctaker,m_cPerson);//查詢數(shù)據(jù)庫(kù)raw_outElsestr.Format(L"updateraw_outsetout_date='%s',raw_number='%s',out_number=%s,sc_date='%s',taker='%s',out_person='%s'whereout_id=%d",out_date,raw_number,m_cOutnumber,scdate,m_ctaker,m_cPerson,m_nID);if(!mydb.ExecuteSQL((_bstr_t)str,num)){AfxMessageBox(L"數(shù)據(jù)庫(kù)執(zhí)行錯(cuò)誤"+str);return;}AfxMessageBox(L"數(shù)據(jù)庫(kù)執(zhí)行成功"+str);1.3.4采購(gòu)?fù)素浌芾泶翱谠O(shè)計(jì)思路和要點(diǎn):采購(gòu)?fù)素浌芾硪罁?jù)質(zhì)檢員出具的原料不合格報(bào)告信息,倉(cāng)庫(kù)管理員負(fù)責(zé)退貨原料的清點(diǎn),對(duì)所退的原料進(jìn)行退貨操作。。采購(gòu)?fù)素浌芾淼牧鞒虉D,如圖4-19所示:原料檢驗(yàn)報(bào)告原料檢驗(yàn)報(bào)告原料入庫(kù)原料放置不合格區(qū)合格不合格原料的清點(diǎn)所退原料的清點(diǎn)采購(gòu)部通知供應(yīng)商供應(yīng)商提貨倉(cāng)庫(kù)開(kāi)具退貨單圖4-19采購(gòu)?fù)素浌芾淼牧鞒虉D采購(gòu)?fù)素洷砀瘢╮aw_return1)包含供應(yīng)商編號(hào)、供應(yīng)商名稱、原料編號(hào)、退貨的數(shù)量等字段,該對(duì)話框類名為CrawPurreturn,設(shè)計(jì)如圖4-20所示:圖4-20采購(gòu)?fù)素浟斜泶翱诓少?gòu)?fù)素浟斜泶翱诎ㄒ粋€(gè)列表框(listcontrol),一個(gè)“增加”按鈕、一個(gè)“刪除”按鈕、一個(gè)“修改”按鈕。列表框顯示采購(gòu)?fù)素洷淼乃凶侄魏蛿?shù)據(jù),采購(gòu)?fù)素洉r(shí)點(diǎn)擊“增加”按鈕,調(diào)出退貨窗口,設(shè)計(jì)如圖4-21所示:圖4-21采購(gòu)?fù)素洿翱诓少?gòu)?fù)素洷淼臄?shù)據(jù)需要進(jìn)行修改時(shí),選中一行點(diǎn)擊“修改”按鈕;或者雙擊要修改的行就調(diào)出增加采購(gòu)?fù)素洿翱?,進(jìn)行修改操作。采購(gòu)?fù)素洷淼臄?shù)據(jù)需要進(jìn)行刪除時(shí),選中一行點(diǎn)擊“刪除”按鈕。采購(gòu)?fù)素浌芾砟K實(shí)現(xiàn)功能包含在RawPurreturn.cpp、RawPurreturn.h、RawPurreturnAdd.cpp、RawPurreturnAdd.h文件中?!霸黾印薄靶薷摹卑粹o的實(shí)現(xiàn)部分代碼如下。CStringraw_number; CStringstr; str.Format(L"selectraw_numberfromraw_codewhereraw_id=%d",RawID); if(!mydb.SelectSQL((_bstr_t)str)){return;}if(!mydb.IsRecordEOF())//只處理第一條記錄 { mydb.CollectMsg("raw_number",raw_number); } mydb.CloseRecord();//關(guān)閉tb_SystemInfo記錄集 longnum; if(m_nID<=0) str.Format(L"insertintoraw_return1(return_date,gybh,gymc,raw_number,return_number,price,sc_date,in_person)\ values('%s','%s','%s','%s',%s,%s,'%s','%s')",in_date,m_cGybh,m_cGymc,raw_number,m_cNum,m_cPrice,sc_date,m_cperson);//查詢數(shù)據(jù)庫(kù)raw_return1 elsestr.Format(L"updateraw_return1setreturn_date='%s',gybh='%s',gymc='%s',raw_number='%s',return_number=%s,price=%s,sc_date='%s',in_person='%s'wheregy_id=%d",in_date,m_cGybh,m_cGymc,raw_number,m_cNum,m_cPrice,sc_date,m_cperson,m_nID);1.3.5原料退庫(kù)管理窗口設(shè)計(jì)思路和要點(diǎn):原料退庫(kù)操作依據(jù)退庫(kù)申請(qǐng)單、質(zhì)檢員對(duì)退料的檢驗(yàn)合格單等信息,倉(cāng)庫(kù)管理人員清點(diǎn)退庫(kù)的數(shù)量進(jìn)行退庫(kù)操作。生產(chǎn)剩余原料申請(qǐng)復(fù)檢生產(chǎn)剩余原料申請(qǐng)復(fù)檢復(fù)檢不合格報(bào)廢處理復(fù)檢合格原料退庫(kù)申請(qǐng)審核通過(guò)清點(diǎn)數(shù)量辦理原料退庫(kù)操作核算現(xiàn)有庫(kù)存圖4-22原料退庫(kù)的流程圖原料退庫(kù)表格(raw_return2)包含退庫(kù)日期、原料編碼、退庫(kù)數(shù)量、生產(chǎn)日期等字段,該對(duì)話框類名為CrawWreturn,設(shè)計(jì)如圖4-23所示:圖4-23原料退庫(kù)列表原料退庫(kù)列表窗口包括一個(gè)列表框(listcontrol),一個(gè)“增加”按鈕、一個(gè)“刪除”按鈕、一個(gè)“修改”按鈕。列表框顯示原料退庫(kù)表的所有字段和數(shù)據(jù),原料退庫(kù)時(shí)點(diǎn)擊“增加”按鈕,調(diào)出增加原料退庫(kù)窗口,設(shè)計(jì)如圖4-24所示:圖4-24原料退庫(kù)窗口原料退庫(kù)表的數(shù)據(jù)需要進(jìn)行修改時(shí),選中一行點(diǎn)擊“修改”按鈕;或者雙擊要修改的行就調(diào)出增加原料退庫(kù)窗口,進(jìn)行修改操作。原料退庫(kù)表的數(shù)據(jù)需要進(jìn)行刪除時(shí),選中一行點(diǎn)擊“刪除”按鈕。原料退庫(kù)管理模塊實(shí)現(xiàn)功能包含在RawWreturn.cpp、RawWreturn.h、RawWreturnAdd.cpp、RawWreturnAdd.h文件中。“增加”“修改”按鈕的實(shí)現(xiàn)部分代碼如下。CStringstr; str.Format(L"selectraw_numberfromraw_codewhereraw_id=%d",RawID); if(!mydb.SelectSQL((_bstr_t)str)){return;}if(!mydb.IsRecordEOF())//只處理第一條記錄 { mydb.CollectMsg("raw_number",raw_number); } mydb.CloseRecord();//關(guān)閉tb_SystemInfo記錄集 CStringscdate;//取得生產(chǎn)日期 m_comboDate.GetLBText(m_comboDate.GetCurSel(),scdate); longnum; if(m_nID<=0) str.Format(L"insertintoraw_return2(return_date,raw_number,return_number,sc_date,return_person,out_person)、 values('%s','%s','%s','%s','%s','%s')",out_date,raw_number,m_cNum,scdate,m_cRperson,m_cOutperson);//查詢數(shù)據(jù)庫(kù)raw_return2 elsestr.Format(L"updateraw_return2setreturn_date='%s',raw_number='%s',return_number='%s',sc_date='%s',return_person='%s',out_person='%s'whereret_id=%d",out_date,raw_number,m_cNum,scdate,m_cRperson,m_cOutperson,m_nID);1.3.6原料自動(dòng)采購(gòu)管理窗口設(shè)計(jì)思路和要點(diǎn):原料自動(dòng)采購(gòu)操作依據(jù)最低庫(kù)存、最高庫(kù)存、現(xiàn)有庫(kù)存等信息,自動(dòng)生成原料自動(dòng)采購(gòu)信息,為下一步做原料的采購(gòu)申請(qǐng)單作為根據(jù),合理控制好庫(kù)存的庫(kù)容,一方面控制庫(kù)存不能高于最高庫(kù)存。原料自動(dòng)采購(gòu)的流程圖,如圖4-25所示:最低庫(kù)存最低庫(kù)存最高庫(kù)存現(xiàn)有庫(kù)存自動(dòng)計(jì)算出自動(dòng)采購(gòu)數(shù)量作為申請(qǐng)采購(gòu)依據(jù)圖4-25原料自動(dòng)采購(gòu)的流程圖計(jì)算公式:(最低庫(kù)存+最高庫(kù)存)/2-現(xiàn)有庫(kù)存。預(yù)警:倉(cāng)庫(kù)管理人員要求進(jìn)行庫(kù)存量核算時(shí)發(fā)現(xiàn)原料庫(kù)存低于“最低庫(kù)存”時(shí)對(duì)相關(guān)部門進(jìn)行的信息通報(bào)。報(bào)警:倉(cāng)庫(kù)管理人員要求進(jìn)行庫(kù)存量核算時(shí)發(fā)現(xiàn)原材料、成品低于“安全庫(kù)存”時(shí)對(duì)相關(guān)部門進(jìn)行的信息通報(bào)。原料自動(dòng)采購(gòu)管理模塊設(shè)計(jì)如圖4-26所示:圖4-26原料自動(dòng)采購(gòu)窗口原料自動(dòng)采購(gòu)管理模塊實(shí)現(xiàn)功能包含在AutoBuy.cpp、AutoBuy.h文件中。實(shí)現(xiàn)部分代碼如下。CStringstr; longnum; str.Format(L"deletefromraw_wantbuy");//刪除之前生成自動(dòng)采購(gòu)項(xiàng) if(!mydb.ExecuteSQL((_bstr_t)str,num)){AfxMessageBox(L"數(shù)據(jù)庫(kù)執(zhí)行錯(cuò)誤"+str);returnfalse;} COleDateTimetime=COleDateTime::GetCurrentTime(); CStringsTime=time.Format(L"%Y-%m-%d"); //自動(dòng)生成采購(gòu)記錄 str.Format(L"insertintoraw_wantbuy(dapart,raw_number,buy_number,buy_date,buy_person)\ select'采購(gòu)部',c.raw_number,(c.high_number+c.low_number)/2-now,'%s','張三'fromv_Rawv,raw_codecwherev.raw_number=c.raw_numberandv.now<c.low_number",sTime);// if(!mydb.ExecuteSQL((_bstr_t)str,num)){AfxMessageBox(L"數(shù)據(jù)庫(kù)執(zhí)行錯(cuò)誤"+str);returnfalse; InitFields(); LoadData();//載入ListCtrl數(shù)據(jù)NVR1.3.7原料請(qǐng)購(gòu)單管理窗口設(shè)計(jì)思路和要點(diǎn):原料請(qǐng)購(gòu)單依據(jù)生產(chǎn)的計(jì)劃表、現(xiàn)有庫(kù)存、原料自動(dòng)采購(gòu)等信息,填寫(xiě)原料請(qǐng)購(gòu)單。原料請(qǐng)購(gòu)單的流程圖,如圖4-27所示:生產(chǎn)計(jì)劃表生產(chǎn)計(jì)劃表核算原料的用量現(xiàn)有庫(kù)存原料自動(dòng)采購(gòu)表依據(jù)上面數(shù)量制定合理采購(gòu)數(shù)量生成原料請(qǐng)購(gòu)單采購(gòu)部門實(shí)施采購(gòu)圖4-27原料請(qǐng)購(gòu)單的流程圖原料請(qǐng)購(gòu)單表格(raw_buy)包含申請(qǐng)部門、原料編碼、原料名稱、申請(qǐng)數(shù)量、需求日期等字段,該對(duì)話框類名為CrawBuy,設(shè)計(jì)如圖4-28所示:圖4-28原料采購(gòu)列表窗口原料請(qǐng)購(gòu)單列表窗口包括一個(gè)列表框(listcontrol),一個(gè)“增加”按鈕、一個(gè)“刪除”按鈕、一個(gè)“修改”按鈕。列表框顯示原料請(qǐng)購(gòu)單的所有字段和數(shù)據(jù),原料出庫(kù)時(shí)點(diǎn)擊“增加”按鈕,調(diào)出增加原料請(qǐng)購(gòu)單窗口,設(shè)計(jì)如圖4-29所示:圖4-29原料采購(gòu)窗口原料請(qǐng)購(gòu)單表的數(shù)據(jù)需要進(jìn)行修改時(shí),選中一行點(diǎn)擊“修改”按鈕;或者雙擊要修改的行就調(diào)出增加原料采購(gòu)單窗口,進(jìn)行修改操作。原料請(qǐng)購(gòu)單表的數(shù)據(jù)需要進(jìn)行刪除時(shí),選中一行點(diǎn)擊“刪除”按鈕。原料請(qǐng)購(gòu)單管理模塊實(shí)現(xiàn)功能包含在RawBuy.cpp、RawBuy.h、RawBuyAdd.cpp、RawBuyAdd.h文件中?!霸黾印薄靶薷摹卑粹o的實(shí)現(xiàn)部分代碼如下。if(m_nID<=0) str1.Format(L"insertintoraw_buy(dapart,raw_number,buy_num,filing_date,demanded_date,proposer)\ values('%s','%s','%s','%s','%s','%s')",m_cDepart,raw_number,m_cNum,in_date,sc_date,m_cPerson);//查詢數(shù)據(jù)庫(kù)raw_buy elsestr1.Format(L"updateraw_buysetdapart='%s',raw_number='%s',buy_num='%s',filing_date='%s',demanded_date='%s',proposer='%s'whereb_id=%d",m_cDepart,raw_number,m_cNum,in_date,sc_date,m_cPerson,m_nID);1.3.8供貨渠道分析設(shè)計(jì)思路和要點(diǎn):依據(jù)以往發(fā)生過(guò)的數(shù)據(jù)的原料價(jià)格進(jìn)行排序選擇相應(yīng)原料的價(jià)格性價(jià)比最高的供應(yīng)商;依據(jù)到貨的原料的質(zhì)量級(jí)別進(jìn)行排序選擇級(jí)別最高的、性價(jià)比又最優(yōu)的供應(yīng)商;依據(jù)供應(yīng)的原料的供貨周期選擇用時(shí)最短的供應(yīng)商。供貨渠道分析的流程圖,如圖4-30所示:選擇原料名稱選擇原料名稱選擇一段時(shí)間按原料價(jià)格對(duì)比按質(zhì)量級(jí)別對(duì)比按供貨周期級(jí)別對(duì)比選擇性價(jià)比最高的供應(yīng)商選擇質(zhì)量最優(yōu)的供應(yīng)商選擇供貨周期最短的供應(yīng)商圖4-30供貨渠道分析的流程圖某種原料在指定一段時(shí)間內(nèi)按原料價(jià)格進(jìn)行排序,來(lái)回切換排序按鈕實(shí)現(xiàn)升降序切換顯示,顯示如圖4-31所示:圖4-31按價(jià)格排序圖某種原料在指定一段時(shí)間內(nèi)按質(zhì)量級(jí)別進(jìn)行排序,來(lái)回切換排序按鈕實(shí)現(xiàn)升降序切換顯示,顯示如圖4-32所示:圖4-32按質(zhì)量級(jí)別排序圖某種原料在指定一段時(shí)間內(nèi)按供貨周期進(jìn)行排序,來(lái)回切換排序按鈕實(shí)現(xiàn)升降序切換顯示顯示如圖4-33所示:圖4-33按供貨周期排序圖6.供貨渠道分析窗口包括一個(gè)列表框(listcontrol),一個(gè)“按價(jià)格排序”按鈕、一個(gè)“按質(zhì)量級(jí)別排序”按鈕、一個(gè)“按供貨周期排序”按鈕。7.供貨渠道分析管理模塊實(shí)現(xiàn)功能包含在RawSupplyc.cpp、RawSupplyc.h文件中。8.“按價(jià)格排序”“按質(zhì)量級(jí)別排序”“按供貨周期排序”按鈕的實(shí)現(xiàn)部分代碼如下。m_cSortField=L"price"; if(m_cOrder==L"ASC")m_cOrder=L"DESC"; elsem_cOrder=L"ASC";str.Format(L"selectc.Raw_Number,c.Raw_Name,i.gybh,i.gymc,i.price,i.quality,i.leadtimefromraw_ini,raw_Codecwherec.Raw_Number=i.Raw_Number"); if(raw_number!=L"") { str.Format(L"%sandi.raw_number='%s'",str,raw_number); } str.Format(L"%sandin_date>='%s'",str,date1); str.Format(L"%sandin_date<='%s'",str,date2); //排序 str.Format(L"%sorderby%s%s",str,m_cSortField,m_cOrder);1.4查詢模塊查詢統(tǒng)計(jì)模塊主要完成的功能有:庫(kù)存報(bào)警管理臨近保質(zhì)期報(bào)警管理原料入庫(kù)列表查詢?cè)铣鰩?kù)列表查詢采購(gòu)?fù)素浟斜聿樵冊(cè)贤藥?kù)列表查詢現(xiàn)有庫(kù)存查詢?cè)险?qǐng)購(gòu)單列表查詢1.4.1庫(kù)存報(bào)警管理設(shè)計(jì)思路和要點(diǎn):為避免因訂單、生產(chǎn)作業(yè)、保管等因素疏忽引起的庫(kù)存不足或是庫(kù)存過(guò)剩;為確保生產(chǎn)的正常進(jìn)行;為能及時(shí)向客戶方提供產(chǎn)品。分為按低于“最低庫(kù)存”查詢、按高于“最高庫(kù)存”查詢兩方面查詢,從而對(duì)庫(kù)存狀況提前預(yù)警和報(bào)警,便于及時(shí)了解庫(kù)容情況。2、原料庫(kù)存報(bào)警管理的流程圖,如圖4-34所示:現(xiàn)有數(shù)據(jù)現(xiàn)有數(shù)據(jù)制定原料最高最低庫(kù)存?zhèn)}庫(kù)及時(shí)準(zhǔn)確錄入數(shù)據(jù)一段時(shí)間使用情況調(diào)整安全庫(kù)存提出《安全庫(kù)存原變更表》領(lǐng)導(dǎo)批準(zhǔn)更改原料代碼表圖4-34原料庫(kù)存報(bào)警管理的流程圖3、按低于“最低庫(kù)存”查詢?cè)O(shè)計(jì)思路與要點(diǎn):低于“最低庫(kù)存”就有可能形成短缺,影響正常生產(chǎn)或銷售活動(dòng)。要求進(jìn)行庫(kù)存量核算時(shí)發(fā)現(xiàn)原料低于“最低庫(kù)存”時(shí)對(duì)相關(guān)部門進(jìn)行的信息通報(bào)。通過(guò)此功能,可能了解整個(gè)倉(cāng)庫(kù)最低庫(kù)存情況,及時(shí)補(bǔ)充原料,以免因低于此數(shù)據(jù)造成無(wú)法正常生產(chǎn)供應(yīng)的情況發(fā)生。設(shè)計(jì)如圖4-35所示:圖4-35原料自動(dòng)報(bào)警窗口4、按高于“最高庫(kù)存”查詢?cè)O(shè)計(jì)思路與要點(diǎn):低于“最高庫(kù)存”就有可能形成積壓庫(kù)存,浪費(fèi)原料成本。要求進(jìn)行庫(kù)存量核算時(shí)發(fā)現(xiàn)原料高于“最高庫(kù)存”時(shí)對(duì)相關(guān)部門進(jìn)行的信息通報(bào)。設(shè)計(jì)如圖4-36所示:圖4-36原料自動(dòng)報(bào)警窗口5、原料庫(kù)存報(bào)警管理模塊實(shí)現(xiàn)功能包含在RawStockAlarm.cpp、RawStockAlarm.h、文件中。6、實(shí)現(xiàn)部分代碼如下。str.Format(L"selectc.*,r.nowfromraw_codec,v_Rawrwherer.Raw_Number=c.Raw_Number"); if(flag==1)str.Format(L"%sandnow>high_number",str); if(flag==2)str.Format(L"%sandnow<low_number",str);1.4.2臨近保質(zhì)期報(bào)警管理設(shè)計(jì)思路和要點(diǎn):為進(jìn)一步加強(qiáng)流通環(huán)節(jié)食品安全,臨近保質(zhì)期食品的經(jīng)營(yíng)管理,有效防止和控制食品安全隱患,按臨近保質(zhì)期多少天對(duì)原料進(jìn)行查詢,及時(shí)了解庫(kù)存的原料臨近保質(zhì)期情況,便于庫(kù)房管理,及時(shí)處理滯銷原料,達(dá)到降低庫(kù)存成本的同時(shí),降低原料的損耗。截止日期當(dāng)前日期截止日期當(dāng)前日期臨近保質(zhì)期天數(shù)臨近保質(zhì)期的原料圖4-37臨近保質(zhì)期報(bào)警管理的流程圖3、臨近保質(zhì)期報(bào)警頁(yè)面顯示如圖4-38所示:圖4-38臨近保質(zhì)期報(bào)警窗口實(shí)現(xiàn)過(guò)程:截止日期=生產(chǎn)日期+保質(zhì)期,截止日期-當(dāng)前日期<=臨近保質(zhì)期的天數(shù)。臨近保質(zhì)期報(bào)警管理模塊實(shí)現(xiàn)功能包含在RawEXP.cpp、RawEXP.h、文件中。實(shí)現(xiàn)部分代碼如下。str0.Format(L"selecti.*,DATEADD(day,time,sc_Date)asDateExp,c.Raw_Namefromraw_ini,raw_Codec\ wherec.Raw_Number=i.Raw_Number"); str.Format(L"selectt.*,DATEDIFF(day,getdate(),DateExp)asdaysfrom(%s)twhereDATEADD(day,-%s,DateExp)<getdate()",str0,m_cTime);1.4.3原料入庫(kù)列表查詢1、設(shè)計(jì)思路和要點(diǎn):從原料名稱、日期這兩方面查詢,從而對(duì)入庫(kù)信息進(jìn)行查詢,輸入要查詢的原料名稱、入庫(kù)的起始日期和截止日期為查詢條件,符合一個(gè)條件或兩者條件的入庫(kù)信息顯示出來(lái)。2、原料入庫(kù)列表查詢的流程圖,如圖4-39所示:開(kāi)始開(kāi)始輸入查詢條件查找物資判斷信息正確顯示查詢結(jié)果重新輸入查詢條件是否圖4-39原料入庫(kù)列表查詢的流程圖3、臨近保質(zhì)期報(bào)警頁(yè)面顯示如圖4-40所示:圖4-40原料入庫(kù)列表查詢窗口原料入庫(kù)列表查詢模塊實(shí)現(xiàn)功能包含在RawInQuery.cpp、RawInQuery.h、文件中。實(shí)現(xiàn)部分代碼如下。str.Format(L"selecti.*,c.Raw_Number,c.Raw_Namefromraw_ini,raw_Codecwherec.Raw_Number=i.Raw_Number"); if(raw_number!=L"") { str.Format(L"%sandi.raw_number='%s'",str,raw_number); } str.Format(L"%sandin_date>='%s'",str,date1); str.Format(L"%sandin_date<='%s'",str,date2);1.4.4原料出庫(kù)列表查詢?cè)O(shè)計(jì)思路和要點(diǎn):從原料名稱、日期這兩方面查詢,從而對(duì)出庫(kù)信息進(jìn)行查詢,輸入要查詢的原料名稱、出庫(kù)的起始日期和截止日期為查詢條件,符合一個(gè)條件或兩者條件的出庫(kù)信息顯示出來(lái)。3、原料出庫(kù)列表查詢的流程圖,同原料入庫(kù)列表查詢的流程圖原料出庫(kù)列表查詢頁(yè)面顯示如圖4-41所示:圖4-41原料出庫(kù)列表查詢窗口原料出庫(kù)列表查詢模塊實(shí)現(xiàn)功能包含在RawOutQuery.cpp、RawOutQuery.h、文件中。實(shí)現(xiàn)部分代碼如下。CStringdate1=m_timeDate1.Format(L"%Y-%m-%d"); CStringdate2=m_timeDate2.Format(L"%Y-%m-%d"); str.Format(L"selecto.*,c.Raw_Number,c.Raw_Namefromraw_codec,raw_outowhereo.Raw_Number=c.Raw_Number"); if(raw_number!=L"") { str.Format(L"%sando.raw_number='%s'",str,raw_number); } str.Format(L"%sandout_date>='%s'",str,date1); str.Format(L"%sandout_date<='%s'",str,date2);1.4.5采購(gòu)?fù)素浟斜聿樵冊(cè)O(shè)計(jì)思路和要點(diǎn):從原料名稱、日期這兩方面查詢,從而對(duì)采購(gòu)?fù)素浶畔⑦M(jìn)行查詢,輸入要查詢的原料名稱、退貨的起始日期和截止日期為查詢條件,符合一個(gè)條件或兩者條件的采購(gòu)?fù)素浶畔@示出來(lái)。采購(gòu)?fù)素浟斜聿樵冺?yè)面顯示如圖4-42所示:圖4-42采購(gòu)?fù)素浟斜聿樵兇翱诓少?gòu)?fù)素浟斜聿樵兡K實(shí)現(xiàn)功能包含在RawPurreturnQuery.cpp、RawPurreturnQuery.h、文件中。實(shí)現(xiàn)部分代碼如下。CStringdate1=m_timeDate1.Format(L"%Y-%m-%d");

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論