程式資訊
- 程式 ID:
QC_QRY2 - 所屬子系統:F.生產管理
- 狀態:stable
不良報廢統計¶
功能簡介¶
「不良報廢統計」把一段期間內的生產不良與倉庫報廢兩種來源彙整成一份統計表,並依 BOM 最低階展開估算每個不良/報廢品的單位材料費與材料金額。適合品管、生管主管定期檢視:哪些品號不良率偏高、不良集中在哪個生產部門與責任廠商、報廢造成的材料損失金額有多少。
資料來源分兩類:
- 生產日報表:來自生產回報的不良(生產不良表搭配生產實績表)以及例外不良(例外不良單),算出每筆的不良數、生產數量、不良率與材料金額。
- 倉庫報廢單:來自倉庫端的報廢出庫異動(調撥出倉至報廢倉、報廢加工單),列出實際報廢的品號、數量與材料金額。
這是一支純查詢報表,不會新增、修改或刪除任何單據;異動資料由生產與庫存模組的單據維護,本表只負責彙整呈現。
前置需求¶
- 權限:F.生產 →
F-110 不良報廢統計的瀏覽權限;要列印報表需有列印權限。 - 單價檢視權限:單位材料費/材料金額兩欄只有在使用者具備本程式的「檢視單價」權限時才會計算並填值(系統以
GetViewPricePermission("QC_QRY2")判斷)。沒有此權限時這兩欄一律顯示 0。 - 基礎資料:統計結果的完整度取決於下列資料的維護狀況——
| 資料 | 影響的結果 |
|---|---|
| 生產不良回報(生產不良表 / 生產實績表) | 「生產日報表」非例外不良列、生產數量、不良率 |
| 例外不良單 | 「生產日報表」中標記為例外不良的列 |
| 倉庫報廢異動(報廢倉調撥出倉、報廢加工單) | 「倉庫報廢單」頁全部資料 |
| 庫存主檔(含品名、廠商代號 1~3 與比例) | 不良品名/品名、責任單位、主要供應廠商代號/廠商簡稱 |
| 廠商資料(含幣別、其他加成) | 材料成本換算時的廠商幣別 |
| BOM(最低階展開) | 單位材料費的零件用量與單價來源 |
| 廠商報價 | 零件最高報價(Ucy_MaxSpup)→ 單位材料費 |
不良類別/處理方式代碼檔(Cmb_C218 / Cmb_C220) |
條件面板的下拉選單內容 |
幣別清單(Cmb_C001) |
成本匯率表帶出的外幣別 |
操作步驟¶
本表的操作集中在左側條件面板與工具列的 查詢、列印。
步驟一 設定查詢條件¶
- 從主選單開啟 主管資訊/生產 → 不良報廢統計。
- 輸入生產部門:預設
ALL(所有部門)。可用部門查詢鈕挑選單一部門。 - 選擇處理方式:預設
ALL。下拉內容來自處理方式代碼檔(Cmb_C220)。 - 選擇不良類別:預設
ALL。下拉內容來自不良類別代碼檔(Cmb_C218)。 - 輸入起訖日期:預設為「本月一日 ~ 今天」。生產日報表比對生產日期/不良日期;倉庫報廢單比對交易日期。
- 視需要輸入品號:以此品號為前置做模糊比對(
品號 LIKE '輸入值%'),留空則不限品號。 -
視需要在右側成本匯率表填入各外幣的匯率(見欄位連動與附加功能)。
小技巧
只想看不良率、不在意金額時可直接查詢;成本匯率與單價計算只影響材料金額相關欄位。
步驟二 執行查詢¶
- 按工具列的
查詢。 - 系統呼叫後端 SP(
DARB_QRY_QC2)取得生產不良、例外不良、倉庫報廢等資料,再於本機彙整、展開 BOM、計算材料成本,狀態列會依序顯示「已經從 SQL 取得資料」「SQL 資料轉換完畢」等訊息。 -
結果分兩個頁籤呈現:
- 生產日報表:每筆不良/報廢,含序號、生產日期、不良品號/品名、不良原因、不良類別、不良數、生產數量、不良率、例外不良、責任單位、單位材料費、材料金額、派工單號、廠商代號/簡稱。
- 倉庫報廢單:每筆倉庫報廢出庫異動,含交易主體、單號、交易日期、品號/品名、數量、單位材料費、材料金額、不良原因、不良類別、處理方式、責任單位、廠商代號/簡稱。
備註
兩個頁籤都是唯讀(
IsReadOnly),不能在格線上直接編輯。改了條件或成本匯率後,再按一次查詢即可重算。
步驟三 列印/匯出¶
-
按工具列的
列印,可選擇兩張報表:- 不良報廢統計表(報表編號
M090-1) - 不良報廢明細表(報表編號
M090-2)
- 不良報廢統計表(報表編號
-
格線資料亦可透過 RadGridView 的匯出功能輸出 Excel。
欄位說明¶
查詢條件¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 生產部門 | — | 預設 ALL;輸入單一部門代號則只查該部門 |
| 處理方式 | — | 下拉,預設 ALL(值 -1);來源代碼檔 Cmb_C220 |
| 不良類別 | — | 下拉,預設 ALL(值 -1);來源代碼檔 Cmb_C218 |
| 起訖日期 | — | yyyy/MM/dd;預設本月一日 ~ 今天 |
| 品號 | — | 以前置字串模糊比對(LIKE '值%'),留空=不限 |
| 成本匯率 | — | 各外幣對本位幣的匯率;只列非本位幣且序號 < 100 的幣別,初始值需自行填入 |
生產日報表(結果頁)¶
| 欄位 | 說明 |
|---|---|
| 序號 | 系統重新編號(5 碼,例 00001) |
| 生產日期 | 生產不良=生產日期;例外不良=不良日期 |
| 不良品號/不良品名 | 不良/報廢的品號;品名由庫存主檔帶出 |
| 不良原因/不良類別 | 來自來源不良單 |
| 不良數 | 該品號該原因的不良數量(彙總列為加總) |
| 生產數量 | 由派工單組立數推算(無組立資料則沿用來源生產數量;例外不良為 0) |
| 不良率 | 不良數 ÷ 生產數量 × 100;生產數量為 0 時顯示 0 |
| 例外不良 | 勾選=來自例外不良單;未勾選=來自生產不良回報 |
| 責任單位 | 取庫存主檔的主要供應廠商(廠商代號 1) |
| 單位材料費 | BOM 展開後各零件「用量 × 最高廠商報價」加總(需單價權限,否則為 0) |
| 材料金額 | 不良數 × 單位材料費(四捨五入取整數),唯讀計算欄 |
| 備註 | 來自來源不良單 |
| 派工單號 | 來源派工單號(系統另會內部帶出派工單品號/品名、製通單品號/品名供統計用,本格線不顯示) |
| 廠商代號/廠商簡稱 | 庫存主檔三家供應商中比例最高者;簡稱由廠商資料帶出 |
倉庫報廢單(結果頁)¶
| 欄位 | 說明 |
|---|---|
| 交易主體 | 報廢異動的交易主體 |
| 單號/交易日期/序號 | 來源倉庫異動單的單號、日期與明細序號 |
| 品號/品名 | 報廢品號;品名由庫存主檔帶出 |
| 數量 | 報廢數量 |
| 單位材料費 | 同生產日報表,BOM 展開計算(需單價權限) |
| 材料金額 | 數量 × 單位材料費(四捨五入取整數),唯讀計算欄 |
| 不良原因/不良類別/處理方式 | 來自來源異動單 |
| 例外不良/備註 | 來自來源異動單(倉庫報廢來源恆為非例外) |
| 責任單位/廠商代號/廠商簡稱 | 取庫存主檔主要供應廠商 |
欄位連動與附加功能¶
這一節整理「輸入某欄位/按某動作後,系統會做什麼」,全部來自實際程式碼。
條件面板的連動¶
- 開啟畫面時自動載入成本匯率表:系統讀幣別清單(
Cmb_C001),只把非本位幣且序號 < 100 的幣別列入成本匯率表(與例外出入庫查詢同一套邏輯)。本位幣不列、序號 ≥ 100 的幣別也不列;初始匯率為空,需由使用者填入。匯率只用於把外幣報價換算成本幣成本。 - 生產部門預設 ALL:開窗時生產部門即帶
ALL,代表不限部門;只有改成單一部門才會在查詢條件加上生產部門 = '部門'。 - 處理方式/不良類別預設 ALL:兩個下拉開窗時都選到值
-1(ALL)。選 ALL 時查詢條件不加該過濾;選到實際代碼時才加上處理方式碼 = n或不良類別碼 = n。下拉清單在開窗時由Cmb_C220/Cmb_C218動態載入,並在最前面插入一筆ALL。 - 品號為前置模糊比對:輸入品號後,查詢條件用
品號 LIKE '輸入值%',因此輸入前置碼可一次查到同系列品號;留空則完全不限品號。
按 查詢 後系統做的事¶
- 取得來源資料:以三組查詢條件(生產日報、例外不良、倉庫報廢)呼叫
DARB_QRY_QC2,一次回傳生產不良、例外不良、派工單、派工零件、倉庫報廢等多張結果表。 - 合併生產不良與例外不良:兩來源合併進「生產日報表」,例外不良列標記例外不良 = 是且生產數量設為 0。
- 以派工單推算組立數量:依派工單與派工零件表,把每個不良品號的「派工零件量」累計起來,作為該品號的生產數量(有組立資料時覆蓋來源生產數量),不良率即以此分母計算。
- 計算單位材料費(需單價權限):對每個不良/報廢品號呼叫
DARB_BIZ_BOMBOTTOM做 BOM 最低階展開,逐一零件以Ucy_MaxSpup(取該零件最高一筆廠商報價、再乘成本匯率換算本幣)算單價,乘上用量加總成單位材料費。沒有單價權限時整段略過,材料費為 0。 - 帶出責任單位與供應廠商:以庫存主檔的廠商代號 1~3 與其比例,挑出比例最高的廠商作為廠商代號,責任單位取廠商代號 1,廠商簡稱由廠商資料帶出,部門簡稱由客廠部資料帶出。
- 彙總與補品名:依「不良品號+是否例外+不良原因+責任單位」彙總不良數;並回填不良品名、派工單品號/品名、製通單品號/品名。
- 倉庫報廢單同步計算:報廢異動兩類來源(報廢倉調撥出倉、報廢加工單)各自做相同的 BOM 材料費計算與供應廠商判定。
金額會變動的兩個前提
單位材料費/材料金額要同時滿足兩件事才會有值:(1) 使用者有單價檢視權限;(2) 右側成本匯率表已填入外幣匯率。任何一項沒到位,金額就會是 0。改完匯率後務必重新按 查詢 才會重算。
列印與報表¶
- 透過
GetReports()提供兩張報表:不良報廢統計表(M090-1,sqliterpt_m090_qcqry2_report1)與不良報廢明細表(M090-2,sqliterpt_m090_qcqry2_report2)。 - 本程式實作
IPrintSource,列印資料由目前查詢結果輸出,因此列印前要先查詢。
VFP 舊版有、新版尚未提供的功能¶
規劃中/尚未提供
VFP 原版另有以下功能,新版 C# 尚未移植,目前畫面看不到:
- 「不良率」第三頁籤與
更新不良率按鈕:舊版可把彙總後的不良率回寫到庫存主檔的不良率欄位(INVENT更新不良率異動)。新版只保留「生產日報表」「倉庫報廢單」兩頁,沒有不良率回寫功能。 - 匯總/明細報表別切換與 Excel 樞紐分析表(
M09D-1):舊版列印時可選匯總或明細、並可開啟 Excel 樞紐分析。新版以上述兩張固定報表取代。
常見問題¶
單位材料費、材料金額都是 0?
有兩個可能原因:(1) 你的帳號沒有本程式的單價檢視權限,系統會直接略過材料成本計算;(2) 右側成本匯率表的外幣匯率還沒填。請確認權限,並填好匯率後重新查詢。
不良率顯示 0 或異常?
不良率=不良數 ÷ 生產數量 × 100,當生產數量為 0 時一律顯示 0。例外不良列的生產數量本來就是 0,所以不會有不良率;其餘列若生產數量為 0,多半是該派工單沒有對應的組立數量可推算。
查不到某些不良資料?
請確認:(1) 起訖日期涵蓋該不良/報廢的日期;(2) 生產部門、處理方式、不良類別三個條件若不是 ALL,資料須符合所選值;(3) 品號條件是前置模糊比對,輸入完整品號或前置碼皆可,但輸入中間片段不會命中。
廠商代號/責任單位是空白?
廠商相關欄位取自庫存主檔的廠商代號 1~3 與比例。若該品號在庫存主檔沒有維護供應廠商,就無法帶出廠商代號、簡稱與責任單位。
為什麼找不到「不良率」頁籤或更新不良率的按鈕?
那是 VFP 舊版的第三頁籤與回寫功能,新版 C# 尚未移植,詳見VFP 舊版有、新版尚未提供的功能。本表目前定位為純查詢報表。
相關功能¶
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/F-Production/images/):
qc_qry2-step1.png— 條件面板(生產部門/處理方式/不良類別/起訖日期/品號 + 右側成本匯率表)qc_qry2-step2.png— 查詢結果「生產日報表」頁(含不良率、單位材料費、材料金額欄)qc_qry2-step3.png— 查詢結果「倉庫報廢單」頁