跳轉到

程式資訊

  • 程式 IDINVPIVOT
  • 所屬子系統:M.主管資訊
  • 狀態:stable

庫存樞紐分析

功能簡介

「庫存樞紐分析」把全公司的品號別/倉庫別庫存結存整理成一張可查可印、又能即時拖拉成 Excel 樞紐表的清單,供主管/生管/成本人員快速掌握「目前手上有多少貨、值多少錢、平均單位成本是多少」。

它提供兩種查詢口徑:

  1. Onhand(現有結存):直接抓系統目前的即時庫存結存。
  2. Monthly Cost(月結成本):抓某一個年月(月結)當下的庫存數量與成本。

查出的明細列在格線上,最右側的 樞紐分析按鈕可以把這份結果套到預設的樞紐範本,一鍵開成 Excel 樞紐表,自行依倉庫、舊群組碼等維度拖拉彙總。

前置需求

  • 權限:M.主管資訊 → 庫存樞紐分析 的瀏覽權限;要列印報表需有列印權限。
  • 檢視單價權限期末成本(Ending Cost)/單位成本(Unit Cost)等金額是否帶值,取決於使用者是否具備本程式的「檢視單價」權限。系統以 GetViewPricePermission("INVPIVOT") 判斷,有權限時才把 price = "Y" 傳給後端 SP 計算成本;沒有此權限時金額欄位一律為空白/0。
  • 基礎資料:查詢結果的完整度取決於下列資料的維護狀況——
資料 影響的結果
品號主檔(SKU、品名規格、舊群組碼) SKU/SKUDescription/Old Group No 的顯示
倉庫主檔 Warehouse(倉庫別)的分組
庫存異動與月結資料 Ending Quantity(期末數量) 的正確性
庫存成本資料 Ending Cost(期末成本)、進而影響 Unit Cost(單位成本)
樞紐範本檔(_Common 設定的 Pivot 範本) 右下角樞紐分析按鈕可選用的範本清單

後端由 SP 計算

結果由後端預存程序 PRIME_QRY_INVPIVOT 產生,C# 端只負責把資料寫入暫存 SQLite 後呈現。若格線完全沒有資料,多半是該 SP 在此資料庫尚未部署或無對應庫存資料。

操作步驟

本表單是純查詢報表,沒有新增/修改/刪除,主要操作是「選口徑 → 查詢 → (可選)轉樞紐/列印」。

  1. 選擇查詢口徑(兩個單選鈕擇一):
    • Onhand:以系統目前的即時庫存結存為準。
    • Monthly Cost:以某個年月的月結庫存為準,需搭配下方的 Year Month
  2. 若選 Monthly Cost,在 Year Month 欄輸入要查的年月(格式 yyyy/MM,預設帶入本月)。
  3. 按工具列的 查詢,結果顯示在中央格線:每一列是一個 SKU × 倉庫 的庫存結存。
  4. (可選)若需要進一步彙總,到格線右下角的樞紐分析區,從下拉選單挑一個樞紐範本,按 樞紐分析 按鈕,系統會把目前結果套範本開成 Excel 樞紐表。
  5. (可選)按工具列 列印 產生報表。

小技巧

改了查詢口徑或年月後,直接再按一次 查詢 即可重新撈一份結果;格線本身也支援匯出 Excel(格線右鍵)。

欄位說明

查詢條件

欄位 必填 說明
Onhand ✔(與 Monthly Cost 擇一) 以即時庫存結存查詢;後端參數送 1
Monthly Cost ✔(與 Onhand 擇一) 以指定年月的月結庫存查詢;後端參數送 2
Year Month 月結口徑要查的年月,格式 yyyy/MM,預設為本月DateTime.Now);遮罩為 YearAndMonth(只輸入年月)

Year Month 一律會送出

不論選 Onhand 或 Monthly Cost,Year Month 的值都會一併送給後端 SP;在 Onhand 口徑下後端是否採用該年月由 SP 決定。實務上選 Onhand 時直接查即可,選 Monthly Cost 時才需特別確認年月正確。

結果格線欄位

欄位 說明/格式
SKU 品號
SKUDescription 品名規格
Old Group No 舊群組碼,常用來做樞紐分組維度
Warehouse 倉庫別
Ending Quantity 期末數量;數量格式(PurchaseQuantity 小數位)
Ending Cost 期末成本(總額);四位小數(FourPlace),需檢視單價權限才會帶值
Unit Cost 單位成本,唯讀、由前端即時計算(見欄位連動與附加功能);單價格式(UnitCost 小數位)

欄位連動與附加功能

這一節把「選某個選項/按某個按鈕後系統會做什麼」逐條列出,全部來自實際程式碼。

查詢口徑切換(Onhand / Monthly Cost)

  • 當你點選 Onhand,系統把後端參數 lp_p1 設為 1,查即時結存。
  • 當你點選 Monthly Cost,系統把 lp_p1 設為 2,並以 Year Month 指定的年月查月結結存。
  • 兩個選項是互斥單選鈕(透過 RadioConverter 綁定同一個 QueryType),同時只會有一個生效,預設為 Onhand

查詢 時系統做的事

當你按下 查詢,系統會:

  1. 依目前口徑組出參數:lp_p112)、YearAndMonth(年月)、price(有檢視單價權限時為 Y,否則空字串)。
  2. 呼叫後端預存程序 PRIME_QRY_INVPIVOT,把回傳的每一列寫入暫存 SQLite 資料表 invpivot
  3. 以虛擬化格線(TsVirtualGrid,啟用列虛擬化)載入該暫存表,因此即使資料量大也不會一次塞滿記憶體。

金額由權限決定

price 參數來自 GetViewPricePermission("INVPIVOT")。沒有檢視單價權限時 price 為空字串,後端不會回傳成本,Ending Cost/Unit Cost 因此為 0/空白;這是設計上的權限控管,不是資料遺失。

Unit Cost(單位成本)即時計算

  • Unit Cost 欄位不是後端算好的,而是前端依公式即時換算:

    單位成本 = 期末成本 ÷ 期末數量(四捨五入到小數 4 位)
    
  • 期末數量為 0 時,單位成本直接顯示 0(避免除以零)。

  • 此欄為唯讀,會隨 Ending Quantity/Ending Cost 一起呈現,不能手動編輯。

樞紐分析(PivotSelector1,右下角)

格線右下角是共用的 PivotSelector1 樞紐選擇器,行為如下:

  • 查詢後(格線有資料時),下拉選單會列出本程式可用的樞紐範本清單。範本來源是系統設定中 ProgramClass = INVPIVOT、Category = D 的 Pivot 設定(GetLCLPivots());若沒有任何範本,整個樞紐區會自動隱藏
  • 從下拉選單選一個範本,按 樞紐分析 按鈕後,系統會:
    1. 先把目前查詢結果整理進樞紐用的 SQLite(資料表 invpivot00)。
    2. 取範本目錄下對應的 .xls/.xlsx 樞紐範本檔,複製一份並開啟,把資料灌進去成為可拖拉的 Excel 樞紐表。
  • 若按按鈕時沒有任何查詢結果,系統會跳出「無資料」提示而不會開檔。

樞紐維度怎麼拖

開出的 Excel 樞紐表可自由把 Warehouse(倉庫別)/Old Group No(舊群組碼) 拖到列/欄區,把 Ending Quantity/Ending Cost 拖到值區彙總,快速看出各倉、各群組的數量與金額分布。

列印

  • 本程式繼承標準查詢報表框架(ERPProgramWithQueryViewModel),工具列具備標準的列印能力;查得到資料才會有可列印內容(HaveData 以格線筆數判斷)。

常見問題

Ending Cost / Unit Cost 一直是空白或 0?

金額欄位需要檢視單價權限。系統以 GetViewPricePermission("INVPIVOT") 判斷,沒有此權限時不會把成本參數送給後端,Ending Cost/Unit Cost 自然為 0/空白。請向系統管理員確認本程式的檢視單價權限。另外,若 Ending Quantity 為 0,Unit Cost 也會被刻意設為 0(避免除以零)。

選了 Monthly Cost 卻查不到資料?

Monthly Cost 是以 Year Month 指定的年月月結庫存為準。請確認:(1) 該年月已完成月結、有對應庫存結存資料;(2) Year Month 格式為 yyyy/MM 且填的是有資料的月份(預設帶本月,月結可能尚未結轉)。

格線完全沒有資料?

結果由後端預存程序 PRIME_QRY_INVPIVOT 產生。若完全查不到,先確認此資料庫已部署該 SP、且系統內確有庫存結存資料;再確認查詢口徑與年月設定無誤。

右下角的樞紐分析按鈕是灰的、或整個不見了?

樞紐區只有在查到資料且有設定樞紐範本時才會出現並啟用。若整個區塊隱藏,表示本程式(ProgramClass = INVPIVOT、Category = D)尚未設定任何 Pivot 範本;若按鈕可見但按了沒反應並跳「無資料」,表示目前格線沒有查詢結果,請先按 查詢

Year Month 在 Onhand 口徑下要填嗎?

Onhand 是查即時結存,實務上直接按 查詢 即可。雖然 Year Month 的值一律會送給後端,但 Onhand 口徑由 SP 決定是否採用該年月,通常不影響即時結存結果。

相關功能


需補截圖清單

以下截圖待功能 runtime 驗收後補拍(放 docs/M-EIS/images/):

  1. invpivot-step1.png — 條件面板(Onhand/Monthly Cost 單選鈕與 Year Month)
  2. invpivot-step2.png — 查詢結果格線(含 SKU/倉庫/期末數量/成本/單位成本欄位)
  3. invpivot-step3.png — 右下角樞紐分析選擇器與開出的 Excel 樞紐表