




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第七章中盤商進(jìn)銷存範(fàn)例關(guān)於靜態(tài)的資料處理,本書已使用不少學(xué)生成績處理及電腦擇友等範(fàn)例來說明,本章將舉一簡單典型的中盤商進(jìn)銷存管理系統(tǒng)來與讀者分享使用VB設(shè)計程式的樂趣,讀者可依此模式作為擴(kuò)充程式功能的參考範(fàn)例。一、題目假設(shè)國勝電器公司為電器中盤批發(fā)商,其作業(yè)方式為向廠商整批訂購電器再分批賣給零售商,試規(guī)劃其進(jìn)銷存管理系統(tǒng)。二、系統(tǒng)資料庫C:vbbook2trade.mdb1. 庫存資料表 stockA. 欄位結(jié)構(gòu)如下:(欄位名稱請勿使用SQL保留字,如total、sum、year及date等等,以免使用SQL指令時,出現(xiàn)錯誤)欄位序號欄位意義欄位名稱欄位型態(tài)欄位長度已索引 0 產(chǎn)品編號stno
2、 Text 4 是 1 產(chǎn)品名稱name Text 是 2 庫存量 qty integer 8 否 3 進(jìn)價 inprice integer 否 4 賣價 outpriceinteger 否 5 規(guī)格 spc Text 10 否 6 顏色 color Text 4 否 B. 記錄資料如下:2. 進(jìn)貨資料表 inputA. 欄位結(jié)構(gòu)如下:欄位序號欄位意義欄位名稱欄位型態(tài)欄位長度已索引 0 交易序號serial integer 是 1 廠商編號fano Text 4 是 2 商品編號stno Text 4 是 3 交易數(shù)量num integer 否 4 交易單價price integer 否 5
3、交易日期indate date 否 B. 記錄資料如下:3. 銷貨資料表 output同進(jìn)貨表格,請讀者自行發(fā)揮。4. 廠商基本資料表 factoryA. 欄位結(jié)構(gòu)如下:欄位序號欄位意義欄位名稱欄位型態(tài)欄位長度已索引 0 廠商名稱faname Text 20 否 1 廠商編號fano Text 4 是 2 負(fù)責(zé)人 name Text 8 否 3 統(tǒng)一編號number Text 10 否 4 電話 tel Text 9 否 5 地址 add Text 30 否 B. 記錄資料如下:5. 客戶基本資料表 customer與廠商基本資料相近,請讀者自行發(fā)揮。補充說明:建立資料庫應(yīng)遵守資料正規(guī)化(Da
4、tabase Normalization),資料正規(guī)化常用的規(guī)則如下:1. 去掉重覆的欄位例如:資料表input只用廠商編號(fano)與商品編號(stno),其它有關(guān)商及貨品資料因已在資料表factory及stock出現(xiàn),故不可重覆出現(xiàn)這些欄位,若要於input得到廠商或商品資料,只要應(yīng)用“關(guān)聯(lián)”即可。2. 去掉多餘的資料例如:同一個欄位不要出現(xiàn)在不同的資料表,以免沒有更正全部欄位而出現(xiàn)資料庫的不一致性。3. 不要建立可由欄位計算而得的欄位例如:不要建立交易小計(交易數(shù)量×交易單價)這樣的欄位,因為交易小計是由前面已建立的“交易數(shù)量”乘以“交易種類”而得。三、系統(tǒng)功能1. 交易作業(yè)
5、A. 進(jìn)貨登錄列印進(jìn)貨單 input.frmB. 銷貨登錄列印出貨單 (請讀者自行發(fā)揮)C. 退貨廠商 backsto.frmD. 客戶退貨2. 交易管理A. 列印進(jìn)貨日報表 drpinputday.dsrB. 列印銷貨日報表C. 列印廠商進(jìn)貨月報表 drpinputmon.dsrD. 列印零售商銷貨月報表3. 資料表格管理(查詢、新增、刪除)A. 廠商基本資料 factory.frmB. 客戶基本資料C. 商品基本資料 stock.frm4. 報表管理A.庫存報表 stock.rptB. 採購建議書 stockbuy.rptC. 廠商名單D.客戶名單5. 交易分析A. 商品銷售排行榜B. 廠
6、商進(jìn)貨排行榜C. 顧客購買金額排行榜D. 廠商進(jìn)貨交叉分析6. 結(jié)束四、表單說明1. 檔案名稱 start.frmA.說明:主功能表選擇B. 表單畫面C. 程式列印Rem startPrivate Sub Form_Load() Set db = OpenDatabase("c:vbbook2trade.mdb") MsgBox "請確認(rèn)打開印表機"End SubPrivate Sub mnuanalyze_Click(Index As Integer) (a) d = "c:vbbook2ch6" Select Case Index
7、 Case 0 ' Case 1 ' Case 2 ' Case 3 rpt.ReportFileName = "c:vbbook2ch6廠商進(jìn)貨交叉分析.rpt" End Select rpt.Destination = 0 rpt.Action = 1End SubPrivate Sub mnuend_Click() EndEnd SubPrivate Sub mnuexchange_Click(Index As Integer) Select Case Index Case 0 Load frminput frminput.Show Case
8、1 ' Case 2 Load frmbacksto frmbacksto.Show Case 3 ' End SelectEnd SubPrivate Sub mnupaper_Click(Index As Integer) d = "c:vbbook2ch6" Select Case Index Case 0 rpt.ReportFileName = d & "stockday.rpt" (b) Case 1 ' Case 2 rpt.ReportFileName = d & "stockmon.rp
9、t" Case 3 ' End Select rpt.Destination = 0 rpt.Action = 1End SubPrivate Sub mnustock_Click(Index As Integer) d = "c:Vbbook2Ch6" Select Case Index Case 0 rpt.ReportFileName = d & "stock.rpt" Case 1 rpt.ReportFileName = d & "stockbuy.rpt" Case 2 ' Cas
10、e 3 ' End Select rpt.Destination = 0 rpt.Action = 1End SubPrivate Sub mnutable_Click(Index As Integer) Select Case Index Case 0 Load frmfactory frmfactory.Show Case 1 ' Case 2 Load frmstock frmstock.Show End SelectEnd Sub程式說明(a) 功能表物件,請參考拙著Visual Basic範(fàn)例入門。(b) 報表物件,請參考5-9。2. frminput 檔案名稱inp
11、ut.frmA. 說明:處理廠商進(jìn)貨作業(yè),並列印進(jìn)貨單。B.表單畫面,如下圖。C. 執(zhí)行畫面,如圖右。D.操作說明a. 於雙併盒點選廠商名稱。b. 於商品列表盒點選商品。c. 於數(shù)量列表盒點選數(shù)量(品名、數(shù)量及小計自動出現(xiàn))。d. 於輸出列表盒按一下可刪除該筆記錄。e. 於印表按鈕按一下可列印進(jìn)貨單。E. 輸出結(jié)果春德 0003 -進(jìn)貨單-品 名 編號 單價 數(shù)量 小計電冰箱 B001 13000 3 39000電視機 A001 20000 2 40000總計 79000國勝電氣有限公司 簽收_02-25-1999F. 程式列印Rem inputDim source As StringDim
12、recfactory As RecordsetDim recstock As RecordsetDim recinput As RecordsetPrivate Sub cmdexit_Click() Unload frminput frmstart.ShowEnd SubPrivate Sub cmdprint_Click() Printer.Scale (0, 0)-(80, 80) Printer.FontSize = 16 Printer.CurrentX = 14 Printer.Print cbo.Text & " -進(jìn) 貨 單-" Printer.Pr
13、int Printer.FontSize = 12 Printer.CurrentX = 10 Printer.Print " 品 名 編 號 單 價 數(shù) 量 小 計 " Printer.CurrentX = 10 Printer.Print "-" Sum = 0 For i = 0 To lstout.ListCount - 1 Printer.CurrentX = 10 Printer.Print lstout.List(i) Sum = Sum + Val(Right$(lstout.List(i), 10) (a) Next i Printer
14、.CurrentX = 10 Printer.Print "-" Printer.CurrentX = 10 Printer.Print "總計" & Space$(64 - Len(Str$(Sum) & Str$(Sum) (b) Printer.Print Printer.CurrentX = 10 Printer.Print "國勝電氣有限公司 簽收人 _ " & Date$ Printer.EndDoc Set recinput = db.OpenRecordset("input"
15、) recinput.MoveLast ser = recinput(0) For i = 0 To lstout.ListCount - 1 (c) recinput.AddNew recinput(0) = ser + 1 + i recinput(1) = Mid$(cbo.Text, 11, 4) recinput(2) = Mid$(lstout.List(i), 11, 4) recinput(3) = Val(Mid$(lstout.List(i), 31, 10) recinput(4) = Val(Mid$(lstout.List(i), 21, 10) recinput(5
16、) = Date$ recinput.Update s2 = "select qty from stock where stno='" & recinput(2) & "'" Set recstock = db.OpenRecordset(s2) recstock.Edit (d) newqty = recstock(0) + recinput(3) recstock(0) = newqty recstock.Update recstock.Close Next i recinput.Close lstout.ClearE
17、nd SubPrivate Sub Form_Load() s1 = "select * from factory" Set recfactory = db.OpenRecordset(s1) Do Until recfactory.EOF (e) cbo.AddItem recfactory(0) & Space$(10 - Len(recfactory(0) & recfactory(1) & Space$(10 - Len(recfactory(1) recfactory.MoveNext Loop recfactory.Close s2 =
18、"select * from stock" Set recstock = db.OpenRecordset(s2) Do Until recstock.EOF (f) lststno.AddItem recstock(1) & Space$(10 - Len(recstock(1) & recstock(0) & Space$(10 - Len(recstock(0) & recstock(3) & Space$(10 - Len(Str$(recstock(3) recstock.MoveNext Loop recstock.Clo
19、se For i = 1 To 20 lstnum.AddItem i (g) Next iEnd SubPrivate Sub lstnum_Click() (h) num = lstnum.Textlstout.AddItem source & Space$(10 - Len(Str$(num) & Str$(num) & Space$(10 - Len(Str$(num * Val(Right$(source, 10) & Str$(num * Val(Right$(source, 10)End SubPrivate Sub lstout_Click()
20、lstout.RemoveItem lstout.ListIndex (i)End SubPrivate Sub lststno_Click() source = lststno.TextEnd SubG. 程式說明(a) sum用來累加小計的和。(b) 處理數(shù)字對齊。(c) 將列表盒內(nèi)的交易明細(xì)逐項儲存於交易資料表格input。(d) 至庫存資料表stock加入進(jìn)貨數(shù)量。(e) 將廠商名稱及編號加至列表盒,提供使用者點選。(f) 將商品名稱、編號及單價加至列表盒,提供使用者點選。(g) 將數(shù)量加至列表盒,提供使用者點選。(h) 使用者依序點選商品名稱及數(shù)量後,將商品名稱、編號、單價、數(shù)量及單
21、價乘以數(shù)量之和加至輸出列表盒,請參考拙著Visual Basic 6.0程式設(shè)計實務(wù)與應(yīng)用範(fàn)例3-17。(i) 將使用者所點選輸出列表盒資料刪除,請參考拙著Visual Basic 6.0程式設(shè)計與實務(wù)應(yīng)用範(fàn)例3-17。3. frmbacksto 檔案名稱 backsto.frmA. 說明:將不良品退還給供應(yīng)廠商。B. 表單畫面,如下圖左。C. 執(zhí)行畫面,如下圖。D. 程式列印:Rec backstoDim recinput As RecordsetDim recstock As RecordsetPrivate Sub cbo_Change() filldataEnd SubPrivate
22、Sub cbo_Click() filldataEnd SubPrivate Sub cmdedit_Click() '修正進(jìn)貨資料表 input If txt.Text = Null Then txt.Text = 0 End If newqty = recinput(3) - txt.Text recinput.Edit recinput(3) = newqty recinput.Update '修正存貨資料表 stock Set recstock = db.OpenRecordset("stock") recstock.Index = "st
23、no" recstock.Seek "=", recinput(2) newqty = recstock(2) - txt.Text recstock.Edit recstock(2) = newqty recstock.Update txt.Text = ""End SubPrivate Sub cmdend_Click() Unload frmbacksto frmstart.ShowEnd SubPrivate Sub filldata() recinput.Index = "serial" recinput.Seek
24、 "=", cbo.Text For i = 1 To 5 lbl(i) = recinput(i) Next iEnd SubPrivate Sub Form_Load() Set recinput = db.OpenRecordset("input") Do Until recinput.EOF cbo.AddItem recinput(0) recinput.MoveNext LoopEnd Sub4. frmfactory 檔案名稱 factory.frmA. 說明:處理廠商基本資料增加、更正及刪除。B. 表單畫面,如下圖左。C. 執(zhí)行畫面,如下
25、圖右。D. 程式列印:與範(fàn)例3-7-3C相近,請自行參考學(xué)習(xí)磁片factory.frm。5. frmstock 檔案名稱 stockA. 說明:處理商品基本資料的增加、更正及刪除。B. 表單畫面,如下圖左。C. 執(zhí)行畫面:D. 程式列印:請自行參考學(xué)習(xí)磁片。6. trade.vbp專案檔Trade.vbp成員如下圖左,DataEnvironment設(shè)計師如下圖右。7. module1.bas模組檔 module1.bas列印如下:Rem module1.basGlobal db As database五、報表檔 1. drpinputday.dsrA. 說明:列印進(jìn)貨日報表,使用DataEnv
26、ironment設(shè)計師的cominputday指令。B. 編輯畫面:C. cominputday設(shè)定如下圖。D. 檔案聯(lián)結(jié)方式如下(上圖按一下“建立SQL陳述式”)。a.交易資料表(input)的廠商編號(fano)連結(jié)廠商資料表(factory),如此可由廠商資料表的廠商編號(fano)查得廠商名稱(faname)。b. 同理交易資料表(input)使用商品編號(stno)至庫存資料表(stock)查得商品名稱(name)。c. 上圖執(zhí)行結(jié)果如下(按一下快顯功能表“執(zhí)行”)。E. 輸出結(jié)果:2. stockmon.rptA. 說明:列印廠商進(jìn)貨月報表,以廠商為分群條件作為付帳依據(jù)。B.編輯畫
27、面:C.以“廠商名稱(faname)”分群如下(使用cominputmon指令)。D. 聯(lián)結(jié)方式:同stockday.rpt。E. SQL陳述式如下圖左,“分組”設(shè)定如下圖右。F. 輸出結(jié)果:3. stock.rptA. 說明:列印商品庫存基本資料。B. 編輯畫面:C. 使用comstock如下圖。E. 輸出結(jié)果:範(fàn)例7B設(shè)某人銀行存款結(jié)餘如下,若年息2%,試計算至6/20/97的利息為何。日 期結(jié) 餘1/2/97 30000 3/22/97 60000 5/18/97 50000 執(zhí)行結(jié)果程式列印Rem 7BDim a(10, 2)Const rate = 2Const n = 3Const
28、 date1 = #6/20/97#Private Sub cmd_Click() a(n + 1, 1) = date1 For i = 1 To n k = DateDiff("d", a(i, 1), a(i + 1, 1) Debug.Print k 'k 為2個日期之間的日數(shù) Sum = Sum + k * rate * 0.01 / 365 * a(i, 2) '將年利率化為日利率*每日結(jié)餘 Next i txt.Text = Int(Sum)End SubPrivate Sub Form_Load() a(1, 1) = #1/2/97#: a(1, 2) = 30000 a(2, 1) = #3/22/97#: a(2,
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025合作方加工定做合同標(biāo)準(zhǔn)要求
- 2025正規(guī)小學(xué)教師勞動合同樣本
- 2025解除建筑工程的設(shè)計合同協(xié)議書
- 2025房地產(chǎn)項目合同文本
- 2025科技有限公司合同模板
- 2025建筑模板承包合同模板班組承包合同
- 2025年合作協(xié)議的合同范本
- 2025國有企業(yè)固定資產(chǎn)人民幣貸款合同
- 2025珠寶加盟的合同
- 《下肢深靜脈血栓形成》課件
- 第18課《井岡翠竹》課件-2024-2025學(xué)年統(tǒng)編版語文七年級下冊
- 公立醫(yī)院成本核算指導(dǎo)手冊
- 第16課《有為有不為》公開課一等獎創(chuàng)新教學(xué)設(shè)計
- 小米創(chuàng)業(yè)思考(商業(yè)思考)
- 國開(甘肅)2024年春《地域文化(專)》形考任務(wù)1-4終考答案
- 年產(chǎn)10噸功能益生菌凍干粉的工廠設(shè)計改
- 2009研究生數(shù)值分析試題和答案-石家莊鐵道大學(xué)(word文檔良心出品)
- EDTA標(biāo)準(zhǔn)溶液的配制與標(biāo)定
- 消防安全每月自查記錄表
- (西安市工商局)有限公司章程范本 (全)
- 某國企公文處理辦法
評論
0/150
提交評論