程式資訊
- 程式 ID:
VENDORDEFECT - 所屬子系統:G.採購付款
- 狀態:stable
廠商收料不良統計¶
功能簡介¶
「廠商收料不良統計」依暫收(進貨暫收)/檢驗的結果,統計一段期間內各廠商的收料件數、不良件數、不良率與評分,協助採購、品保主管評估供應商品質。資料來源為進貨暫收主檔與暫收明細(檢驗結果),由後端 SP DARB_QRY_PURAMA(程式代碼 PUR_QRY2)一次查回四份結果,分別呈現在四個頁籤:
- 收料不良表(日期別):以暫收日期彙總,看每天收了幾件、不良幾件。
- 收料不良日報表:把不良率攤平成 1~31 日的橫向日報,含納入數/不良數/累積數/不良率四列(規劃中,詳見欄位連動與附加功能)。
- 收料不良表(廠商別):以廠商彙總並計算評分與名次,是廠商評鑑的核心數據。
- 收料不良明細表:逐筆列出每張暫收單的檢驗明細(品號、數量、NG 數量、問題點等)。
本表單只做查詢與列印,不新增、不修改、不刪除任何資料。
前置需求¶
- 權限:G.採購 →
廠商收料不良統計的瀏覽權限;要列印另需列印權限。 - 基礎資料:查詢結果的完整度取決於下列資料的維護狀況——
| 資料 | 影響的結果 |
|---|---|
| 進貨暫收單(暫收主檔/明細) | 收料件數、不良件數、明細表所有列 |
| 暫收明細的檢驗結果(檢驗日期、NG 數量、問題點、確認、成績表扣分) | 不良件數、不良率、明細表的檢驗欄位 |
| 廠商主檔(廠商代號/簡稱) | 廠商別頁與明細表的廠商簡稱 |
| 廠商別(採購/外包)對應的單號別 | 決定要撈 TP%(採購暫收)或 TT%(外包暫收)的單據 |
單號別對應
廠商別選「採購廠商」時撈暫收單號開頭為 TP 的單據;選「外包廠商」時撈 TT 開頭的單據。這對應 VFP 舊版以暫收單號前置碼判斷來源的邏輯。
操作步驟¶
- 從採購模組選單開啟「廠商收料不良統計」。畫面上半部是查詢條件,下半部是四個結果頁籤。
- 設定查詢條件:
- 起始日期/截止日期:預設帶當月份(起始=當月一日、截止=今天)。日期別、廠商別兩頁的統計比對暫收日期,明細表則比對暫收明細的檢驗日期(對應 VFP 舊版各頁不同的日期條件)。
- 廠商別:下拉選
採購廠商(預設)或外包廠商。 - 視需要勾選 Only Defect(只篩選不良):勾選後「收料不良明細表」頁只保留 NG 數量不為 0 的列(預設不勾)。
- 按
Query(查詢)。系統呼叫 SP 撈資料,並把查詢時間填入 Query Time 欄位。 - 在下方四個頁籤檢視結果:
Group By Date(收料不良表日期別)Daily(收料不良日報表)Group By Vendor(收料不良表廠商別,含名次與評分)Detail(收料不良明細表)
- 需要紙本或預覽時,呼叫工具列的列印功能開啟廠商來料不良列印,系統會把目前的單號帶入列印起訖單號。
小技巧
各結果頁籤都是 TsRadGridView,可在格線上點欄位標頭排序。VFP 舊版每頁原有的「匯出 Excel/列印/Email」按鈕在新版未保留為頁內按鈕,列印改由工具列統一進入廠商來料不良列印。
欄位說明¶
查詢條件¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| Document No(單號) | — | 系統產生,唯讀。供列印帶入起訖單號用 |
| Created Date(建立日期) | — | 唯讀,新增條件時帶今天 |
| Query Time(查詢時間) | — | 唯讀,按 Query 當下自動填入 |
| Beginning Date(起始日期) | ✔ | 預設當月一日;日期別/廠商別頁比對暫收日期、明細表比對檢驗日期 |
| Ending Date(截止日期) | ✔ | 預設今天 |
| Vendor Type(廠商別) | ✔ | 採購廠商(預設,撈 TP%)或 外包廠商(撈 TT%) |
| Only Defect(只篩選不良) | — | 勾選時明細表只留 NG 數量≠0 的列(預設不勾) |
收料不良表(日期別)¶
| 欄位 | 說明 |
|---|---|
| Temp Receiving Date(暫收日期) | 彙總的日期 |
| Receiving Count(收料件數) | 該日的收料件數 |
| Defect Count(不良件數) | 該日的不良件數 |
| Defect Rate(不良率) | =不良件數 ÷ 收料件數 × 100(四捨五入兩位),收料件數為 0 時為 0 |
| Grade Count(成績表件數) | 該日列入成績表(扣分)的件數 |
| Notes(備註) | 備註文字 |
收料不良日報表¶
橫向日報,列為種類(納入數/不良數/累積數/不良率),欄為 01~31 日與 Subtotal(合計)。各日數值由日期別資料攤平而來,詳見欄位連動與附加功能。
收料不良表(廠商別)¶
| 欄位 | 說明 |
|---|---|
| Rank(名次) | 依得分由高到低排名;得分相同名次相同;最後一列名次 9999 為「合計」列 |
| Vendor Code/Vendor Name(廠商代號/簡稱) | 合計列的廠商簡稱顯示「合 計:」 |
| Receiving Count(收料件數) | 該廠商收料件數 |
| Defect Count(不良件數) | 該廠商不良件數 |
| Defect Rate(不良率%) | =不良件數 ÷ 收料件數 × 100(兩位四捨五入) |
| Deduction For Defects(不良扣分) | =不良率 × 0.4(兩位四捨五入),上限 40 |
| Deduction For Grade(成績表扣分) | =成績表率 × 0.1(兩位四捨五入),上限 10 |
| Score(得分) | =50 − 不良扣分 − 成績表扣分 |
| Notes(備註) | 備註文字 |
收料不良明細表¶
| 欄位 | 說明 |
|---|---|
| Vendor Code/Vendor Name(廠商代號/簡稱) | 來源廠商 |
| Temp Receiving Document No(暫收單號) | 對應的進貨暫收單號 |
| SKU(品號) | 收料品號 |
| Temp Receiving Date(暫收日期) | 暫收日期 |
| Quantity(數量) | 暫收數量 |
| Inspection Date(檢驗日期) | 檢驗日期 |
| NGQuantity(NG 數量) | 檢驗判定的不良數量 |
| Confirmed(確認) | 確認狀態 |
| Question(問題點) | 不良問題點描述 |
| Order No(訂購單號) | 來源採購訂單號 |
| Is Grade Minus(成績表扣分) | 是否計入成績表扣分 |
| Notes(備註) | 備註,查詢帶回後為空字串 |
欄位連動與附加功能¶
這一節說明「輸入條件、按下按鈕後系統實際做了什麼」,全部對照新版 C# 與 VFP pur_qry2 程式碼。
-
開啟畫面 / 新增條件(AfterAddNew):系統把條件重設為預設值——廠商別=
1(採購廠商)、建立日期=今天、起始日期=當月一日、截止日期=今天,並清空四個結果頁籤。因此每次重開或重新建立條件,畫面都會回到「查當月、採購廠商」的起點。 -
廠商別 → 單號別:按
Query時,系統依廠商別換算要撈的單號別——選採購廠商查TP%、選外包廠商查TT%,再連同起訖日期傳給 SPDARB_QRY_PURAMA。換言之,改了廠商別一定要重新按Query才會反映。 -
按
Query(查詢)的完整流程:- 若目前不是編輯狀態,系統先自動進入新增(產生一筆條件)。
- 把目前時間寫入 Query Time。
- 用起始日期、截止日期、廠商別、Only Defect 組成查詢參數,呼叫
收料不良統計Bll執行查詢。 - 清空四個頁籤後,把回傳的日期別/廠商別/明細三組資料分別塞入對應頁籤。
-
不良率自動計算(日期別/廠商別):不良率不是資料庫欄位,而是當場算的——不良率=不良件數 ÷ 收料件數 × 100(四捨五入兩位),收料件數為 0 時不良率顯示 0,避免除以零。
-
廠商別評分與名次(產生收料不良表廠商別):查詢後系統會對每個廠商逐項計算:
- 不良扣分=不良率 × 0.4(兩位四捨五入),超過 40 以 40 計。
- 成績表率=成績表件數 ÷ 收料件數 × 100;成績表扣分=成績表率 × 0.1,超過 10 以 10 計。
- 得分=50 − 不良扣分 − 成績表扣分。
- 依得分由高到低排序,逐列給名次(得分相同則名次相同)。
- 最後加一列合計列(名次
9999、簡稱「合 計:」),把收料件數、不良件數、各扣分、得分加總,合計列的不良率以加總後的件數重算。
-
Only Defect(只篩選不良):勾選後,收料不良明細表只保留 NG 數量不為 0 的列;不勾則明細表呈現所有暫收檢驗列。此勾選只影響明細表,不影響日期別與廠商別兩頁的統計。
-
明細表的廠商簡稱/品號帶值:明細是後端 SP 查回的,含廠商代號、廠商簡稱、品號、暫收單號、檢驗日期、NG 數量、問題點、確認、訂購單號等欄位;前端只負責顯示,不再額外撈主檔。
-
列印(GetPrintViewModel):呼叫列印時,系統建立廠商來料不良列印的列印視窗,並把目前條件的單號同時帶入列印的起始單號與截止單號。列印頁以單號區間(
DocumentNo between 起 and 訖)為條件出報表。
收料不良日報表(Daily 頁)目前未帶入資料
新版 VM 中,把日期別資料攤平成日報表(納入數/不良數/累積數/不良率 × 1~31 日)的程式段目前是註解停用的,所以 Daily 頁籤現階段不會顯示資料。後端攤平邏輯(依暫收日期的「日」填入 d01~d31、逐日累積、合計欄)已備妥,待重新啟用後即可呈現。在那之前,請以「收料不良表(日期別)」頁查看每日數據。
VFP「品質管制」頁尚未提供
VFP 舊版 pur_qry2 另有第 5 頁「品質管制」(依品號/品管制日列出管制批數、合格批數、抽檢數量等)。新版 C# 尚未移植此頁,目前僅提供日期別、日報表、廠商別、明細表四項。
常見問題¶
按了 Query 卻查不到任何資料?
請依序確認:(1) 起始/截止日期區間內確有暫收/檢驗資料——日期別、廠商別頁以暫收日期為條件,明細表以檢驗日期為條件,兩者落點不同時各頁筆數可能不一致;(2) 廠商別選對了(採購撈 TP%、外包撈 TT%),若你的暫收單是外包卻選了採購廠商就會落空;(3) 區間預設只有當月,要查更早的資料記得把起始日期往前拉。
勾了「Only Defect」之後明細表變少很多?
這是正常的。Only Defect 會把 NG 數量為 0 的明細列濾掉,只留真正判定不良的列;它只影響「收料不良明細表」,日期別與廠商別兩頁不受影響。取消勾選再按 Query 即可看回全部明細。
「Daily」(日報表)頁是空的?
目前新版尚未啟用日報表的資料帶入(程式段暫時停用),所以該頁不顯示資料。請改看「收料不良表(日期別)」頁取得每日納入/不良數據。詳見欄位連動與附加功能的說明。
廠商別頁的「不良率/得分」算出來和我手算不同?
系統一律以收料件數為分母、四捨五入兩位計算不良率;不良扣分有 40 上限、成績表扣分有 10 上限,得分為 50 − 不良扣分 − 成績表扣分。最後一列名次 9999 是合計列,其不良率是用加總後的件數重算的,不是各列平均。
改了廠商別或日期,畫面數字沒變?
所有條件改完都要重新按一次 Query 才會重查。條件本身不會即時觸發查詢。
相關功能¶
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/G-Purchasing/images/):
vendordefect-step1.png— 查詢條件面板(起訖日期、廠商別、Only Defect、Query)vendordefect-step2.png— 「收料不良表(廠商別)」頁,含名次/得分與合計列vendordefect-step3.png— 「收料不良明細表」頁(建議含 Only Defect 勾選前後對照)