企業(yè)進銷存系統(tǒng)_第1頁
企業(yè)進銷存系統(tǒng)_第2頁
企業(yè)進銷存系統(tǒng)_第3頁
企業(yè)進銷存系統(tǒng)_第4頁
企業(yè)進銷存系統(tǒng)_第5頁
已閱讀5頁,還剩66頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGEPAGEI PAGEIII前言 II一、企業(yè)進銷存管理系統(tǒng)的概述 1二、企業(yè)進銷存系統(tǒng)的系統(tǒng)設計 2(一)、系統(tǒng)功能分析 2(二)、系統(tǒng)功能模塊設計 3三、企業(yè)進銷存管理系統(tǒng)的數據庫設計 3(一)、數據庫需求分析 4(二)、數據庫邏輯結構設計 7(三)、數據庫結構的實現 12四、企業(yè)進銷存管理系統(tǒng)模塊的創(chuàng)建 16(一)、創(chuàng)建公用模塊Module1.bas 16(二)、基本信息設置模塊的創(chuàng)建 181、產品設置窗體的創(chuàng)建 192、產品設置信息添加窗體的創(chuàng)建 223、產品設置信息修改窗體的創(chuàng)建 254、產品設置信息刪除按鈕的創(chuàng)建 26(三)、進貨信息管理模塊的創(chuàng)建 271、訂貨單管理窗體的創(chuàng)建 272、入庫單管理窗體的創(chuàng)建 283、進貨信息查詢窗體的創(chuàng)建 30(四)、生產信息管理模塊的創(chuàng)建 311、配料單信息窗體的創(chuàng)建 312、生產計劃單信息窗體的創(chuàng)建 363、組裝單信息窗體的創(chuàng)建 394、生產信息查詢模塊的創(chuàng)建 45(五)、銷售信息管理模塊的創(chuàng)建 481、訂貨單信息窗體的創(chuàng)建 482、銷售單信息窗體的創(chuàng)建 513、銷售信息查詢窗體的創(chuàng)建 57(六)、庫存信息管理模塊的創(chuàng)建 591、轉倉單窗體的創(chuàng)建 592、產品盤點窗體的創(chuàng)建 60(七)、財務信息管理模塊的創(chuàng)建 611、應收款項窗體的創(chuàng)建 612、應付款項窗體的創(chuàng)建 62(八)、菜單的建立 62五、企業(yè)進銷存管理系統(tǒng)的運行和測試 63(一)、運行 63(二)、測試 631、系統(tǒng)測試方法如圖所示 642、系統(tǒng)測試的步驟 64六、總結 66七、參考資料 67前言在我國,很多商業(yè)企業(yè)是通過一套人工單據流轉程序,來實現信息流對商品流的跟蹤,通過財務庫存資金賬來控制進銷過程;通過倉庫賬來核查物流過程;通過定期盤點對賬來調整賬目和商品的損益。由此造成物流、款流、票據流分離,財務信息滯后實際業(yè)務,所以只有通過盤點才能較準確的了解經營情況。而對各類票據、供銷單位、應收、應付款等信息查找困難,易出差錯,商品進、銷、存數量及金額記錄統(tǒng)計工作量大,不準確,各類經營統(tǒng)計數據嚴重滯后實際業(yè)務需要?,F代商業(yè)的迅猛發(fā)展,對手工管理模式提出了嚴峻挑戰(zhàn)。商品品種日益豐富,流行周期越來越短,企業(yè)活動節(jié)奏加快,調價、削價、移庫各種情況,信息量大、變化加快,賒銷、代銷、折讓、退換等方式頻繁應用,這些都增加經營管理中的結算和統(tǒng)計難度,手工管理難以完全勝任。在現代化大工業(yè)、大生產的組織原則應用于流通領域,更需要用現代化的手段使其管理思想真正得以實現。近幾年來,隨著計算機的發(fā)展與完善,其在商品流通領域中的應用越來越廣泛。因而,用計算機建立一種準確、及時、高效、易于掌握的商品進銷存數據管理系統(tǒng)是非常必要的。PAGE10一、企業(yè)進銷存管理系統(tǒng)的概述企業(yè)生產制造管理的關鍵在于如何規(guī)劃和計劃各種資源在時間、地點、產品之間的合理配備,如何按計劃監(jiān)督責任方對資源的使用情況,如何根據預測和歷史情況為決策者提供更有效地利用資源的分析數據。本系統(tǒng)的主要功能是制定生產/采購計劃、物料需求計算、材料供求分析,核心任務是:降低材料成本;降低庫存成本;縮短生產/采購周期,如何獲得更高的利潤。工業(yè)企業(yè)進銷存系統(tǒng)以企業(yè)管理的計劃和控制職能為核心,提供了生產、銷售、采購、庫管、計劃等實用而豐富的管理功能,具有如下優(yōu)點:具有高度的信息綜合利用效能,可以對工業(yè)企業(yè)的經營管理活動進行分析、預測、決策,進而達到對工業(yè)企業(yè)經營活動過程的全程監(jiān)督和控制的目的;徹底改變了企業(yè)信息重復、混亂、無法共享的現狀,使產、供、銷、客、物、決策等各個部門可以資源共享、信息共享,從而實現了業(yè)務、決策一體化;物流、資金流、信息統(tǒng)一化的良好經營管理模式。本系統(tǒng)是根據工業(yè)企業(yè)的生產過程,控制生產過程中的材料消耗、產品銷售、銷售成本等數據,具體管理范圍包括材料采購、材料庫存、生產計劃、生產控制、物料需求、產品購進、產品銷售、產品產出等。本系統(tǒng)前臺開發(fā)工具采用中文版VisualBasic6.0,后臺數據庫服務器采用SQLServer2000;運行環(huán)境為Windows9x、Windows98、Windows2000、WindowsNT或WindowsXP。二、企業(yè)進銷存系統(tǒng)的系統(tǒng)設計(一)、系統(tǒng)功能分析系統(tǒng)開發(fā)的總體任務是實現各種信息的系統(tǒng)化、規(guī)范化和自動化。系統(tǒng)功能分析是在系統(tǒng)開發(fā)的總體任務的基礎上完成。本系統(tǒng)需要完成功能主要有:1、基本信息的管理,包括產品設置、產品類別設置、供應商設置、客戶設置、業(yè)務員類別設置、業(yè)務員設置、倉庫設置等。2、進貨信息的管理,包括訂貨單的管理、入庫單的管理以及進貨信息的查詢等。3、生產信息的管理,包括配料單信息的管理、生產計劃單信息的管理、產品組裝單信息的管理以及相關信息的查詢等。4、銷售信息管理,包括銷售單的管理以及銷售信息的查詢等。5、庫存信息的管理,包括轉倉單的管理、產品盤點和轉倉信息的查詢等。6、財務信息管理,包括應收信息的管理、應付信息的管理等。(二)、系統(tǒng)功能模塊設計對系統(tǒng)各項功能進行集中、分塊,按照結構化程序設計的要求,我們得到如下所示的系統(tǒng)功能模塊圖。三、企業(yè)進銷存管理系統(tǒng)的數據庫設計數據庫在一個信息管理系統(tǒng)中占有非常重要的地位,數據庫結構設計的好壞將直接對應用系統(tǒng)的效率以及實現的效果產生影響。合理的數據庫結構設計可以提高數據存儲的效率,保證數據的完整和一致。設計數據庫系統(tǒng)時應該首先充分了解用戶各個方面的需求,包括現有的以及將來可能增加的需求。數據庫設計一般包括如下幾個步驟:數據庫需要分析;數據庫邏輯結構設計。(一)、數據庫需求分析用戶的需求具體體現在各種信息的提供、保存、更新和查詢,這就要求數據庫結構能充分滿足各種信息的輸出和輸入。收集基本數據、數據結構以及數據處理的流程,組成一份詳盡的數據字典,為后面的具體設計打下基礎。仔細分析調查有關系統(tǒng)需求的基礎上,我們將得到本系統(tǒng)所處理的數據流程圖。針對商業(yè)企業(yè)業(yè)務的需求,通過對商業(yè)企業(yè)管理工作過程的內容和數據流程分析,設計如下面所示的數據項和數據結構:1、產品類別信息,包括的數據項有:類別編號、類別名稱等。2、產品信息,包括的數據項有:產品編號、產品名稱、計量單位、類別、入庫價格、分銷價格、零售價格、生產廠家、更新日期、備注信息等。3、客戶信息,包括的數據項有:客戶編號、客戶名稱、地址、郵政編碼、電話號碼、公司主頁、電子郵件地址、稅號、銀行帳戶、開戶銀行、聯系人、備注信息等4、供應商信息,包括的數據項有:供應商編號、供應商名稱、地址、郵政編碼、電話號碼、公司主頁、電子郵件地址、稅號、銀行帳戶、開戶銀行、聯系人、備注信息等。5、業(yè)務員類別信息,包括的數據項有:類別編號,類別名稱等。6、業(yè)務員信息,包括的數據項有:業(yè)務員編號、業(yè)務員姓名、類別、電話號碼、家庭住址、身份證號碼、備注信息等。7、倉庫信息,包括的數據項有:倉庫編號、倉庫名稱。8、進貨訂單信息,包括的數據項有:訂貨日期、編號、業(yè)務員、供應商編號、產品編號、數量、單價、折扣比例、總金額、備注信息等。9、入庫單信息,包括的數據項有:入庫日期、編號、業(yè)務員、供應商編號、產品編號、數量、單價、折扣比例、總金額、是否即時付款、是否記帳、預付比例、備注信息等。10、配料單信息,包括的數據項有:配料單編號、設置日期、產品編號、產品名稱、產品計量單位、配料編號、配料名稱、配料計量單位、配料數量、配料總金額、業(yè)務員編號、備注信息等。11、生產計劃信息,包括的數據項有:計劃編號、計劃制定人、計劃制定時間、產品編號、產品名稱、計量單位、生產數量、單價、總金額、計劃起始時間、計劃結束時間、備注信息等。12、銷售出貨單信息,包括的數據項有:銷售日期、編號、業(yè)務員、客戶編號、產品編號、數量、單價、折扣比例、總金額、是否即時付款、是否記帳、預付比例、備注信息等。13、庫存信息,包括的數據項有:更新日期、編號、倉庫編號、產品編號、數量、單價、總金額、備注信息等。14、轉倉信息,包括的數據項有:轉倉日期、編號、業(yè)務員、轉出倉庫編號、轉入倉庫編號、產品編號、數量、總金額、備注信息等。(二)、數據庫邏輯結構設計現在需要將本系統(tǒng)的數據庫概念結構轉化為SQLServer2000數據庫系統(tǒng)所支持的實際數據模型,也就是數據庫的邏輯結構。根據數據庫的需求分析和概念結構設計,設計了名稱為my_factory的數據庫。數據庫由下面多個表組成,各個表的設計結果如下面表格所示。dm_wzlb產品類別表列名數據類型可否為空說明LbcodeCharNotnull產品父類編號LbCharNull產品父類名稱BzCharNull備注信息dm_wz產品信息表列名數據類型可否為空說明DmCharNotnull產品編號McCharNull產品名稱JldwCharNull計量單位LbdmCharNull產品類別編號RkjNumericNull入庫價格FxjNumericNull分銷價格LsjNumericNull零售價格CjCharNull生產廠家YxrqDatetimeNull更新日期BzCharNull備注信息dm_kh客戶信息表列名數據類型可否為空說明DmCharNotnull會員編號McCharNull會員名稱AddrCharNull地址YzbmCharNull郵政編碼TelCharNull聯系電話ItladdCharNull公司主頁YwmanCharNull聯系人EmailCharNull聯系人電子郵件地址Sui_noCharNull稅號Bank_noCharNull銀行帳號BankCharNull開戶銀行LbcodeCharNull會員類別編號Total_jeNumericNull累計消費金額BzCharNull備注信息dm_gf供應商信息表列名數據類型可否為空說明DmCharNotnull供應商編號McCharNull供應商名稱AddrCharNull地址YzbmCharNull郵政編碼TelCharNull聯系電話ItladdCharNull公司主頁EmailCharNull聯系人電子郵件Sui_noCharNull稅號Bank_noCharNull銀行帳號BankCharNull開戶銀行YwmanCharNull聯系人BzCharNull備注信息dm_ywylb業(yè)務員類別表列名數據類型可否為空說明LbcodeCharNotnull類別編號LbCharNull類別名稱BzCharNull備注信息dm_ywy業(yè)務員表列名數據類型可否為空說明DmCharNotnull業(yè)務員編號McCharNull業(yè)務員姓名LbCharNull類別TelCharNull聯系電話AddrCharNull家庭住址SfzCharNull身份證號碼LbcodeCharNull類別編號BzCharNull備注信息dm_ck倉庫表列名數據類型可否為空說明DmCharNotnull倉庫編號McCharNull倉庫名稱BzCharNull備注信息dh進貨訂單表列名數據類型可否為空說明In_dateDatetimeNotnull訂貨日期YwmanCharNull業(yè)務員Dh_noCharNull訂貨單編號GfdmCharNull供應商編號WzdmCharNull產品編號SlNumericNull數量In_danjNumericNull訂貨單價I_zkNumericNull折扣I_zkeNumericNull總金額BzCharNull備注信息inh入庫單表列名數據類型可否為空說明In_dateDatetimeNotnull入庫日期YwmanCharNull業(yè)務員Inh_noCharNull入庫單編號GfdmCharNull供應商編碼CkdmCharNull倉庫編號WzdmCharNull產品編號SlNumericNull數量In_danjNumericNull單價I_zkNumericNull折扣I_zkeNumericNull總金額JsfkCharNull是否即時付款JzCharNull是否記帳YfNumericNull預付比例BzCharNull備注信息Bz1CharNull入庫方式(采購、生產等)xsdh銷售訂單表列名數據類型可否為空說明Out_dateDatetimeNotnull銷售訂貨日期YwmanCharNull業(yè)務員Xsdh_noCharNull銷售訂貨單編號KhdmCharNull客戶編號WzdmCharNull商品編號SlNumericNull數量Out_danjNumericNull銷售訂貨單價O_zkNumericNull折扣O_zkeNumericNull總金額BzCharNull備注信息outh銷售單表列名數據類型可否為空說明Out_dateDatetimeNotnull銷售日期YwmanCharNull業(yè)務員Outh_noCharNull銷售單編號KhdmCharNull客戶編號CkdmCharNull倉庫編號WzdmCharNull產品編號SlNumericNull數量Out_danjNumericNull單價O_zkNumericNull折扣O_zkeNumericNull總金額JsfkCharNull是否即時付款JzCharNull是否記帳YfNumericNull預付比例BzCharNull備注信息Bz1CharNull出庫方式(銷售、組裝等)kucun庫存表列名數據類型可否為空說明Update_dateDatetimeNotnull更新日期Kucun_noCharNull庫存編號CkdmCharNull倉庫編號WzdmCharNull產品編號SlNumericNull數量Total_jeNumericNull總金額zc轉倉單表列名數據類型可否為空說明Zc_noCharNotnull轉倉單編號Zc_dateDatetimeNull轉倉日期YwmanCharNull業(yè)務員O_ckdmCharNull轉出倉庫編號I_ckdmCharNull轉入倉庫編號WzdmCharNull產品編號SlNumericNull數量Total_jeNumericNull總金額BzCharNull備注信息mate配料單表列名數據類型可否為空說明M_noCharNotnull配料單編號M_dateDatetimeNull設置日期Wzdm1CharNull產品編號Wzmc1CharNull產品名稱Jldw1CharNull計量單位Wzdm2CharNull配料產品編號Wzmc2CharNull配料產品名稱Jldw2CharNull配料計量單位Sl2NumericNull配料數量In_djNumericNull配料價格JineNumericNull配料總金額YwdmCharNull業(yè)務員編號BzCharNull備注信息plang生產計劃表列名數據類型可否為空說明Pl_noCharNotnull生產計劃編號Pl_manCharNull業(yè)務員編號Pl_dateDatetimeNull制定日期DmCharNull產品編號McCharNull產品名稱JldwCharNull計量單位Pl_slNumericNull生產數量DjNumericNull生產價格JineNumericNull總金額Cp_dateDatetimeNull計劃開始日期St_dateDatetimeNull計劃結束日期BzCharNull備注信息(三)、數據庫結構的實現利用SQL2000數據庫系統(tǒng)中的查詢分析實現數據庫的邏輯結構,其表格代碼如下:‘判斷是否存在同名的數據庫,存在就刪除同名的數據庫IFEXISTS(SELECTnameFROMmaster.dbo.sysdatabasesWHEREname=N’My_Factory’) DROPDATABASE[My_Factory]GO‘創(chuàng)建訂貨單表CREATETABLE[dbo].[dh]( [in_date][datetime]NULL, [ywman][char](8)COLLATEChinese_PRC_CI_ASNULL, [dh_no][char](8)COLLATEChinese_PRC_CI_ASNOTNULL, [gfdm][char](8)COLLATEChinese_PRC_CI_ASNULL, [wzdm][char](30)COLLATEChinese_PRC_CI_ASNOTNULL, [sl][numeric](10,0)NOTNULL, [in_danj][numeric](12,2)NULL, [I_zk][numeric](5,0)NULL, [I_zke][numeric](12,2)NULL, [bz][char](100)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]GO‘創(chuàng)建倉庫表CREATETABLE[dbo].[dm_ck]( [dm][char](6)COLLATEChinese_PRC_CI_ASNOTNULL, [mc][char](40)COLLATEChinese_PRC_CI_ASNULL, [bz][char](255)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]GO‘創(chuàng)建供應商信息表CREATETABLE[dbo].[dm_gf]( [dm][char](8)COLLATEChinese_PRC_CI_ASNOTNULL, [mc][char](40)COLLATEChinese_PRC_CI_ASNULL, [addr][char](40)COLLATEChinese_PRC_CI_ASNULL, [yzbm][char](6)COLLATEChinese_PRC_CI_ASNULL, [tel][char](40)COLLATEChinese_PRC_CI_ASNULL, [itladd][char](50)COLLATEChinese_PRC_CI_ASNULL, [email][char](50)COLLATEChinese_PRC_CI_ASNULL, [sui_no][char](20)COLLATEChinese_PRC_CI_ASNULL, [bank_no][char](20)COLLATEChinese_PRC_CI_ASNULL, [bank][char](30)COLLATEChinese_PRC_CI_ASNULL, [ywman][char](8)COLLATEChinese_PRC_CI_ASNULL, [bz][char](255)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]GO‘創(chuàng)建客戶信息表CREATETABLE[dbo].[dm_kh]( [dm][char](8)COLLATEChinese_PRC_CI_ASNOTNULL, [mc][char](40)COLLATEChinese_PRC_CI_ASNULL, [addr][char](40)COLLATEChinese_PRC_CI_ASNULL, [yzbm][char](6)COLLATEChinese_PRC_CI_ASNULL, [tel][char](40)COLLATEChinese_PRC_CI_ASNULL, [itladd][char](50)COLLATEChinese_PRC_CI_ASNULL, [ywman][char](8)COLLATEChinese_PRC_CI_ASNULL, [email][char](50)COLLATEChinese_PRC_CI_ASNULL, [sui_no][char](20)COLLATEChinese_PRC_CI_ASNULL, [bank_no][char](30)COLLATEChinese_PRC_CI_ASNULL, [bank][char](30)COLLATEChinese_PRC_CI_ASNULL, [card_no][char](13)COLLATEChinese_PRC_CI_ASNULL, [mb_reb][numeric](12,2)NULL, [bz][char](255)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]GO‘創(chuàng)建商品信息表CREATETABLE[dbo].[dm_wz]( [dm][char](30)COLLATEChinese_PRC_CI_ASNOTNULL, [mc][char](40)COLLATEChinese_PRC_CI_ASNULL, [jldw][char](8)COLLATEChinese_PRC_CI_ASNULL, [lb][char](30)COLLATEChinese_PRC_CI_ASNULL, [rkj][numeric](12,2)NULL, [fxj][numeric](12,2)NULL, [lsj][numeric](12,2)NULL, [cj][char](20)COLLATEChinese_PRC_CI_ASNULL, [yxrq][datetime]NULL, [bz][char](255)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]GO‘創(chuàng)建商品類別表CREATETABLE[dbo].[dm_wzlb]( [lbcode][char](30)COLLATEChinese_PRC_CI_ASNULL, [lb][char](30)COLLATEChinese_PRC_CI_ASNULL, [bz][char](255)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]GO‘創(chuàng)建業(yè)務員信息表CREATETABLE[dbo].[dm_ywy]( [dm][char](6)COLLATEChinese_PRC_CI_ASNOTNULL, [mc][char](20)COLLATEChinese_PRC_CI_ASNULL, [lb][char](30)COLLATEChinese_PRC_CI_ASNULL, [tel][char](40)COLLATEChinese_PRC_CI_ASNULL, [addr][char](40)COLLATEChinese_PRC_CI_ASNULL, [sfz][char](18)COLLATEChinese_PRC_CI_ASNULL, [lbcode][char](30)COLLATEChinese_PRC_CI_ASNULL, [bz][char](255)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]GO‘創(chuàng)建業(yè)務員類別表CREATETABLE[dbo].[dm_ywylb]( [lbcode][char](30)COLLATEChinese_PRC_CI_ASNOTNULL, [lb][char](30)COLLATEChinese_PRC_CI_ASNULL, [bz][char](255)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]GO‘創(chuàng)建入庫單表CREATETABLE[dbo].[inh]( [in_date][datetime]NULL, [ywman][char](8)COLLATEChinese_PRC_CI_ASNULL, [inh_no][char](14)COLLATEChinese_PRC_CI_ASNOTNULL, [gfdm][char](8)COLLATEChinese_PRC_CI_ASNULL, [ckdm][char](6)COLLATEChinese_PRC_CI_ASNULL, [wzdm][char](30)COLLATEChinese_PRC_CI_ASNOTNULL, [sl][numeric](10,0)NOTNULL, [in_danj][numeric](12,2)NULL, [I_zk][numeric](5,0)NULL, [I_zke][numeric](12,2)NULL, [jsfk][char](2)COLLATEChinese_PRC_CI_ASNULL, [jz][char](2)COLLATEChinese_PRC_CI_ASNULL, [yf][numeric](5,0)NULL, [bz][char](100)COLLATEChinese_PRC_CI_ASNULL, [bz1][char](10)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]GO‘創(chuàng)建庫存信息表CREATETABLE[dbo].[kucun]( [update_date][datetime]NULL, [kucun_no][char](14)COLLATEChinese_PRC_CI_ASNOTNULL, [ckdm][char](6)COLLATEChinese_PRC_CI_ASNULL, [wzdm][char](30)COLLATEChinese_PRC_CI_ASNOTNULL, [sl][numeric](10,0)NOTNULL, [total_je][numeric](12,2)NULL)ON[PRIMARY]GO‘創(chuàng)建配料單表CREATETABLE[dbo].[mate]( [m_no][char](8)COLLATEChinese_PRC_CI_ASNULL, [m_date][datetime]NULL, [wzdm1][char](30)COLLATEChinese_PRC_CI_ASNULL, [wzmc1][char](40)COLLATEChinese_PRC_CI_ASNULL, [jldw1][char](4)COLLATEChinese_PRC_CI_ASNULL, [wzdm2][char](30)COLLATEChinese_PRC_CI_ASNULL, [wzmc2][char](40)COLLATEChinese_PRC_CI_ASNULL, [jldw2][char](4)COLLATEChinese_PRC_CI_ASNULL, [sl2][numeric](18,2)NULL, [in_dj][numeric](18,2)NULL, [jine][numeric](18,2)NULL, [ywdm][char](8)COLLATEChinese_PRC_CI_ASNULL, [bz][char](50)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]GO‘創(chuàng)建出貨單表CREATETABLE[dbo].[outh]( [out_date][datetime]NULL, [ywman][char](8)COLLATEChinese_PRC_CI_ASNULL, [outh_no][char](14)COLLATEChinese_PRC_CI_ASNOTNULL, [khdm][char](8)COLLATEChinese_PRC_CI_ASNULL, [ckdm][char](6)COLLATEChinese_PRC_CI_ASNULL, [wzdm][char](30)COLLATEChinese_PRC_CI_ASNOTNULL, [sl][numeric](10,0)NOTNULL, [out_danj][numeric](12,2)NULL, [o_zk][numeric](5,0)NULL, [o_zke][numeric](12,2)NULL, [jsfk][char](2)COLLATEChinese_PRC_CI_ASNULL, [jz][char](2)COLLATEChinese_PRC_CI_ASNULL, [yf][numeric](5,0)NULL, [bz][char](100)COLLATEChinese_PRC_CI_ASNULL, [bz1][char](100)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]GO‘創(chuàng)建生產計劃表CREATETABLE[dbo].[plang]( [pl_no][char](8)COLLATEChinese_PRC_CI_ASNOTNULL, [pl_man][char](8)COLLATEChinese_PRC_CI_ASNULL, [pl_date][datetime]NULL, [dm][char](30)COLLATEChinese_PRC_CI_ASNOTNULL, [mc][char](40)COLLATEChinese_PRC_CI_ASNULL, [jldw][char](8)COLLATEChinese_PRC_CI_ASNULL, [pl_sl][numeric](12,2)NULL, [dj][numeric](12,2)NULL, [jine][numeric](12,2)NULL, [cp_date][datetime]NULL, [st_date][datetime]NULL, [bz][text]COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]TEXTIMAGE_ON[PRIMARY]GO‘創(chuàng)建銷售訂貨表CREATETABLE[dbo].[xsdh]( [out_date][datetime]NULL, [ywman][char](8)COLLATEChinese_PRC_CI_ASNULL, [xsdh_no][char](8)COLLATEChinese_PRC_CI_ASNOTNULL, [khdm][char](8)COLLATEChinese_PRC_CI_ASNULL, [wzdm][char](30)COLLATEChinese_PRC_CI_ASNOTNULL, [sl][numeric](10,0)NOTNULL, [out_danj][numeric](12,2)NULL, [o_zk][numeric](5,0)NULL, [o_zke][numeric](12,2)NULL, [bz][char](100)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]GO‘創(chuàng)建轉倉信息表CREATETABLE[dbo].[zc]( [zc_no][char](8)COLLATEChinese_PRC_CI_ASNOTNULL, [zc_date][datetime]NULL, [ywman][char](8)COLLATEChinese_PRC_CI_ASNULL, [o_ckdm][char](6)COLLATEChinese_PRC_CI_ASNULL, [I_ckdm][char](6)COLLATEChinese_PRC_CI_ASNULL, [wzdm][char](30)COLLATEChinese_PRC_CI_ASNOTNULL, [sl][numeric](10,0)NOTNULL, [total_je][numeric](12,2)NULL, [bz][char](100)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]GO四、企業(yè)進銷存管理系統(tǒng)模塊的創(chuàng)建(一)、創(chuàng)建公用模塊Module1.bas由于系統(tǒng)中各個功能模塊都將頻繁使用數據庫中的各種數據,因此需要一個公共的數據操作函數,用以執(zhí)行各種SQL語句。添加函數ExecuteSQL,代碼如下:PublicFunctionExecuteSQL(ByValSQL_AsString,MsgStringAsString)_AsADODB.Recordset'執(zhí)行SQL語句,并返回記錄集對象'聲明一個連接DimcnnAsADODB.Connection'聲明一個數據集對象DimrstAsADODB.RecordsetDimsTokens()AsString'異常處理OnErrorGoToExecuteSQL_Error'用Split函數產生一個包含各個子串的數組sTokens=Split(SQL)'打開連接Setcnn=NewADODB.Connectioncnn.OpenConnectStringIfInStr("INSERT,DELETE,UPDATE,EXECUTE",_UCase$(sTokens(0)))Then'執(zhí)行查詢語句cnn.Execute(SQL)MsgString=sTokens(0)&_"querysuccessful"ElseSetrst=NewADODB.Recordsetrst.OpenTrim$(SQL),cnn,_adOpenKeyset,_adLockOptimistic'rst.MoveLast'getRecordCount'返回記錄集對象SetExecuteSQL=rstMsgString="查詢到"&rst.RecordCount&_"條記錄"EndIfExecuteSQL_Exit:Setrst=NothingSetcnn=NothingExitFunctionExecuteSQL_Error:MsgString="查詢錯誤:"&_Err.DescriptionResumeExecuteSQL_ExitEndFunction在EexecuteSQL函數中使用了ConnectString函數,這個函數用來連接數據庫。PublicFunctionConnectString()_AsString'返回一個數據庫連接ConnectString="FileDSN=my_factory.dsn;UID=sa;PWD="EndFunction在錄入有關信息時,需要回車來進入下一個文本框,這樣對用戶非常方便。所有的功能模塊都需要這個函數,所以也將它放在在公用模塊中。PublicSubEnterToTab(KeyascAsInteger)'判斷是否為回車鍵IfKeyasc=13Then'轉換成Tab鍵SendKeys"{TAB}"EndIfEndSub添加全局變量,用來記錄各個功能模塊的讀寫狀態(tài)。PublicgintWZSmodeAsInteger'forWZsetupPublicgintGFSmodeAsInteger'forGFsetupPublicgintKHSmodeAsInteger'forKHsetupPublicgintYWYLBSmodeAsInteger'forYWYLBsetupPublicgintYWYSmodeAsInteger'forYWYsetupPublicgintCKSmodeAsInteger'forCKsetupPublicgintWZLBSmodeAsInteger'forWZLBsetupPublicgintWZYSSmodeAsInteger'forWZYSsetupPublicgintDHmodeAsInteger'fordinhuoPublicgintINHmodeAsInteger'forrukuhuoPublicgintXSDHmodeAsInteger'forxiaoshoudingdanPublicgintOUTHmodeAsInteger'forxiaoshoudingdanPublicgintZCmodeAsInteger'forshangpinzhuancangPublicgintGETmodeAsInteger'foryingshouPublicgintOFFERmodeAsInteger'forYINGFUPublicgintPLLISTmodeAsInteger'forPEILIAOLISTPublicgintPLmodeAsInteger'forPEILIAOPublicgintPLANGLISTmodeAsInteger'forplanlistPublicgintPLANGmodeAsInteger'forplan這些全局變量用來記錄是添加狀態(tài)還是修改狀態(tài),賦值1為添加,賦值2為修改。(二)、基本信息設置模塊的創(chuàng)建基本信息設置模塊主要實現如下功能:添加和修改產品信息添加和修改產品類別信息添加和修改客戶信息添加和修改供應商信息添加和修改業(yè)務員類別信息添加和修改業(yè)務員信息添加和修改倉庫信息1、產品設置窗體的創(chuàng)建選擇“基本信息設置/產品設置”菜單,將出現如圖所示的窗體。這個窗體用來顯示產品設置信息,并且可以對各條記錄進行操作。在載入窗體時,將自動顯示所有記錄,代碼如下:PrivateSubForm_Load()ShowTitleShowDataEndSub函數ShowTitle用來顯示表頭,代碼如下:PrivateSubShowTitle()DimiAsIntegerWithmsgList'設置列數目.Cols=11.TextMatrix(0,1)="款號".TextMatrix(0,2)="名稱".TextMatrix(0,3)="單位".TextMatrix(0,4)="類別".TextMatrix(0,5)="入庫價格".TextMatrix(0,6)="分銷價格".TextMatrix(0,7)="零售價格".TextMatrix(0,8)="生產廠家".TextMatrix(0,9)="設置日期".TextMatrix(0,10)="備注信息"'固定表頭.FixedRows=1'設置各列的對齊方式Fori=0To10.ColAlignment(i)=0Nexti'表頭項居中.FillStyle=flexFillRepeat.Col=0.Row=0.RowSel=1.ColSel=.Cols-1.CellAlignment=4'設置單元大小.ColWidth(0)=1000.ColWidth(1)=1000.ColWidth(2)=2000.ColWidth(3)=1000.ColWidth(4)=1000.ColWidth(5)=1000.ColWidth(6)=1000.ColWidth(7)=1000.ColWidth(8)=1000.ColWidth(9)=1000.ColWidth(10)=1000.Row=1EndWithEndSub函數ShowData把各條記錄加到表格中,并顯示出來,代碼如下:PrivateSubShowData()DimjAsIntegerDimiAsIntegerDimMsgTextAsStringSetmrc=ExecuteSQL(txtSQL,MsgText)WithmsgList.Rows=1DoWhileNotmrc.EOF.Rows=.Rows+1Fori=1Tomrc.Fields.CountIfNotIsNull(Trim(mrc.Fields(i-1)))ThenSelectCasemrc.Fields(i-1).TypeCaseadDBDate.TextMatrix(.Rows-1,i)=Format(mrc.Fields(i-1)&"","yyyy-mm-dd")CaseElse.TextMatrix(.Rows-1,i)=mrc.Fields(i-1)&""EndSelectEndIfNextimrc.MoveNextLoopEndWithmrc.CloseEndSub在窗體時顯示時,可以控制窗體中各個控件按照要求的位置顯示??梢栽诖绑w的Resize事件中加入代碼,代碼如下:PrivateSubForm_Resize()IfMe.WindowState<>vbMinimizedAndfMainForm.WindowState<>vbMinimizedThen'邊界處理IfMe.ScaleHeight<10*lblTitle.HeightThenExitSubEndIfIfMe.ScaleWidth<lblTitle.Width+lblTitle.Width/2ThenExitSubEndIf'控制控件的位置lblTitle.Top=lblTitle.HeightlblTitle.Left=(Me.Width-lblTitle.Width)/2msgList.Top=lblTitle.Top+lblTitle.Height+lblTitle.Height/2msgList.Width=Me.ScaleWidth-200msgList.Left=Me.ScaleLeft+100msgList.Height=Me.ScaleHeight-msgList.Top-1500Frame2.Top=msgList.Top+msgList.Height+50Frame2.Left=Me.ScaleWidth/2-3000EndIfEndSub2、產品設置信息添加窗體的創(chuàng)建在產品設置窗體中單擊“添加”按鈕,將出現如圖所示的窗體。載入窗體時,首先根據標志變量判斷狀態(tài),然后決定是添加還是修改,代碼如下:PrivateSubForm_Load()DimintCountAsIntegerDimMsgTextAsStringDimiAsIntegerDimmrccAsADODB.Recordset‘判斷是否添加IfgintWZSmode=1ThenMe.Caption=Me.Caption&"添加"Fori=0To8txtItem(i).Text=""Nexti‘判斷是否修改記錄ElseIfgintWZSmode=2ThenSetmrc=ExecuteSQL(txtSQL,MsgText)Ifmrc.EOF=FalseThenWithmrcForintCount=0To2txtItem(intCount)=.Fields(intCount)NextintCountForintCount=3To8txtItem(intCount)=.Fields(intCount+1)NextintCountEndWithtxtItem(0).Enabled=FalseEndIfMe.Caption=Me.Caption&"修改"EndIf‘添加產品信息類別信息Combo1(1).CleartxtItem(7)=Format(Now,"yyyy-mm-dd")txtItem(7).Enabled=FalsetxtSQL="selectlbfromdm_wzlb"Setmrcc=ExecuteSQL(txtSQL,MsgText)IfNotmrcc.EOFThenDoWhileNotmrcc.EOFCombo1(1).AddItemmrcc.Fields(0)mrcc.MoveNextLoopEndIfmrcc.ClosemblChange=FalseEndSub輸入內容完畢,單擊“保存”按鈕,將首先判斷輸入內容是否滿足要求,然后添加到數據庫中,代碼如下:PrivateSubcmdSave_Click()DimintCountAsIntegerDimsMegAsStringDimMsgTextAsString‘判斷輸入內容是否為空ForintCount=0To7IfTrim(txtItem(intCount)&"")=""ThenSelectCaseintCountCase0sMeg="款號"Case1sMeg="名稱"Case2sMeg="單位"Case3sMeg="入庫價格"Case4sMeg="分銷價格"Case5sMeg="零售價格"Case6sMeg="生產廠家"Case7sMeg="設置日期"EndSelectsMeg=sMeg&"不能為空!"MsgBoxsMeg,vbOKOnly+vbExclamation,"警告"txtItem(intCount).SetFocusExitSubEndIfNextintCount‘判斷是否輸入數字ForintCount=3To5IfNotIsNumeric(Trim(txtItem(intCount)))ThensMeg="產品價格"sMeg=sMeg&"請輸入數字!"MsgBoxsMeg,vbOKOnly+vbExclamation,"警告"txtItem(intCount).SetFocusExitSubEndIfNextintCount'添加判斷是否有相同的ID記錄IfgintWZSmode=1ThentxtSQL="select*fromdm_wzwheredm='"&Trim(txtItem(0))&"'"Setmrc=ExecuteSQL(txtSQL,MsgText)Ifmrc.EOF=FalseThenMsgBox"已經存在此產品編號的記錄!",vbOKOnly+vbExclamation,"警告"txtItem(0).SetFocusExitSubEndIfmrc.CloseEndIf'先刪除已有記錄txtSQL="deletefromdm_wzwheredm='"&Trim(txtItem(0))&"'"Setmrc=ExecuteSQL(txtSQL,MsgText)'再加入新記錄txtSQL="executewz_setup'"ForintCount=0To2txtSQL=txtSQL&Trim(txtItem(intCount))&"','"NextintCounttxtSQL=txtSQL&Trim(Combo1(1))&"','"ForintCount=3To7txtSQL=txtSQL&Trim(txtItem(intCount))&"','"NextintCounttxtSQL=txtSQL&Trim(txtItem(8))&"'"‘執(zhí)行SQL語句Setmrc=ExecuteSQL(txtSQL,MsgText)‘更新窗體IfgintWZSmode=1ThenMsgBox"添加記錄成功!",vbOKOnly+vbExclamation,"添加記錄"ForintCount=0To8txtItem(intCount)=""NextintCounttxtItem(7)=Format(Now,"yyyy-mm-dd")mblChange=FalseUnloadfrmWZSetupfrmWZSetup.txtSQL="select*fromdm_wz"frmWZSetup.ShowElseIfgintWZSmode=2ThenUnloadMeUnloadfrmWZSetupfrmWZSetup.txtSQL="select*fromdm_wz"frmWZSetup.ShowEndIfEndSub3、產品設置信息修改窗體的創(chuàng)建在產品設置信息列表中選擇需要修改的記錄,然后單擊“修改”按鈕,將出現如圖所示的窗體。選擇記錄的內容將顯示在窗體中,可以進行修改,最后保存修改后的記錄,代碼如下:PrivateSubcmdModify_Click()DimintCountAsInteger‘判斷記錄是否為空IffrmWZSetup.msgList.Rows>1ThengintWZSmode=2intCount=msgList.Row‘判斷是否選擇記錄IfintCount>0ThenfrmWZSetup1.txtSQL="select*fromdm_wzwheredm='"&Trim(msgList.TextMatrix(intCount,1))&"'"frmWZSetup1.Show1ElseMsgBox"警告",vbOKOnly+vbExclamation,"請首先選擇需要修改的紀錄!"EndIfEndIfEndSub4、產品設置信息刪除按鈕的創(chuàng)建在產品設置信息列表中選擇需要刪除的記錄,然后單擊“刪除”按鈕,將刪除當前記錄,代碼如下:PrivateSubcmdDelete_Click()DimtxtSQLAsStringDimintCountAsIntegerDimmrcAsADODB.RecordsetDimMsgTextAsString‘判斷記錄是否為空IfmsgList.Rows>1ThenIfMsgBox("真的要刪除款號為"&Trim(msgList.TextMatrix(msgList.Row,1))&"的記錄嗎?",vbOKCancel+vbExclamation,"警告")=vbOKThenintCount=msgList.Row‘判斷庫存產品中是否有相關信息txtSQL="selectsum(sl)fromkucunwherewzdm='"&Trim(msgList.TextMatrix(intCount,1))&"'"Setmrc=ExecuteSQL(txtSQL,MsgText)IfNotmrc.EOFThen‘判斷庫存中該商品數量是否為零Ifmrc.Fields(0)>0ThenMsgBox"庫存中仍存在"&Trim(msgList.TextMatrix(intCount,2))&",不能進行刪除操作!",vbOKOnly,"警告"ExitSubElsetxtSQL="deletefromdm_wzwheredm='"&Trim(msgList.TextMatrix(intCount,1))&"'"Setmrc=ExecuteSQL(txtSQL,MsgText)‘刪除庫存中的零記錄txtSQL="deletefromkucunwheredm='"&Trim(msgList.TextMatrix(intCount,1))&"'"Setmrc=ExecuteSQL(txtSQL,MsgText)EndIfElsetxtSQL="deletefromdm_wzwheredm='"&Trim(msgList.TextMatrix(intCount,1))&"'"Setmrc=ExecuteSQL(txtSQL,MsgText)txtSQL="deletefromkucunwheredm='"&Trim(msgList.TextMatrix(intCount,1))&"'"Setmrc=ExecuteSQL(txtSQL,MsgText)EndIf‘更新產品列表窗體UnloadfrmWZSetupfrmWZSetup.txtSQL="select*fromdm_wz"frmWZSetup.ShowEndIfEndIfEndSub(三)、進貨信息管理模塊的創(chuàng)建進貨信息管理模塊主要實現如下功能:訂貨單管理入庫單管理進貨信息查詢1、訂貨單管理窗體的創(chuàng)建一般進貨分兩步:第一步到供應商簽訂訂貨單,達成進貨意向;第二步產品到貨并入庫,完成產品入庫、庫存更新。選擇“進貨信息管理/訂貨單錄入修改”菜單,將出現如圖所示的窗體。2、入庫單管理窗體的創(chuàng)建產品入庫需要實現入庫單和庫存信息的更新。在實現這個模塊功能的過程中需要特別注意多個數據表的數據的關聯:如修改入庫單信息時,首先需要刪除入庫記錄,恢復庫存信息到原始狀態(tài),然后添加新的入庫記錄,并更新庫存信息。選擇“進貨信息管理/入庫單錄入修改”菜單,所有入庫單將出現如圖所示的窗體。在入庫單信息列表中選擇記錄,單擊“刪除”按鈕。程序同時更新入庫單信息和庫存信息,代碼如下:PrivateSubcmdDelete_Click()DimtxtSQLAsStringDimintCountAsIntegerDimmrcAsADODB.RecordsetDimMsgTextAsString‘判斷入庫單列表是否為空IfmsgList.Rows>1ThenIfMsgBox("真的要刪除編號為"&Trim(msgList.TextMatrix(msgList.Row,1))&"的入庫單記錄嗎?",vbOKCancel+vbExclamation,"警告")=vbOKThenintCount=msgList.Row‘保存需要刪除的記錄txtCKDM=Trim(msgList.TextMatrix(intCount,5))txtWZDM=Trim(msgList.TextMatrix(intCount,6))txtSL=Trim(msgList.TextMatrix(intCount,7))txtZKE=Trim(msgList.TextMatrix(intCount,10))‘刪除入庫單txtSQL="deletefrominhwhereinh_no='"&Trim(msgList.TextMatrix(intCount,1))&"'"Setmrc=ExecuteSQL(txtSQL,MsgText)‘更新庫存表中相關信息txtSQL="select*fromkucunwhereckdm='"&txtCKDM&"'"txtSQL=txtSQL&"andwzdm='"&txtWZDM&"'"Setmrc=ExecuteSQL(txtSQL,MsgText)IfNotmrc.EOFThenmrc.Fields(0)=Format(Now,"yyyy-mm-dd")mrc.Fields(4)=mrc.Fields(4)-txtSLmrc.Fields(5)=mrc.Fields(5)-txtZKEmrc.UpdateEndIfmrc.Close‘更新入庫單信息UnloadfrmINHfrmINH.txtSQL="selectinh_no,in_date,ywman,gfdm,ckdm,wzdm,sl,in_danj,i_zk,i_zke,jsfk,jz,yf,bzfrominh"frmINH.ShowE

溫馨提示

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

評論

0/150

提交評論