250 likes | 488 Views
第十九章 BDE 專題製作. 19-1 資料庫規畫與管理 19-2 進貨 19-3 銷貨 19-4 查詢. 假設您要開一家出版社,您的產品如下: 您的經銷商如下:. 第十九章 BDE 專題製作. 請您寫一程式處理進貨、銷貨、存貨及帳款的處理程式,程式要求如下:. 1. 資料庫管理 產品基本資料編輯。 客戶基本資料編輯。 2. 進貨 依進貨單修改產品庫存。 3. 銷貨 依序輸入客戶編號、產品編號與產品數量,並修改庫存量。 列印銷貨單。 4. 查詢 產品查詢。 經銷商查詢。 經銷商訂貨明細表查詢。 訂單明細表查詢。
E N D
第十九章 BDE專題製作 • 19-1 資料庫規畫與管理 • 19-2 進貨 • 19-3 銷貨 • 19-4 查詢
假設您要開一家出版社,您的產品如下: 您的經銷商如下: 第十九章 BDE專題製作
請您寫一程式處理進貨、銷貨、存貨及帳款的處理程式,程式要求如下:請您寫一程式處理進貨、銷貨、存貨及帳款的處理程式,程式要求如下: • 1.資料庫管理 產品基本資料編輯。 客戶基本資料編輯。 • 2.進貨 依進貨單修改產品庫存。 • 3.銷貨 依序輸入客戶編號、產品編號與產品數量,並修改庫存量。 列印銷貨單。 • 4.查詢 產品查詢。 經銷商查詢。 經銷商訂貨明細表查詢。 訂單明細表查詢。 • 5.報表製作 列印印書通知單(當庫存低於100本時)。 列印每日庫存報表。 列印每月庫存報表。 列印每月客戶結算清單(來往方式為月結)。 列印客戶基本資料。
補充說明: • 什麼是月結? 商品的販賣方式通常有三種,一種是寄賣,另一種是月結,第三種為買斷的現金交易。寄賣是東西有賣出去才能收款,月結是本月訂購的商品,上游廠商會於下月初寄帳單來請款,當零售商收到帳單時,可開一至三個月期限的支票給供應商。比較弱勢的產品或新成立的公司只能先從寄賣開始,一般大部分的商品都採用月結,現金交易則適用於一般消費者、強勢產品、或次級品低價傾銷給攤販。
19-1 資料庫規畫與管理 • 首先您必須使用BDE Administrtor決定資料庫的路徑及別名,本書延用路徑C:\DelBook及別名horng。 • 其次規劃資料表的欄位結構及輸入基本資料,本例只需使用四個資料表,分別是產品資料表(product.db)、客戶基本資料表(customer.db)、訂單資料表(orde.db)及訂單產品資料
於Paradox中一個資料表若要同時定義兩個以上的索引,應於Table properties中點選Secondary Indexes。 3. 訂單資料表(orde.db;資料表名稱請勿使用order或number,因為那是SQL的保留字,誤用保留字的後果就是無法執行SQL敘述)。
補充說明: 任一客戶的任一訂單有可能包含許多產品,所以訂單資料表依據資料庫正規化的原則,必須拆成以上orde及orpr兩個資料表。若將以上兩個資料表合而為一如下,則會有客戶編號、訂購日期重複出現的情況,此即破壞資料正規化中的資料不可重複的規定。
依照資料庫正規化的原則,以上資料應拆成兩個資料表如下:依照資料庫正規化的原則,以上資料應拆成兩個資料表如下: 範例19-1a及19-1b分別可輸入產品及客戶基本資料表,其作法同範例16-2a 輸入結束之後,請務必按一下“結束”(Tablel.Close ();), 才能將資料緩衝區的資料回存硬碟。
19-2 進貨 • 進貨的操作步驟是看到進貨單,庫管人員輸入產品編號與數量,而完成進貨,以下範例說明進貨的處理方式。
範例 19-2a • 進貨作業處理。
19-3 銷貨 • 當客戶上門、打電話或傳真訂購產品時,電腦記錄訂單編號、客戶編號及每樣產品的編號、數量及折扣、庫存減至訂購量、列印送貨單,而完成一筆交易,我們稱此作業為銷貨,請看以下範例說明。
範例 19-3a • 試寫程式完成銷貨處理作業。
19-4 查詢 • 常用的查詢有產品資料表(product.db)及客戶資料表(customer.db)查詢,請參考範例16-4g自行完成。以下範例將介紹訂單的產品明細查詢,此為套用Master/Detail的典型範例
範例 16-4g • 同上範例,但設計一個更具親和性的搜尋資料介面。
範例 19-4a • 如何製作訂單產品明細表。 補充說明: • 本例共使用三個Table物件,Table1是Master,Table2是Detail,但Table1的orde.db僅有客戶編號並沒有客戶名稱,不易瀏覽,所以使用Table3將訂單資料表(orde.db)中的客戶編號(cuid)至customer.db中查閱客戶名稱,查閱的方式請看範例16-2e。
範例 16-2e • 同上範例,但增加查閱欄位,印出學生姓名 補充說明: • 欲關聯的欄位均需事先索引才能順利取得關聯,如本例stugrd.db的id欄及stuname的id欄均須事先製作索引。
範例 19-4b • 同上範例,但Master使用Query。 補充說明: • 1. Master/Detail的應用中,Master可為Query或Table,但Detail僅能使用Table。 • 2. 本例的Master採用Query,其SQL屬性設定如下: select orde.orid,customer.name,orde.ormo,orde.ordate from customer,orde where customer.id=orde.orid • 3. 適當的使用SQL敘述可簡化使用者的工作負荷,本例的Master採用SQL敘述,只需一個Query物件即可,但上例因需查閱,故需另外安排一個Table當查閱欄位。
範例 19-4c • 如何查詢每一客戶的每一訂單產品明細表 補充說明: • 本例共使用三個Table,第一個Table指向customer.db,第二個Table指向orde.db,第三個Table指向orpr.db,然後分別設定Table1與Table 2的Master/Detail及Table2與Table3的Master/Detail關係即可。
習題 • 1. 請將本章所有表單,融合在同一個專案。(未完成的表單則請自行創作) • 2. 請於本章的訂單資料表orde.db增加一個業務員欄位,且可統計及列印每位業務員每日的業績及每月應收帳款,試寫程式完成以上功能。 • 3. 請於本章的專題,新增一種查詢,可以逐一瀏覽每樣產品的銷售明細。
某次聯招共十人應考,成績、志願表及各校缺額如下:某次聯招共十人應考,成績、志願表及各校缺額如下: (1) 試完成分發作業,並印出每人錄取之學校或不錄取。 (2) 試印出各校錄取名單及錄取最低分數,輸出時以各校錄取最低分為輸出順序(提示:將個人成績由大而小排序,由最高分者先選學校,並將該校缺額減一,直到各校缺額均為零為止)。
5. 設某公司交易記錄如下表:(於次頁)(1) 試使用適當的元件將以上交易儲存至資料庫 (2)試完成以下統計表報 : 1.每日各產品銷售數量。 2.每日各業務員銷售金額。 3.每月各項產品銷售數量排行榜。 4.每月各業務員銷售金額排行榜。 5.每月各客戶購買金額排行榜。 6.每月各組業務員(p、q)銷售金額排行榜 (3) 試完成以下線上查詢工作: 1.輸入客戶編號而得其交易情形。 2.輸入產品編號而得單價。 3.輸入各日期而得其營業狀況。
6. 假設你要開一家銀行,請設計程式完成以下功能。 • 可開戶。 • 可存款、提款。 • 可於每年6月20日及12月20日計算利息,利息計算以客戶每日餘額乘以日利率即可 • 每位客戶有存摺,可列印其存提款狀況、利息所得及存款餘額。 • 可列印每日客戶的存提款金額及排行榜等日報表功能。 • 可列印每月客戶存提款金額及排行榜等月報表功能。 • 可於螢幕瀏覽每位客戶的交易明細。 • 7. 假如你要開一家DVD/VCD出租店,請設計程式完成以下功能。 • 可鍵入客戶基本資料(採會員制,客戶繳交一定金額可觀賞一定數量的片子) • 可借片及還片。 • 可於螢幕瀏覽每位客戶的借片狀態及點數餘額。 • 可於螢幕瀏覽當日每位客戶的借片狀態。 • 可列印每日逾期未還的片子。 • 8. 假如你要開一家電器維修業,請設計程式完成以下功能。 • 可鍵入客戶基本資料。 • 客戶送修機器時,可由該機器型號查得過去的維修狀態。 • 客戶送修後,可由該機器型號查得目前維修進度及估價。 • 9. 請自行選擇行業並完成其電腦化作業。 • 你的行業為何? • 你的預期功能為何? • 你的資料庫存內容為何?