190 likes | 311 Views
第二十章 資料庫專題製作. 資料規劃與管理 進貨 銷貨 查詢 報表製作. 請您寫一程式處理進貨、銷貨、存貨及帳款的處理程式 , 程式要求如下 : 1. 資料庫管理 (1) 產品基本資料編輯。 (2) 客戶基本資料編輯。 2. 進貨 依進貨單修改產品庫存。 3. 銷貨 銷貨時列印銷貨單 , 並修改庫存量。 4. 查詢 (1) 產品查詢。 (2) 經銷商查詢。 (3) 經銷商訂貨明細表。 (4) 訂單明細表。. 5. 報表製作 (1) 列印印書通知單 ( 當庫存低於 100 本時 ) 。 (2) 列印每日庫存報表。
E N D
第二十章 資料庫專題製作 • 資料規劃與管理 • 進貨 • 銷貨 • 查詢 • 報表製作
請您寫一程式處理進貨、銷貨、存貨及帳款的處理程式, 程式要求如下: • 1. 資料庫管理 • (1) 產品基本資料編輯。 • (2) 客戶基本資料編輯。 • 2. 進貨 依進貨單修改產品庫存。 • 3. 銷貨 銷貨時列印銷貨單, 並修改庫存量。 • 4. 查詢 • (1) 產品查詢。 • (2) 經銷商查詢。 • (3) 經銷商訂貨明細表。 • (4) 訂單明細表。
5. 報表製作 • (1) 列印印書通知單(當庫存低於100 本時)。 • (2) 列印每日庫存報表。 • (3) 列印每月庫存報表。 • (4) 列印每月客戶結算清單(來往方式為月結)。 • (5) 列印客戶基本資料。 • 補充說明-- 什麼是月結? 商品的販賣方式通常有三種, 一種是寄賣, 另一種是月結, 第三種是買斷的現金交易。寄賣是東西有賣出去才能收款, 月結是本月訂購的商品, 上游廠商會於下月初寄帳單來請款, 當零售商收到帳單時, 可開一至三個月期限的支票給供應商。比較弱勢的產品或新成立的公司只能先從寄賣開始, 一般大部分的商品都採用月結, 現金交易則適用於一般消費者、強勢產品、或次級品低價傾銷給攤販。
20 - 1 資料庫規畫與管理 • 首先您必須使用BDE Administrtor 決定資料庫的路徑及別名, 本書延用路徑C: \BCBbook 及別名horng。 • 其次規劃資料表的欄位結構及輸入基本資料, 本例只需四個資料表, 分別是產品資料表(product.db)、客戶基本資料表(customer.db)、訂單資料表(orde.db) 及訂單產品資料表(orpr.db) 等四個資料表。
1. 產品基本資料表(product.db) • 2. 客戶基本資料表(customer.db)
3. 訂單資料表如下(orde.db; 資料表名稱請勿使用order 或number, 因為那是SQL 的保留字, 誤用保留字的後果就是無法執行SQL 敘述) 於Paradox 中一個資料表若要同時定義兩個以上的索引, 應於Table properties中點選Secondary Indexes 。 • 4. 訂單產品資料如下(orpr.db)
任一客戶的任一訂單有可能包含許多產品, 所以訂單資料表依據資料庫正規化的原則, 必須拆成以上兩個資料表。 • 若將以上兩個資料表合而為一如下, 則會有客戶編號、訂購日期重覆出現的情況, 此即破壞資料正規化中的資料不可重覆的規定。
依照資料正規化的原則, 以上資料應拆成兩個資料表如下:
範例20-1a 及20-1b 分別可輸入產品及客戶基本資料表, 其作法同範例17-2a 。其次, 範例20-1a 執行結果如右圖, 輸入結束之後, 請務必按一下Post edit 按鈕, 才能將資料緩衝區的資料回存硬碟。
20 - 2 進貨 • 進貨的操作是看到進貨單, 庫管人員輸入產品編號與數量, 而完成進貨, 以下範例說明進貨的處理方式。
範例20-2a • 進貨作業處理。
範例20-3a • 試寫程式完成銷貨處理作業。
20 - 4 查詢 • 常用的查詢有產品資料表(product.db) 及客戶資料表(customer.db) 查詢,請參考範例17-4g 自行完成。以下範例將介紹訂單的產品明細查詢, 此為套用Master /Detail 的典型範例。
範例20-4a • 如何製作訂單產品明細表。
範例20-4b • 同上範例, 但Master 使用Query。
範例20-4c • 如何查詢每一客戶的每一訂單產品明細表。
20 - 5 報表製作 常見的報表製作有庫存日報表、庫存月報表、客戶資料表、採購建議表及月結應收帳款, 其中前三者請自行參考範例18-1a, 採購建議表則使用一個Query 物件, 其SQL 敘述如下: select * from product where num < 100 月結應收帳款報表則同範例18-3a 的分群列印, 唯SQL 敘述應加上between 月/1/ 年and 月/30/ 年, 代表列印某一個月的應收帳款, 請讀者自行練習。