程式資訊
- 程式 ID:
NOUSE - 所屬子系統:M.主管資訊
- 狀態:stable
呆料查詢¶
功能簡介¶
「呆料查詢」掃描所有有庫存的料件,找出在最近一段期間內幾乎沒有進出(交易比率偏低)的品項,協助生管、倉管與管理階層判斷哪些料是「躺著不動」的呆料。判定方式是:取一段查詢期間,把該期間內各品號的交易數量(出貨、調撥、入庫、領料/耗料等)絕對值除以現有數量得到交易比率,比率低於設定門檻、且期間起點就已有庫存的品項,視為呆料列入清單。
使用情境通常是月底或盤點前,主管想盤點壓在倉庫裡、長期不動用的料,作為清倉、降採或報廢評估的依據。
僅供管理性報表
依 VFP 原始程式註解,本程式定位為管理性報表;正式會計用的呆滯料報表另行撰寫,兩者口徑不一定相同。
前置需求¶
- 權限:M.主管資訊 →
M-080 呆料查詢的瀏覽(及列印)權限。 - 基礎資料:查詢結果的完整與正確度,取決於下列資料的維護狀況——
| 資料 | 影響的結果 |
|---|---|
| 庫存現有數量(invstk) | 哪些品項會被掃描(只看現有數量 > 0 者)、現有數量欄 |
| 各類交易單據(出貨、品名/儲位調撥、入庫、耗料領料) | 交易數量欄、進而影響交易比率與呆料判定 |
| 庫存主檔標準成本(invent) | 單價欄優先取標準成本 |
| 採購最近進貨單價(vw_purch 最新採購單價) | 無標準成本時的單價來源 |
| 群組分類設定(vw_grpm 群組分類) | 群組代號/說明/分類1~3 欄 |
操作步驟¶
本表單是「條件面板 + 結果格線」的查詢報表,沒有新增/修改/刪除等異動功能。
步驟① 設定查詢條件¶
- 從主選單開啟 M.主管資訊 → 呆料查詢。
- 在條件面板輸入 查詢日數(預設
180):從本日往前推算的天數,作為「庫存異動基準日」。 -
輸入 篩選百分比(預設
10):交易數量與現有數量的比率門檻,比率小於等於此值才算呆料。面板下方有口徑說明
條件面板下方列出四行灰綠色說明文字(查詢日數/篩選百分比/交易數量/單價的定義),直接照搬自 VFP 原程式,輸入前可先參考。
步驟② 執行查詢¶
- 按工具列的
查詢。系統呼叫後端 SP(TWORK_QRY_NOUSE)一次算完所有 cursor 與加總邏輯,回傳呆料清單。 - 結果顯示在主格線,每列一個「隸屬倉庫+倉儲代號+品號」的呆料品項(詳見欄位說明)。
步驟③ 結果頁再篩選(選用)¶
查到資料後,可在格線下方的篩選列不重新查詢、純在結果上過濾:
- 在 隸屬倉庫 輸入要看的倉庫(完全相符比對)。
- 在 說明 輸入關鍵字;多個關鍵字用半形逗號
,分隔,任一相符即命中(子字串比對)。 -
按
篩選。命中列會被標記、清單只留下命中列;兩欄都留空再按篩選則還原顯示全部。詳細的篩選行為與其他連動,見欄位連動與附加功能。
步驟④ 列印與匯出(選用)¶
- 結果出來後,可用工具列
列印套用NOUSE報表預覽/列印呆料明細表。 - 也可在格線上按右鍵將內容匯出 Excel。

欄位說明¶
查詢條件¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 查詢日數 | ✔ | 整數(最多 3 位)。從本日往前推算的天數,作為庫存異動基準日。預設 180 |
| 篩選百分比 | ✔ | 整數(最多 3 位)。交易數量/現有數量的比率門檻(百分比)。預設 10 |
結果格線(呆料表)¶
| 欄位 | 說明/格式/預設 |
|---|---|
| 隸屬倉庫 | 該庫存所屬倉庫 |
| 倉儲代號 | 倉儲(儲位)代號 |
| 品號 | 料件品號 |
| 品名 | 料件品名 |
| 現有數量 | 目前庫存數量(兩位小數) |
| 交易數量 | 查詢期間內各類交易加總(兩位小數),是判定呆料的分子 |
| 單價 | 優先取標準成本,無標準成本則取最近進貨單價(單價格式) |
| 現有金額 | 現有數量 × 單價(本幣格式) |
| 群組代號 | 料件群組代號 |
| 說明 | 群組/分類說明,結果頁「說明」篩選即比對此欄 |
| 分類1/分類2/分類3 | 群組對應的三段分類 |
| 篩選 | 結果頁篩選命中標記;按 篩選 命中時填 Y,否則空白(非後端資料) |
欄位連動與附加功能¶
這一節說明「輸入某欄位/按某按鈕後系統會做什麼」,全部對照真實程式碼(C# NouseViewModel/呆料查詢Bll 與 VFP nouse 原程式)。
條件預設值(開窗即帶)¶
- 開啟視窗時,查詢日數自動帶
180、篩選百分比自動帶10(對應 VFPInit的_查詢日數=180、_百分比=10)。兩者皆可改。
按 查詢 時系統做的事¶
- 把查詢日數與篩選百分比送進後端 SP
TWORK_QRY_NOUSE,一次算完整份呆料清單(VFP 原本在前端用五個 cursor +SCAN加總的邏輯,新版整支搬進 SP)。SP 內部的計算口徑沿用 VFP:- 庫存異動基準日=本日 −(查詢日數)。
- 交易數量=基準日(含)之後的各類交易加總:品名調撥(
IT別且數量<0)、跨倉儲位調撥(SS別且隸屬倉庫≠交易部門)、出貨(SA別)、入庫(加工單IN別)、耗料(加工單UM別、且品號非P開頭)。 - 單價先查庫存主檔標準成本,找不到才用採購最近進貨單價。
- 現有金額=現有數量 × 單價(四捨五入至整數)。
- 呆料判定:
(|交易數量| ÷ 現有數量) × 100 ≤ 篩選百分比,且該品項在基準日當天就已有庫存(VFP 2019/06/13 追加:起點無庫存者不算呆料),才列入清單。
- 查詢回來後,系統先把結果頁的「篩選」標記全部清空並顯示全部資料(對應 VFP 查詢鈕開頭的
SET FILTER TO),確保新查的清單不帶上一次的篩選狀態。
結果頁 篩選 按鈕(client 端過濾,不重查 SP)¶
按 篩選 時的行為,完整對應 VFP 篩選鈕.Click:
- 兩欄都留空 → 顯示全部資料(等同清掉篩選)。
- 只填隸屬倉庫 → 只留「隸屬倉庫完全相符」的列。
- 只填說明 → 以逗號拆成多個關鍵字,留下「說明欄含任一關鍵字」的列(子字串、OR 比對);拆字時空白段(連續逗號或開頭/結尾逗號)會被略過。
- 兩欄都填 → 兩條件以 AND 同時成立才命中(倉庫相符 且 說明含任一關鍵字)。
- 命中的列其篩選欄會被標記為
Y,清單只保留命中列。
篩選是純前端過濾,不會重查資料庫
篩選 只在「上一次查詢的結果快取」上過濾,不會重打 SP;所以改了查詢日數/百分比後要重看資料,必須重按 查詢,光按 篩選 不會套用新的條件。
列印與報表¶
- 本表單繼承標準查詢框架(
ERPProgramWithQueryViewModel),工具列的列印走通用列印流程,套用報表代號NOUSE(VFPSql_btn1.rptname="NOUSE")。 - 列印需先有查詢結果,否則沒有可列印的資料。
匯出 Excel¶
- 結果格線支援右鍵匯出 Excel(沿用全系統 RadGridView 的匯出能力,VFP 對應
EXCEL_BTN,匯出檔名「呆料明細表」)。
樞紐分析(VFP 有、新版尚未提供)¶
樞紐分析表功能規劃中/尚未提供
VFP 原程式右下角有「樞紐分析表」下拉與「樞紐分析表」按鈕,會把結果丟到外部 Excel 樞紐範本(依 LCL樞紐分析表 中類別 M08F 的設定)。在 VFP 中此按鈕預設停用,只有當系統有對應樞紐範本時才會啟用。新版 C# NouseViewModel 目前未實作此樞紐匯出,主畫面也未提供該按鈕;如需樞紐分析,請先在格線匯出 Excel 後自行製作。
常見問題¶
查出來是空的,一筆都沒有?
可能原因:①查詢期間內幾乎每個有庫存的料都有正常進出,沒有任何品項的交易比率低於門檻;②該品項在「庫存異動基準日(本日−查詢日數)」當天還沒有庫存——程式規定起點就要有庫存才算呆料,起點無庫存者一律不列。可把篩選百分比調高(門檻放寬)或查詢日數拉長再查一次。
某些料明明很久沒動,卻沒被列為呆料?
交易比率是「交易數量 ÷ 現有數量」。若該料現有數量很小、但期間內有過一筆較大的調撥或領料,比率會被拉高而超過門檻,因而不算呆料。可調高篩選百分比讓更多品項入列,再人工判讀。
單價或現有金額是 0?
單價先取庫存主檔標準成本,沒有標準成本才取採購最近進貨單價;若兩者都查不到(沒維護標準成本、也沒有採購進貨紀錄),單價會是 0,現有金額(現有數量 × 單價)也會跟著是 0。請補維護該品號的標準成本或確認有採購進貨資料。
改了查詢日數或篩選百分比,按「篩選」結果沒變?
篩選 只是在「已經查回來的結果」上做前端過濾,不會重算。改了查詢條件要重新整份計算,請按工具列的 查詢,不要只按結果頁的 篩選。
結果頁「說明」要輸入什麼?怎麼一次找多個?
說明 比對的是結果列的「說明」欄(來自群組分類設定)。要一次找多個關鍵字,用半形逗號 , 分隔,例如 油,潤滑,任一相符的列都會被留下(子字串比對)。空白段會被忽略,只打一個逗號等於沒給有效關鍵字。
找不到「樞紐分析表」按鈕?
新版尚未提供樞紐匯出功能(詳見樞紐分析)。請改用格線右鍵匯出 Excel 後自行建立樞紐分析。
相關功能¶
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/M-EIS/images/):
nouse-step1.png— 呆料查詢主畫面(含條件面板的查詢日數/篩選百分比、結果格線、下方隸屬倉庫/說明/篩選列)