25
第第第第 BDE 第第第第 19-1 第第第第第第第第 19-2 第第 19-3 第第 19-4 第第

第十九章 BDE 專題製作

  • Upload
    nikita

  • View
    78

  • Download
    2

Embed Size (px)

DESCRIPTION

第十九章 BDE 專題製作. 19-1 資料庫規畫與管理 19-2 進貨 19-3 銷貨 19-4 查詢. 假設您要開一家出版社,您的產品如下: 您的經銷商如下:. 第十九章 BDE 專題製作. 請您寫一程式處理進貨、銷貨、存貨及帳款的處理程式,程式要求如下:. 1. 資料庫管理 產品基本資料編輯。 客戶基本資料編輯。 2. 進貨 依進貨單修改產品庫存。 3. 銷貨 依序輸入客戶編號、產品編號與產品數量,並修改庫存量。 列印銷貨單。 4. 查詢 產品查詢。 經銷商查詢。 經銷商訂貨明細表查詢。 訂單明細表查詢。 - PowerPoint PPT Presentation

Citation preview

Page 1: 第十九章   BDE 專題製作

第十九章 BDE 專題製作 19-1 資料庫規畫與管理 19-2 進貨 19-3 銷貨 19-4 查詢

Page 2: 第十九章   BDE 專題製作

第十九章 BDE 專題製作 假設您要開一家出版社,您的產品如下:

您的經銷商如下:

書籍編號 書 名 作 者 售 價 庫存量a0001 大學普物導讀與範例詳解 洪國勝 420 140

b0001 Visual Basic 程式設計 洪國勝 390 980

b0002 Visual Basic 資料庫程式設計 洪國勝 480 80

c0001 Office 2000 實務與應用 洪國勝 440 580

c0002 最新視窗軟體總動員 陳惠敏 400 240

經銷商編號 經銷商名稱 負責人姓名  地  址  電  話t001 中山大學 張山豐 高雄市蓮潭路 1號 07-

7777777

t002 成功大學 李明豐 台南市大學路 1號 06-6666666

t003 中興大學 王明德 台中市工學路 1號 04-2345168

t004 清華大學 陳田海 新竹市上學路 1號 03-3333333

Page 3: 第十九章   BDE 專題製作

請您寫一程式處理進貨、銷貨、存貨及帳款的處理程式,程式要求如下: 1. 資料庫管理產品基本資料編輯。客戶基本資料編輯。 2. 進貨依進貨單修改產品庫存。 3. 銷貨依序輸入客戶編號、產品編號與產品數量,並修改庫存量。列印銷貨單。 4. 查詢產品查詢。經銷商查詢。經銷商訂貨明細表查詢。訂單明細表查詢。 5. 報表製作列印印書通知單(當庫存低於 100 本時)。列印每日庫存報表。列印每月庫存報表。列印每月客戶結算清單(來往方式為月結)。列印客戶基本資料。

Page 4: 第十九章   BDE 專題製作

補充說明 : 什麼是月結?商品的販賣方式通常有三種,一種是寄賣,另一種是月結,第三種為買斷的現金交易。寄賣是東西有賣出去才能收款,月結是本月訂購的商品,上游廠商會於下月初寄帳單來請款,當零售商收到帳單時,可開一至三個月期限的支票給供應商。比較弱勢的產品或新成立的公司只能先從寄賣開始,一般大部分的商品都採用月結,現金交易則適用於一般消費者、強勢產品、或次級品低價傾銷給攤販。

Page 5: 第十九章   BDE 專題製作

19-1 資料庫規畫與管理 首先您必須使用 BDE Administrtor 決定資料庫的路徑及別名,本書延用路徑 C :\DelBook 及別名 horng 。 其次規劃資料表的欄位結構及輸入基本資料,本例只需使用四個資料表,分別是產品資料表( product.db )、客戶基本資料表( customer.db )、訂單資料表( orde.db )及訂單產品資料

Page 6: 第十九章   BDE 專題製作

1. 產品基本資料表( product.db )欄位名稱 型態 大小 是否索引 說明Id Alpha 5 是 產品編號Name Alpha 30 產品名稱Author Alpha 8 作者Price Money 定價Num Number 庫存量

Page 7: 第十九章   BDE 專題製作

2. 客戶基本資料表( customer.db )欄位名稱 型態 大小 是否索引 說明Id Alpha 4 是 客戶編號Name Alpha 20 客戶名稱Nameid Alpha 8 統一編號Boss Alpha 8 負責人姓名Addr Alpha 30 地址Tel Alpha 10 電話

Page 8: 第十九章   BDE 專題製作

3. 訂單資料表( orde.db ;資料表名稱請勿使用order 或 number ,因為那是 SQL 的保留字,誤用保留字的後果就是無法執行 SQL 敘述)。

於 Paradox 中一個資料表若要同時定義兩個以上的索引,應於 Table properties 中點選 Secondary Indexes 。

欄位名稱 型態 大小 是否索引 說明Orid Long

Integer是 訂單序號

Cuid Alpha 4 是 客戶編號Ormo Money 訂單金額Ordate Date 訂單日期

Page 9: 第十九章   BDE 專題製作

4. 訂單產品資料表( orpr.db )欄位名稱 型態 大小 是否索引 說明Orid Long

Integer是 訂單序號

Prid Alpha 5 是 產品編號Num Short 訂購數量Discoun

tShort 折扣

Page 10: 第十九章   BDE 專題製作

補充說明 : 任一客戶的任一訂單有可能包含許多產品,所以訂單資料表依據資料庫正規化的原則,必須拆成以上 orde及 orpr 兩個資料表。若將以上兩個資料表合而為一如下,則會有客戶編號、訂購日期重複出現的情況,此即破壞資料正規化中的資料不可重複的規定。

訂單序號 客戶編號 產品編號 訂購數量 折扣 訂購日期1 t001 a0001 20 75 2000/11/121 t001 b001 30 70 2000/11/122 t002 a001 10 75 2000/11/132 t002 c001 10 70 2000/11/132 t002 c002 50 70 2000/11/13

Page 11: 第十九章   BDE 專題製作

依照資料庫正規化的原則,以上資料應拆成兩個資料表如下:訂單序號 客戶編號 訂單金額 訂購日期1 t001 14511 2000/11/122 t002 20485 2000/11/13

訂單序號 產品編號 訂購數量 折扣1 a0001 20 751 b0001 30 702 a0001 10 752 c0001 10 752 c0002 50 70範例 19-1a 及 19-1b 分別可輸入產品及客戶基本資料表,其作法同範例 16-2a輸入結束之後,請務必按一下“結束”( Tablel.Close () ;),才能將資料緩衝區的資料回存硬碟。

Page 12: 第十九章   BDE 專題製作

19-2 進貨 進貨的操作步驟是看到進貨單,庫管人員輸入產品編號與數量,而完成進貨,以下範例說明進貨的處理方式。

Page 13: 第十九章   BDE 專題製作

範例 19-2a 進貨作業處理。

Page 14: 第十九章   BDE 專題製作

19-3 銷貨 當客戶上門、打電話或傳真訂購產品時,電腦記錄訂單編號、客戶編號及每樣產品的編號、數量及折扣、庫存減至訂購量、列印送貨單,而完成一筆交易,我們稱此作業為銷貨,請看以下範例說明。

Page 15: 第十九章   BDE 專題製作

範例 19-3a 試寫程式完成銷貨處理作業。

Page 16: 第十九章   BDE 專題製作

19-4 查詢 常用的查詢有產品資料表( product.db )及客戶資料表( customer.db )查詢,請參考範例 16-4g 自行完成。以下範例將介紹訂單的產品明細查詢,此為套用 Master/Detail 的典型範例

Page 17: 第十九章   BDE 專題製作

範例 16-4g 同上範例,但設計一個更具親和性的搜尋資料介面。

Page 18: 第十九章   BDE 專題製作

範例 19-4a 如何製作訂單產品明細表。

補充說明 : 本例共使用三個 Table 物件, Table1 是

Master , Table2 是 Detail ,但 Table1 的orde.db 僅有客戶編號並沒有客戶名稱,不易瀏覽,所以使用 Table3 將訂單資料表(orde.db) 中的客戶編號 (cuid) 至customer.db 中查閱客戶名稱,查閱的方式請看範例 16-2e 。

Page 19: 第十九章   BDE 專題製作

範例 16-2e 同上範例,但增加查閱欄位,印出學生姓名

補充說明 : 欲關聯的欄位均需事先索引才能順利取得關聯,如本例 stugrd.db 的 id 欄及 stuname的 id 欄均須事先製作索引。

Page 20: 第十九章   BDE 專題製作

範例 19-4b 同上範例,但Master使用Query。補充說明 : 1. Master/Detail 的應用中, Master 可為 Query

或 Table ,但 Detail 僅能使用 Table 。 2. 本例的 Master 採用 Query ,其 SQL 屬性設定如下:

select orde.orid , customer.name , orde.ormo ,orde.ordatefrom customer , ordewhere customer.id=orde.orid

3. 適當的使用 SQL 敘述可簡化使用者的工作負荷,本例的 Master 採用 SQL 敘述,只需一個 Query 物件即可,但上例因需查閱,故需另外安排一個 Table 當查閱欄位。

Page 21: 第十九章   BDE 專題製作

範例 19-4c 如何查詢每一客戶的每一訂單產品明細表補充說明 : 本例共使用三個 Table ,第一個 Table指向 customer.db ,第二個 Table 指向

orde.db ,第三個 Table 指向 orpr.db ,然後分別設定 Table1 與 Table 2 的Master/Detail 及 Table2 與 Table3 的Master/Detail 關係即可。

Page 22: 第十九章   BDE 專題製作

習題 1. 請將本章所有表單,融合在同一個專案。(未完成的表單則請自行創作) 2. 請於本章的訂單資料表 orde.db 增加一個業務員欄位,且可統計及列印每位業務員每日的業績及每月應收帳款,試寫程式完成以上功能。 3. 請於本章的專題,新增一種查詢,可以逐一瀏覽每樣產品的銷售明細。

Page 23: 第十九章   BDE 專題製作

4. 某次聯招共十人應考,成績、志願表及各校缺額如下:編號 成績 志願1 82 ABC

2 83 CAB

3 92 ABC

4 42 ACB

5 53 ABC

6 67 BCA

7 68 CAB

8 72 BAC

9 74 BAC

10 80 BCA

校名 缺額A 2

B 1

C 3

(1) 試完成分發作業,並印出每人錄取之學校或不錄取。(2) 試印出各校錄取名單及錄取最低分數,輸出時以各校錄取最低分為輸出順序(提示:將個人成績由大而小排序,由最高分者先選學校,並將該校缺額減一,直到各校缺額均為零為止)。

Page 24: 第十九章   BDE 專題製作

5. 設某公司交易記錄如下表:(於次頁)(1) 試使用適當的元件將以上交易儲存至資料庫日期 產品編號 售價 數量 小計 客戶編號 業務員編號5/7/86 a1 200 2 400 x1 q1

5/7/86 b1 400 1 400 x2 p2

5/7/86 a1 200 3 600 x3 q2

5/10/86 b1 300 1 300 x2 p1

5/11/86 b3 500 2 1000 y1 p2

5/12/86 a2 300 2 600 y2 p1

5/13/86 a1 200 1 200 x3 p1

6/2/86 a2 300 1 300 x2 q1

6/3/86 b3 500 2 1000 x1 q1

7/3/86 b2 400 3 1200 x2 q1 (2) 試完成以下統計表報 :1. 每日各產品銷售數量。2. 每日各業務員銷售金額。3. 每月各項產品銷售數量排行榜。4. 每月各業務員銷售金額排行榜。5. 每月各客戶購買金額排行榜。6. 每月各組業務員( p 、 q )銷售金額排行榜

(3) 試完成以下線上查詢工作:1. 輸入客戶編號而得其交易情形。2. 輸入產品編號而得單價。3. 輸入各日期而得其營業狀況。

Page 25: 第十九章   BDE 專題製作

6. 假設你要開一家銀行,請設計程式完成以下功能。1. 可開戶。2. 可存款、提款。3. 可於每年 6 月 20 日及 12 月 20 日計算利息,利息計算以客戶每日餘額乘以日利率即可4. 每位客戶有存摺,可列印其存提款狀況、利息所得及存款餘額。5. 可列印每日客戶的存提款金額及排行榜等日報表功能。6. 可列印每月客戶存提款金額及排行榜等月報表功能。7. 可於螢幕瀏覽每位客戶的交易明細。

7. 假如你要開一家 DVD/VCD 出租店,請設計程式完成以下功能。1. 可鍵入客戶基本資料(採會員制,客戶繳交一定金額可觀賞一定數量的片子 )2. 可借片及還片。3. 可於螢幕瀏覽每位客戶的借片狀態及點數餘額。4. 可於螢幕瀏覽當日每位客戶的借片狀態。5. 可列印每日逾期未還的片子。

8. 假如你要開一家電器維修業,請設計程式完成以下功能。1. 可鍵入客戶基本資料。2. 客戶送修機器時,可由該機器型號查得過去的維修狀態。3. 客戶送修後,可由該機器型號查得目前維修進度及估價。

9. 請自行選擇行業並完成其電腦化作業。1. 你的行業為何 ?2. 你的預期功能為何?3. 你的資料庫存內容為何?