程式資訊
- 程式 ID:
STOCKLIFE - 所屬子系統:M.主管資訊
- 狀態:stable
庫齡呆料分析¶
功能簡介¶
「庫齡呆料分析」把同一份倉庫庫存從三個角度切開來看,協助生管、採購與經營主管盤點滯銷與資金壓在哪裡:
- 庫齡分析/庫齡明細表:指定查詢年月,把該月月底庫存依「最近一次進貨/入庫距今多久」拆成
1 月~7 月以上共 7 個庫齡桶,看出哪些料壓得太久。 - 呆料分析:以「近 N 天幾乎沒有流動」為條件篩出呆滯品項,並用 BOM 最低階材料成本加製程加工成本估出它們的價值。
- 客戶廠商交叉分析:把查詢日的庫存,依主供應商與 ABC 重要客戶歸戶,回答「這批料是為了哪個客戶、向哪個廠商買的」。
四個結果頁籤共用一張成本匯率表(外幣報價換算成本幣用)。本程式只查詢、不寫回任何單據。
資料來源
庫存餘額沿用既有的 DARB_INVREC(逐隸屬倉庫呼叫),BOM 最低階展開用 DARB_BIZ_BOMBOTTOM,三個頁籤的明細資料由 TWORK_QRY_STOCKLIFE(參數 P1/P3/P4)分別取得。
前置需求¶
- 權限:M.主管資訊 →
M-170 庫齡呆料分析的瀏覽(與列印)權限。 - 基礎資料:查詢結果的完整度取決於下列資料的維護狀況——
| 資料 | 影響的結果 |
|---|---|
| 倉庫主檔(隸屬倉庫/倉儲代號) | 條件面板的倉儲輸入、各頁籤的庫存來源;輸入 ALL/可用倉 決定查詢範圍 |
| 進貨/入庫等庫存異動單(RA/MP/RB/WK…) | 庫齡分桶(依交易日期距查詢日的天數歸桶)、呆料分析的流動量 |
| 庫存主檔(品名、廠商代號 1/2/3 及比例、安全庫存、批量、包裝量、最小採購量) | 各頁籤的品名、主供應商判定、交叉分析的庫存參數欄 |
| 廠商報價(含幣別、單價) | 庫齡分析的單位成本、呆料分析與交叉分析的單價/金額 |
| 廠商主檔(廠商類別、其他加成) | 品別/廠商類別欄、交叉分析原物料單價的加成 |
| BOM 與製程(最低階零件、標準工時) | 呆料分析的材料/加工金額、交叉分析組件的組立價 |
| 銷售出貨(客戶別出貨量/本幣單價) | 交叉分析的 ABC 客戶分級與客戶歸戶 |
| 幣別資料(Cmb_C001) | 成本匯率表的幣別清單(非本位幣且序號 < 100) |
成本匯率必須自行填寫
成本匯率表的幣別清單會自動帶出,但匯率值預設為 0,並非當日匯率。三個查詢鈕在執行前都會檢查:只要任一列匯率 ≤ 0,就跳出「請輸入正確之匯率 !!!」並中止查詢。請先在條件面板把每個外幣的成本匯率填好。
操作步驟¶
本程式畫面分成左側條件面板與右側四個結果頁籤。條件面板上的「查詢年月/倉儲代號/成本匯率」服務於庫齡分析與庫齡明細表;呆料分析與客戶廠商交叉分析則各自在自己的頁籤上方有獨立條件列與 查詢 鈕。
步驟① 設定共用條件¶
- 在條件面板輸入查詢年月(格式
YYYY/MM,預設本月)。此年月決定庫齡分析的「月底庫存」基準日。 - 輸入倉儲代號:預設
可用倉;要查全部倉庫請輸入ALL。 - 填寫成本匯率表:每個外幣一列,直接點儲存格輸入該幣別換算成本幣的匯率(見上方警告)。
步驟② 庫齡分析/庫齡明細表¶
- 確認共用條件已填妥。
- 按工具列的
查詢。系統依查詢年月算出月底日,取該月底庫存並分桶。 - 結果同時填入兩個頁籤:
- 庫齡分析:每個倉儲代號+品號一列,
1 月~7 月以上七桶的數量與金額。 - 庫齡明細表:把每筆庫存照交易單(新→舊)切成多列,每列帶一個實際天數,沒被交易單消化完的殘量補一列
天數 = 9999。
- 庫齡分析:每個倉儲代號+品號一列,
步驟③ 呆料分析¶
- 切到 呆料分析 頁籤,在上方條件列輸入:
- 查詢天數:往回看幾天的流動(預設 0)。
- 選 流動率 或 流動量,並填對應的篩選流動率(%)/篩選流動量門檻。
- 人工費率(元/秒):估加工成本用。
- 倉儲代號(全部倉庫輸入
ALL)。 - 排序:依
廠商或品號。
- 按該頁籤的
查詢。系統篩出「近 N 天幾乎沒動」的品項,並估出單價與現有金額。
步驟④ 客戶廠商交叉分析¶
- 切到 客戶廠商交叉分析 頁籤,在上方條件列輸入:
- 查詢日期(格式
YYYY/MM/dd,預設今天)。 - 隸屬倉庫起~訖(兩個倉儲輸入框,留空代表不限)。
- 是否勾選 含上月庫存(預設勾選)。
- 查詢日期(格式
- 按該頁籤的
查詢。系統取查詢日庫存,套上主供應商定價與 ABC 客戶歸戶後列出明細。
小技巧
四個頁籤的格線都是唯讀的查詢結果,可用 RadGridView 的欄位排序、欄位篩選與右鍵匯出 Excel。改了成本匯率或頁籤條件後,再按一次對應的 查詢 即可重算。
欄位說明¶
共用條件(條件面板)¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 查詢年月 | ✔ | 格式 YYYY/MM;預設本月。用於庫齡分析/明細的月底庫存基準。年月不合法會擋下查詢 |
| 倉儲代號 | — | 隸屬倉庫;預設 可用倉,全部倉庫輸入 ALL |
| 成本匯率(幣別/成本匯率) | ✔(外幣) | 幣別欄唯讀、自動帶出(非本位幣且序號 < 100);成本匯率欄可編輯,預設 0,須自行填入 |
呆料分析條件(頁籤上方)¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 查詢天數 | — | 往回統計流動量的天數;預設 0 |
| 篩選別 | ✔ | 流動率 或 流動量;預設流動率 |
| 篩選流動率(%) | — | 流動率門檻;預設 0 |
| 篩選流動量 | — | 流動量門檻;預設 0 |
| 人工費率(元/秒) | — | 估加工成本用;預設 0 |
| 倉儲代號 | — | 全部倉庫輸入 ALL 或留空;預設空白 |
| 排序 | ✔ | 廠商(依廠商代號)或 品號;預設廠商 |
客戶廠商交叉分析條件(頁籤上方)¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 查詢日期 | ✔ | 格式 YYYY/MM/dd;預設今天。格式錯誤會擋下查詢 |
| 隸屬倉庫起/訖 | — | 倉庫區間(BETWEEN);起訖輸反系統會自動對調 |
| 含上月庫存 | — | 勾選時加查上月月底庫存比較欄;預設勾選 |
結果頁籤主要欄位¶
| 頁籤 | 欄位 | 說明 |
|---|---|---|
| 庫齡分析 | 倉儲代號/品別/品號/品名/廠商代號/廠商簡稱 | 庫存主檔與廠商主檔帶出;品別 填的是廠商類別 |
| 1~6 月數量/金額、7 月以上數量/金額 | 依每筆庫存的交易單距查詢日的天數,每 30 天一桶歸入對應月齡桶 | |
| 合計數量/合計金額 | 該品號該倉的期末庫存數量與金額 | |
| 庫齡明細表 | 數量/單位成本/金額/天數 | 把每筆庫存照交易單切出的明細列;天數=查詢日 − 該批交易日期,殘量列為 9999 |
| 呆料分析 | 現有數量 | 倉儲現有庫存量 |
| 交易數量 | 查詢期間流動量(例外領料+調撥出倉+加工+出貨) | |
| 單價 | 材料金額(BOM 最低階 × 最高廠報價)+ 加工金額(標準工時 × 人工費率) | |
| 現有金額 | 現有數量 × 單價 | |
| 客戶廠商交叉分析 | 客戶代號/客戶簡稱 | ABC 歸戶結果(見下節) |
| 廠商類別/廠商代號/廠商簡稱 | 主供應商(庫存主檔廠商 1/2/3 比例最大者) | |
| 單價/金額 | 原物料=最新廠報價 × 匯率 ×(1+其他加成);組件=組立價;金額=數量 × 單價 | |
| 上月庫存/安全庫存/批量/包裝量_包/最小採購量 | 庫存主檔參數,供補貨研判 |
欄位連動與附加功能¶
這一節把「按某個鈕、填某個欄位後,系統實際會做什麼」逐條列出,全部來自程式碼。
開窗即載入:成本匯率清單¶
當你開啟本程式,條件面板的成本匯率表會自動填入幣別清單:取幣別資料(Cmb_C001)中非本位幣且序號 < 100 的幣別,每個一列。匯率欄此時是 0,需要你手動填。本位幣不會列出(換算匯率視為 1)。
三個 查詢 鈕共同的匯率檢查¶
不論按哪個頁籤的查詢,系統都會先掃成本匯率表:只要任一列匯率 ≤ 0,就跳出「請輸入正確之匯率 !!!」並中止。這是為了避免外幣報價以 0 匯率算出 0 成本。
庫齡分析 查詢(共用條件 + 工具列查詢)¶
當你按工具列 查詢:
- 先檢查匯率,再把查詢年月換算成月底日;年月不合法會跳「請輸入正確之查詢年月 (YYYY/MM) !!!」並中止。
- 逐隸屬倉庫呼叫
DARB_INVREC取月底庫存,帳列數為 0 的品項略過,其餘成為基底列(帶倉儲代號、品號、合計數量)。 - 單位成本:以「品號+廠商代號」找最新廠報價;找不到退而找「品號」第一筆;再乘上對應幣別的成本匯率(四捨五入到小數 4 位)。合計金額=合計數量 × 單位成本。
- 庫齡分桶:把該品號該倉的交易單由新到舊掃過,依每筆距查詢日的天數歸入桶(≤30 天為 1 月、≤60 為 2 月……>180 為 7 月以上);
RA/MP為加項、RB為減項。當某桶累計超過合計數量時,把該桶夾到剛好補滿合計數量並停止。 - 分桶後若各桶總和對不上合計數量,差額全部塞進「7 月以上」桶;若 7 個桶全為 0 但合計數量不為 0,則整筆列入「7 月以上」。
- 同一次查詢也產出庫齡明細表:每筆庫存照交易單(新→舊)切出多列,每列帶實際天數(
RB取負數);庫存沒被交易單消化完的殘量補一列天數 = 9999。
為什麼會有天數 9999 的列
當某品號的庫存量大於能對應到的進貨/入庫交易單總量(例如歷史交易單已被清檔),多出來的庫存無法判定庫齡,系統一律標成 9999(等同「很久以前/無從判定」),不是錯誤。
呆料分析 查詢(頁籤內鈕)¶
當你按呆料分析頁籤的 查詢:
- 先檢查匯率。
- 以「今天 − 查詢天數」為起點,向
TWORK_QRY_STOCKLIFE(P3)取近 N 天的進貨、入庫、例外領料、調撥出倉、加工、出貨彙總,以及現有庫存。 - 篩呆料:對每個現有數量 > 0 的品項,先算「現有數量 − 近 N 天進貨/入庫」必須 > 0(代表這些料不是剛進的);再依篩選別判斷:
- 流動率:|流動量| ÷ 現有數量 × 100 ≤ 篩選流動率。
- 流動量:|流動量| ≤ 篩選流動量。
- 估價:主供應商取庫存主檔廠商 1/2/3 中比例最大者;單價=材料金額(BOM 最低階零件數量 × 最高廠報價,逐件 ROUND 後加總)+加工金額(製程標準工時 × 人工費率,逐製程 ROUND 後加總)。現有金額=單價 × 現有數量。
- 結果依排序(廠商代號或品號)排列。
客戶廠商交叉分析 查詢(頁籤內鈕)¶
當你按交叉分析頁籤的 查詢:
- 先檢查匯率,再驗證查詢日期格式;格式錯誤會跳「請輸入正確之查詢日期 !!!」並中止。
- 隸屬倉庫起訖若輸反,系統自動對調。
- 逐隸屬倉庫呼叫
DARB_INVREC取查詢日庫存(帳列數 0 略過)。 - ABC 客戶分級:以「查詢日 −365 天當月 1 日」起算的客戶出貨彙總,把客戶依金額由大到小累積,累積百分比 ≤ 98 為
A、≤ 99 為B、其餘C。 - 客戶歸戶:只賣給單一客戶且該客戶為 A 級的品號,沿 BOM 展開到最低階零件並歸該客戶;其次取「出貨量最大的客戶」;都對不到則歸
其他。 - 主供應商與定價:主供應商取庫存主檔廠商 1/2/3 比例最大者。原物料/零件的單價=最新廠報價 × 成本匯率 ×(100+廠商其他加成)÷ 100;有 BOM 的組件則用組立價(最低階零件數量 × 最高廠報價逐件 ROUND 後加總)。金額=數量 × 單價。
- 勾選 含上月庫存 時,再查上月月底庫存填入每列的「上月庫存」欄。
客戶代號 A04/A09 併入 A01
交叉分析在彙整客戶出貨時,會把客戶代號 A04、A09 視同 A01。這是來源公司既有的歸戶規則,照舊保留。
列印與匯出¶
四個頁籤都是唯讀的 TsRadGridView,支援欄位排序、欄位篩選與右鍵匯出 Excel。本程式具列印權限,列印走主管資訊查詢報表的共用列印機制。
常見問題¶
一按查詢就跳「請輸入正確之匯率 !!!」?
成本匯率表的匯率值預設是 0,必須自己填。只要表中有任何一列匯率 ≤ 0,三個查詢鈕都會被擋下。請在條件面板把每個外幣的成本匯率填成正確的數字再查。
庫齡明細表出現一堆「天數 = 9999」的列?
那是庫存量大於可對應到的進貨/入庫交易單總量時,無法判定庫齡的殘量,系統統一標 9999。通常表示歷史交易單已被清檔或調整過,不是程式錯誤。完整邏輯見欄位連動與附加功能。
庫齡分析/交叉分析的單價、金額是 0?
單位成本/單價來自廠商報價乘成本匯率。請確認:該品號(或品號+主供應商)有報價、對應幣別在成本匯率表中已填正確匯率。組件的組立價則需要 BOM 與最低階零件報價齊備。
查詢年月怎麼填?為什麼提示「請輸入正確之查詢年月」?
查詢年月格式是 YYYY/MM(例如 2026/06),系統會自動換算成該月月底日當作庫存基準。格式不對或月份非法都會擋下查詢。
呆料分析查不到任何資料?
呆料分析只列出「現有數量 − 近 N 天進貨/入庫 > 0」且流動率/流動量低於門檻的品項。若查詢天數太小、門檻設太嚴,或品項最近剛進貨,就會被排除。可調大查詢天數或放寬篩選門檻。
交叉分析的客戶代號顯示「其他」或廠商顯示「無」?
客戶歸到 其他 表示該品號不屬於任何 A 級單一客戶、也不是任何客戶的最大出貨品;廠商顯示 無 表示該品號在庫存主檔找不到對應的主供應商資料。請補維護庫存主檔的廠商代號/比例與出貨資料。
相關功能¶
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/M-EIS/images/):
stocklife-step1.png— 左側條件面板(查詢年月/倉儲代號/成本匯率表)stocklife-step2.png— 庫齡分析頁籤(含 1~7 月以上分桶欄)與庫齡明細表頁籤stocklife-step3.png— 呆料分析頁籤(含上方流動率/流動量條件列)stocklife-step4.png— 客戶廠商交叉分析頁籤(含查詢日期/倉庫區間/含上月庫存條件列)