跳轉到

程式資訊

  • 程式 IDEXCE_INOUT
  • 所屬子系統:H.庫存管理
  • 狀態:stable

例外出入庫查詢

功能簡介

「例外出入庫查詢」把指定期間內、指定倉庫的例外出庫/例外入庫交易明細撈出來,並針對每一筆品號估算它的組立價(依 BOM 展開後的最低階零件成本)與銷售價(最低客戶報價打九折),再乘上數量算出組立金額銷售金額

這支屬於主管資訊(EIS)類的純查詢報表,適合生管/成本主管回答:

  1. 這段期間有哪些不在正常流程內的例外進出料?是哪個部門、哪張單、什麼原因?
  2. 這些例外進出的料,換算成成本(組立價)與市價(銷售價)大概值多少錢?

資料來源與所屬模組

本頁雖收錄在「庫存管理(H-Inventory)」手冊下,實際程式碼歸在主管資訊(M.EIS)模組(ProgramClass.EXCE_INOUT,VFP 原始程式 scx_qry.vcx → exce_inout)。例外進出交易本身由庫存異動單(trlima)例外進出(trlost)等庫存單據產生,因此放在庫存模組一起查閱較直覺。

前置需求

  • 權限H-110 例外出入庫查詢 的瀏覽權限。
  • 基礎資料:查詢結果與估價的完整度取決於下列資料的維護狀況——
資料 影響的結果
例外進出交易(trlima / trlost,序號前置碼 EOEI 主要查詢明細;沒有交易就查無資料
倉庫主檔(stkbas,隸屬倉庫 / 倉庫說明) 條件面板的倉庫多選清單
BOM 結構(DARB_BIZ_BOMBOTTOM 展開) 每筆品號的組立價(展開到最低階零件)
庫存主檔(invent,品號/品別/三家供應廠商及比例) 組立價取最高廠商報價時的供應商來源
廠商資料(spdata,含幣別、其他加成、已審核報價) 組立價的零件單價(最高廠商報價 × 成本匯率)
客戶報價(最低客戶報價) 銷售價(最低客戶報價 × 0.9)
幣別匯率資料 條件面板成本匯率表的初始清單(非本位幣、序號 < 100 的幣別)

操作步驟

本表單是「先設條件、後按查詢」的單頁查詢,沒有新增/修改/刪除等異動動作。

  1. 從主選單開啟 主管資訊 → 例外出入庫查詢,畫面分成上方條件面板與下方「例外出入查詢」結果格線。
  2. 在條件面板選擇 單據別
    • 零件例外出庫 / 成品例外出庫 → 系統抓序號前置碼 EO(出庫)的交易。
    • 零件例外入庫 / 成品例外入庫 → 系統抓序號前置碼 EI(入庫)的交易。
    • 預設為 零件例外出庫
  3. 輸入 起訖日期(比對交易日期)。預設為本月 1 日 ~ 今天
  4. 倉庫 多選格線勾選要查的倉庫:
    • ALL(全部倉庫) 列 = 查全部倉庫。
    • 或逐列勾選個別倉庫。
    • 至少要勾一個,否則按查詢會被擋下(見欄位連動與附加功能)。
  5. 視需要調整 成本匯率 表:系統列出所有非本位幣的幣別,組立價要把外幣的廠商報價換算成本幣時會用到這裡的匯率。每一格都必須填大於 0 的數值。
  6. 按工具列的 查詢,結果顯示在下方「例外出入查詢」格線。

    小技巧

    結果格線資料可在欄位標題上按右鍵,選 匯出至 Excel 把整份結果匯出。

欄位說明

查詢條件

欄位 必填 說明 / 格式 / 預設
單據別 下拉:零件例外出庫零件例外入庫成品例外出庫成品例外入庫。預設 零件例外出庫。含「入庫」者查 EI,否則查 EO
起訖日期 yyyy/MM/dd,比對交易日期。預設起=本月 1 日、訖=今天
倉庫(多選) 勾選要查的倉庫;勾 ALL 列=全部倉庫。至少勾一個
成本匯率 各非本位幣對本幣的換算匯率,組立價估價用。每格須 > 0

結果格線「例外出入查詢」

欄位 說明
部門代號/部門簡稱 交易部門(SP 回傳的交易部門 / 客廠部簡稱)
品號/品名 例外進出的品號與品名
隸屬倉庫 該筆交易的隸屬倉庫
單號/序號 來源單據的單號與明細序號
交易日期 交易發生日期
數量 例外進出數量
組立價 BOM 最低階零件成本合計(見欄位連動與附加功能),單價格式
銷售價 最低客戶報價 × 0.9,單價格式
組立金額 數量 × 組立價(四捨五入至整數,本幣)
銷售金額 數量 × 銷售價(四捨五入至整數,本幣)
例出入原因 例外出入碼對應的原因說明(由原因對照檔帶出)
備註 來源單據備註(系統把備註與備註 1 合併成一欄)
是否最後 勾選表示該筆是同一「部門代號+單號」群組的最後一列(分組視覺輔助)

欄位連動與附加功能

這一節把「按某欄位/某按鈕後系統實際會做什麼」逐條列出,來源是 Exce_inoutViewModel / 例外出入庫查詢Bll 與 VFP exce_inout 原始程式。

條件面板載入時的自動帶值

  1. 倉庫清單自動載入:開啟條件面板時,系統以 DARB_GETDATA4 讀倉庫主檔(stkbas)的「隸屬倉庫/倉庫說明」,在清單最上面補一列 ALL(全部倉庫),其餘為各別倉庫。
  2. 成本匯率清單自動載入:系統讀幣別清單(Cmb_C001),只把非本位幣序號 < 100 的幣別列入成本匯率表(與 qc_qry2 同一套邏輯);本位幣不列、序號 ≥ 100 的幣別也不列。初始匯率為空,需由使用者填入。
  3. 單據別預設:載入時帶 零件例外出庫(對應 VFP Init 的 例外出入.VALUE='零件例外出庫')。
  4. 起訖日期預設:訖=今天、起=本月 1 日。

    與 VFP 預設的差異

    VFP 原版日期欄位沒有預設值(空白)。新版 C# 改帶「本月 1 日~今天」當預設,省去每次手動輸入;查詢範圍仍可自行調整。

查詢 時的檢核與連動

當你按 查詢,系統依序做:

  1. 匯率檢核:若成本匯率表內任一列匯率 ≤ 0,跳出「請輸入正確之匯率 !!!」並中止查詢(對應 VFP LOCATE FOR 成本匯率<=0)。
  2. 倉庫檢核:若一個倉庫都沒勾,跳出「請選擇倉庫 !!!」並中止查詢。
  3. ALL 展開:若你勾的是 ALL 列,系統視為全部倉庫(傳空字串給 SP,不加倉庫條件);否則把勾選的倉庫代號以逗號串接帶給 SP。
  4. 撈交易明細:以單據別(EOEI)、起訖日期、倉庫清單呼叫 SP TWORK_QRY_EXCE_INOUT,取回部門、品號、單號、交易日期、數量、例出入原因等欄位。SP 在回傳前已替你做好兩件事:把備註與備註 1 合併成一欄、以及標記是否最後(同「部門代號+單號」群組、序號最大的那一列為「是」)。同一次呼叫的第二個結果集帶回每個品號的最低客戶報價
  5. 逐筆估價:C# 端對每一筆明細計算組立價、銷售價、組立金額、銷售金額(詳下節)。

組立價怎麼算

每一筆品號的 組立價 是這樣推出來的(對應 VFP 查詢鈕的 BOM 展開段):

  1. 以該品號 + 交易日期呼叫 DARB_BIZ_BOMBOTTOM 把 BOM 展開到最低階零件
  2. 對每個最低階零件,取它的最高廠商報價Ucy_MaxSpup:依庫存主檔設定的三家供應廠商各取最新報價,每家以條件面板的成本匯率換算本幣、再乘上 1 +(關稅稅率+廠商其他加成)後取三家最高者)。
  3. 組立價 = Σ(零件數量 × 該零件最高廠商報價),每項先四捨五入到小數 2 位再累加。
  4. 同一「品號+交易日期」的展開結果會被快取,相同組合不重複展開以加速。

為什麼組立價可能是 0

若品號沒有 BOM、或展開出來的零件都查不到有效廠商報價,組立價會是 0。這不是錯誤,而是缺報價/缺 BOM 的結果。

銷售價怎麼算

銷售價 = 該品號的最低客戶報價 × 0.9,四捨五入到小數 2 位(對應 VFP ROUND(CY_MINCUUP(品號)*0.9,2))。查不到客戶報價時銷售價為 0。

金額與「是否最後」

  1. 組立金額 = 數量 × 組立價,四捨五入到整數(本幣)。
  2. 銷售金額 = 數量 × 銷售價,四捨五入到整數(本幣)。
  3. 是否最後:由 SP 計算(ROW_NUMBER() OVER PARTITION BY 部門代號, 單號),把每一個「部門代號+單號」群組的最後一列(序號最大者)標記為「是」,方便在報表上做分組小計的視覺切割。對應 VFP 查詢鈕最後那段 SCAN WHILE 部門代號=… AND 單號=… + REPLACE 是否最後 WITH .T.

報表 / 列印(規劃中)

舊版報表尚未在新版提供

VFP 原版可依單據別列印四種報表(零件例外出庫 MDEXOUT、零件例外入庫 MDEXIN、成品例外出庫 MMEXOUT、成品例外入庫 MMEXIN),也支援預覽/列印/Email/匯出 Excel 的列印工具列。 目前新版 Exce_inoutViewModel 只實作查詢與格線顯示,並未掛上對應的 FastReport 報表(未覆寫報表資料),因此上述四種專屬報表暫未提供。若要把資料帶出,請改用結果格線標題右鍵的 匯出至 Excel

常見問題

按查詢時跳出「請輸入正確之匯率 !!!」?

成本匯率表中有某個幣別的匯率是 0(或空白)。請把每一列的成本匯率都填成大於 0 的數值再查詢——這是組立價把外幣零件報價換算本幣時要用的。

按查詢時跳出「請選擇倉庫 !!!」?

倉庫多選清單一個都沒勾。請至少勾一個倉庫,或勾 ALL(全部倉庫) 列代表查全部倉庫。

查不到任何明細?

請確認:(1) 單據別選對(出庫對 EO、入庫對 EI);(2) 起訖日期涵蓋到實際交易日期;(3) 勾選的倉庫確實有該期間的例外進出交易。本表單只撈序號前置碼為 EOEI 的例外進出交易,正常進出料不會出現。

組立價或組立金額是 0?

組立價是把品號的 BOM 展開到最低階零件、再乘上各零件的最高廠商報價算出來的。若品號沒有 BOM 結構,或展開後的零件查不到有效(且已審核)的廠商報價,組立價就會是 0。請先到 BOM 管理 與廠商報價確認資料齊全。

銷售價是 0?

銷售價=最低客戶報價 × 0.9。若該品號沒有任何客戶報價,銷售價會是 0。請確認該品號在客戶報價中有資料。

想匯出成 Excel?有沒有專屬報表?

目前新版未提供 VFP 那四張專屬報表(MDEXOUT/MDEXIN/MMEXOUT/MMEXIN),詳見報表 / 列印(規劃中)。要把查詢結果帶出,請在結果格線的欄位標題上按右鍵、選 匯出至 Excel

相關功能


需補截圖清單

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

  1. exce_inout-step1.png — 條件面板全貌(單據別下拉、起訖日期、倉庫多選、成本匯率表)
  2. exce_inout-step2.png — 倉庫多選格線(含 ALL 全部倉庫列與勾選狀態)
  3. exce_inout-step3.png — 「例外出入查詢」結果格線(含組立價/銷售價/組立金額/銷售金額欄)