




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第七章中盤商進(jìn)銷存範(fàn)例關(guān)於靜態(tài)的資料處理,本書已使用不少學(xué)生成績處理及電腦擇友等範(fàn)例來說明,本章將舉一簡單典型的中盤商進(jìn)銷存管理系統(tǒng)來與讀者分享使用VB設(shè)計(jì)程式的樂趣,讀者可依此模式作為擴(kuò)充程式功能的參考範(fàn)例。一、題目假設(shè)國勝電器公司為電器中盤批發(fā)商,其作業(yè)方式為向廠商整批訂購電器再分批賣給零售商,試規(guī)劃其進(jìn)銷存管理系統(tǒng)。二、系統(tǒng)資料庫C:vbbook2trade.mdb1. 庫存資料表 stockA. 欄位結(jié)構(gòu)如下:(欄位名稱請(qǐng)勿使用SQL保留字,如total、sum、year及date等等,以免使用SQL指令時(shí),出現(xiàn)錯(cuò)誤)欄位序號(hào)欄位意義欄位名稱欄位型態(tài)欄位長度已索引 0 產(chǎn)品編號(hào)stno
2、 Text 4 是 1 產(chǎn)品名稱name Text 是 2 庫存量 qty integer 8 否 3 進(jìn)價(jià) inprice integer 否 4 賣價(jià) outpriceinteger 否 5 規(guī)格 spc Text 10 否 6 顏色 color Text 4 否 B. 記錄資料如下:2. 進(jìn)貨資料表 inputA. 欄位結(jié)構(gòu)如下:欄位序號(hào)欄位意義欄位名稱欄位型態(tài)欄位長度已索引 0 交易序號(hào)serial integer 是 1 廠商編號(hào)fano Text 4 是 2 商品編號(hào)stno Text 4 是 3 交易數(shù)量num integer 否 4 交易單價(jià)price integer 否 5
3、交易日期indate date 否 B. 記錄資料如下:3. 銷貨資料表 output同進(jìn)貨表格,請(qǐng)讀者自行發(fā)揮。4. 廠商基本資料表 factoryA. 欄位結(jié)構(gòu)如下:欄位序號(hào)欄位意義欄位名稱欄位型態(tài)欄位長度已索引 0 廠商名稱faname Text 20 否 1 廠商編號(hào)fano Text 4 是 2 負(fù)責(zé)人 name Text 8 否 3 統(tǒng)一編號(hào)number Text 10 否 4 電話 tel Text 9 否 5 地址 add Text 30 否 B. 記錄資料如下:5. 客戶基本資料表 customer與廠商基本資料相近,請(qǐng)讀者自行發(fā)揮。補(bǔ)充說明:建立資料庫應(yīng)遵守資料正規(guī)化(Da
4、tabase Normalization),資料正規(guī)化常用的規(guī)則如下:1. 去掉重覆的欄位例如:資料表input只用廠商編號(hào)(fano)與商品編號(hào)(stno),其它有關(guān)商及貨品資料因已在資料表factory及stock出現(xiàn),故不可重覆出現(xiàn)這些欄位,若要於input得到廠商或商品資料,只要應(yīng)用“關(guān)聯(lián)”即可。2. 去掉多餘的資料例如:同一個(gè)欄位不要出現(xiàn)在不同的資料表,以免沒有更正全部欄位而出現(xiàn)資料庫的不一致性。3. 不要建立可由欄位計(jì)算而得的欄位例如:不要建立交易小計(jì)(交易數(shù)量×交易單價(jià))這樣的欄位,因?yàn)榻灰仔∮?jì)是由前面已建立的“交易數(shù)量”乘以“交易種類”而得。三、系統(tǒng)功能1. 交易作業(yè)
5、A. 進(jìn)貨登錄列印進(jìn)貨單 input.frmB. 銷貨登錄列印出貨單 (請(qǐng)讀者自行發(fā)揮)C. 退貨廠商 backsto.frmD. 客戶退貨2. 交易管理A. 列印進(jìn)貨日?qǐng)?bào)表 drpinputday.dsrB. 列印銷貨日?qǐng)?bào)表C. 列印廠商進(jìn)貨月報(bào)表 drpinputmon.dsrD. 列印零售商銷貨月報(bào)表3. 資料表格管理(查詢、新增、刪除)A. 廠商基本資料 factory.frmB. 客戶基本資料C. 商品基本資料 stock.frm4. 報(bào)表管理A.庫存報(bào)表 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 "請(qǐng)確認(rèn)打開印表機(jī)"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) 功能表物件,請(qǐng)參考拙著Visual Basic範(fàn)例入門。(b) 報(bào)表物件,請(qǐng)參考5-9。2. frminput 檔案名稱inp
11、ut.frmA. 說明:處理廠商進(jìn)貨作業(yè),並列印進(jìn)貨單。B.表單畫面,如下圖。C. 執(zhí)行畫面,如圖右。D.操作說明a. 於雙併盒點(diǎn)選廠商名稱。b. 於商品列表盒點(diǎn)選商品。c. 於數(shù)量列表盒點(diǎn)選數(shù)量(品名、數(shù)量及小計(jì)自動(dòng)出現(xiàn))。d. 於輸出列表盒按一下可刪除該筆記錄。e. 於印表按鈕按一下可列印進(jìn)貨單。E. 輸出結(jié)果春德 0003 -進(jìn)貨單-品 名 編號(hào) 單價(jià) 數(shù)量 小計(jì)電冰箱 B001 13000 3 39000電視機(jī) A001 20000 2 40000總計(jì) 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 " 品 名 編 號(hào) 單 價(jià) 數(shù) 量 小 計(jì) " 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 "總計(jì)" & 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用來累加小計(jì)的和。(b) 處理數(shù)字對(duì)齊。(c) 將列表盒內(nèi)的交易明細(xì)逐項(xiàng)儲(chǔ)存於交易資料表格input。(d) 至庫存資料表stock加入進(jìn)貨數(shù)量。(e) 將廠商名稱及編號(hào)加至列表盒,提供使用者點(diǎn)選。(f) 將商品名稱、編號(hào)及單價(jià)加至列表盒,提供使用者點(diǎn)選。(g) 將數(shù)量加至列表盒,提供使用者點(diǎn)選。(h) 使用者依序點(diǎn)選商品名稱及數(shù)量後,將商品名稱、編號(hào)、單價(jià)、數(shù)量及單
21、價(jià)乘以數(shù)量之和加至輸出列表盒,請(qǐng)參考拙著Visual Basic 6.0程式設(shè)計(jì)實(shí)務(wù)與應(yīng)用範(fàn)例3-17。(i) 將使用者所點(diǎn)選輸出列表盒資料刪除,請(qǐng)參考拙著Visual Basic 6.0程式設(shè)計(jì)與實(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. 程式列?。号c範(fàn)例3-7-3C相近,請(qǐng)自行參考學(xué)習(xí)磁片factory.frm。5. frmstock 檔案名稱 stockA. 說明:處理商品基本資料的增加、更正及刪除。B. 表單畫面,如下圖左。C. 執(zhí)行畫面:D. 程式列印:請(qǐng)自行參考學(xué)習(xí)磁片。6. trade.vbp專案檔Trade.vbp成員如下圖左,DataEnvironment設(shè)計(jì)師如下圖右。7. module1.bas模組檔 module1.bas列印如下:Rem module1.basGlobal db As database五、報(bào)表檔 1. drpinputday.dsrA. 說明:列印進(jìn)貨日?qǐng)?bào)表,使用DataEnv
26、ironment設(shè)計(jì)師的cominputday指令。B. 編輯畫面:C. cominputday設(shè)定如下圖。D. 檔案聯(lián)結(jié)方式如下(上圖按一下“建立SQL陳述式”)。a.交易資料表(input)的廠商編號(hào)(fano)連結(jié)廠商資料表(factory),如此可由廠商資料表的廠商編號(hào)(fano)查得廠商名稱(faname)。b. 同理交易資料表(input)使用商品編號(hào)(stno)至庫存資料表(stock)查得商品名稱(name)。c. 上圖執(zhí)行結(jié)果如下(按一下快顯功能表“執(zhí)行”)。E. 輸出結(jié)果:2. stockmon.rptA. 說明:列印廠商進(jìn)貨月報(bào)表,以廠商為分群條件作為付帳依據(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%,試計(jì)算至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個(gè)日期之間的日數(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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年廣西中考地理試題(含答案)
- ××中學(xué)法律合規(guī)制度
- 2025年新型皮革加脂劑項(xiàng)目提案報(bào)告模板
- 2025年水處理阻垢緩蝕劑HEDP項(xiàng)目提案報(bào)告模板
- 培訓(xùn)服務(wù)協(xié)議合同
- 2025年離子敏傳感器項(xiàng)目申請(qǐng)報(bào)告模板
- 品牌合作授權(quán)經(jīng)營合同協(xié)議
- 2025年雅思考試口語全真模擬試卷:環(huán)保公益活動(dòng)策劃與實(shí)施案例分析提升試題
- 2025年茶藝師中級(jí)茶葉加工與儲(chǔ)藏技能鑒定理論試卷
- 2025年保育員實(shí)操技能試卷:幼兒教育心理學(xué)研究方法
- 環(huán)保相關(guān)知識(shí)培訓(xùn)課件
- 2025年河北高考真題化學(xué)試題+解析(參考版)
- 護(hù)理事業(yè)十五五發(fā)展規(guī)劃(2026-2030)
- 2025年 內(nèi)蒙古能源集團(tuán)所屬單位招聘考試筆試試題(含答案)
- 心理健康與大學(xué)生活學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 夜市經(jīng)營安全應(yīng)急預(yù)案
- 國開(甘肅)2024年春《地域文化(專)》形考任務(wù)1-4終考答案
- 中小學(xué)校長公開招聘理論考試(試卷)
- 物業(yè)公司工程部工作職責(zé).doc
- 山東省電力設(shè)備交接和預(yù)防性試驗(yàn)規(guī)程 - 圖文-
- 低值易耗品管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論