跳轉到

程式資訊

  • 程式 IDBOM_COST
  • 所屬子系統:D.工程資料
  • 狀態:stable

BOM 成本展開

功能簡介

「BOM 成本展開」針對成品(或半成品)品號,依 BOM 結構逐階展開到最低階零件與製程,再套上廠商料價、關稅與人工費率,累計出每個品號的材料成本、關稅、人工成本與小計,並可對照客戶報價算出售價與毛利。適合成本/業務主管在報價、議價或試算前回答「這顆成品做下去,料工合計多少錢、毛利剩多少」。

畫面分上下兩個格線:

  1. 上方成本彙總表:一列一個查詢組件號(成品),顯示材料/關稅/人工小計、售價、毛利與各項成本比例。
  2. 下方成本明細表:點選上方某列後,列出該成品 BOM 展開後的每一個零件與製程及其單階成本,是彙總數字的拆解來源。

純查詢報表

本功能只做試算與展示,不會寫回任何單據或成本檔。算出的成本不會更新庫存主檔的標準成本,只供現場參考與列印。

前置需求

  • 權限:D.BOM → D-090 BOM 成本展開 的瀏覽(查詢)與列印權限。
  • 基礎資料:成本能不能算得齊,取決於下列主檔是否維護完整——
資料 影響的結果
BOM 結構(含損耗率、製程途程、標準工時) 展開的零件與製程清單;標準工時是人工成本的基礎
庫存主檔(品號、單位、單重、群組、儲位、主要供應廠商與比例) 明細的品名/單位/群組;零件的主要供應廠商取自三組廠商比例中比例最高者
廠商進貨資料(暫收/驗收,RA% 單) 廠商單價別=進貨價時的原材料單價、幣別與關稅稅率
廠商報價(SPPDMA/SPPDT,含工程代號、代工單價、關稅稅率) 廠商單價別=廠商報價時的料價,及委外製程的代工人工
廠商資料(SPDATA,含其他加成) 廠商簡稱;關稅稅率會再加上該廠商的其他加成
客戶報價(CUPDMA/CUPDT) 彙總表的售價/毛利/毛利比例(搭配匯率表換算)
客戶品號對照(CUINVE,含包裝量) 起訖客戶查詢時的客戶品號與最小包裝量
製程主檔(PROCNO,工程代號/簡稱) 委外或部門製程的工程簡稱
匯率資料 條件面板匯率表的買/賣/中值預設(預設帶當日匯率)

操作步驟

本功能是「設條件 → 查詢 → 看兩段結果 → 列印」的查詢流程,沒有新增、修改、刪除。

步驟一 設定查詢條件

在左側條件面板填寫查詢範圍與計價方式:

  1. 選擇查詢別
    • 起訖客戶,起訖品號(預設):以客戶+品號區間圈出要試算的成品。
    • 起訖客戶,起訖機種:先以機種(品別=8 的機種品號)展開出底層成品,再逐顆試算。
  2. 選擇比例別成本(預設)或 售價,決定彙總表各比例欄位(材料比例/關稅比例/人工成本比例/材稅比例)是除以小計還是除以售價。
  3. 選擇廠商單價別進貨價(預設,取最近一筆 RA% 進貨單價)或 廠商報價(取最新一筆廠商報價)。
  4. 輸入起訖客戶/起訖品號/起訖機種:截止欄位預設 zzz(代表到最後)。客戶留空時改以純品號區間查庫存主檔。
  5. 視需要輸入起始受訂日:填了之後彙總表會多帶訂單備註(該品號在此日期之後的受訂日期,或標 No sales order)。
  6. 確認/調整人工費率(元/分):預設 1,部門自製製程的人工成本=人工費率 × 標準工時 ÷ 60。
  7. 檢視右側匯率表:系統自動帶入當日各幣別的買/賣/中值,外幣料價會以此換算本幣。使用匯率欄可直接點儲存格修改。

步驟二 執行查詢

按工具列的 查詢。系統會:

  1. 依條件撈出要試算的成品清單。
  2. 對每個成品做 BOM 最低階展開(呼叫 Darb_Qry_Bom_Flow),產生明細。
  3. 逐列套上料價、關稅、人工,累計成本並回填彙總表。

資料量大時,狀態列會顯示 1. Search Data / 2. Calculate Cost 的進度。

步驟三 檢視彙總與明細

  1. 上方成本彙總表:一列一個成品,看材料/關稅/人工小計、售價、毛利與比例。
  2. 點選某一列,下方成本明細表會自動換成該成品的 BOM 展開明細——每個零件的數量、原材料單價、材料本國價、材料成本、關稅,以及每道製程的標準工時與人工成本。

小技巧

改了使用匯率人工費率後,直接再按一次 查詢 即可重算,不必重設其他條件。兩個格線都可在格線上按右鍵匯出 Excel。

步驟四 列印

按工具列的 列印/預覽即可輸出報表。

欄位說明

條件面板

欄位 必填 說明/格式/預設
查詢別 起訖客戶,起訖品號(預設)/起訖客戶,起訖機種
比例別 成本(預設)/售價,決定比例欄位的分母
廠商單價別 進貨價(預設)/廠商報價
起始客戶/截止客戶 截止預設 zzz;兩者皆空時改以純品號區間查庫存主檔
起始品號/截止品號 截止預設 zzz
起始機種/截止機種 截止預設 zzz;查詢別=機種時生效
起始受訂日 填了才帶訂單備註;格式 YYYY/MM/DD
人工費率(元/分) 預設 1;部門自製人工=費率 × 標準工時 ÷ 60
匯率表 → 使用匯率 可編輯;預設帶當日匯率,外幣料價以此換本幣
匯率表 → 買/賣/中 唯讀,當日匯率參考值

成本彙總表(上方格線)

欄位 說明
索引鍵值 排序鍵;客戶查詢時為「客戶代號,客戶品號」,純品號查詢時為「客戶代號,查詢組件號」
客戶代號/客戶簡稱/客戶品號 起訖客戶查詢時帶出;純品號查詢時為空
查詢組件號/品名 被試算的成品品號與品名
最小包裝量 取自客戶品號對照(CUINVE)的包裝量
Lead Time 庫存主檔的前置天數
材料成本/關稅/人工成本/小計 單位量 × 單位材料/單位關稅/單位人工;小計=三者相加
售價 單位量 × 單位售價(客戶報價 × 使用匯率)
毛利/毛利比例 毛利=售價 − 小計;毛利比例=毛利 ÷ 售價 × 100
材料比例/關稅比例/人工成本比例/材稅比例 各成本 ÷(比例別所選的)小計或售價 × 100
群組代號/群組說明 取自庫存主檔群組設定
生產部門/部門簡稱 主要供應廠商或生產部門
單位量/單位材料/單位關稅/單位人工/單位小計/單位售價/單位毛利 單一單位量的成本與售價拆解
客報價原幣 客戶報價原始幣別單價(未乘匯率)
現行材料費/現行模具費/現行加工費/現行單價/生效日 預留欄位,目前不由系統填寫(見欄位連動與附加功能
廠商代號/廠商簡稱 主要供應廠商
訂單備註 有填起始受訂日時:受訂日期或 No sales order
說明 材料與人工皆為 0 時顯示「單價或工時未輸入」提示

成本明細表(下方格線)

欄位 說明
品號/品名 BOM 展開後的零件或製程品號
加工別 製程列才有:委外(Vendor)或 部門(Dept)
生產部門/部門簡稱 製程的生產部門或零件的主要供應廠商
數量/單位 展開累計用量(含損耗率);製程列數量=標準工時
材料成本/關稅/人工成本/小計 該列的單階成本(明細小計=材料+關稅+人工)
標準工時 製程列的工時(部門自製人工的計算基礎)
幣別/原材料單價/材料本國價 料價的原幣別、原幣單價,及換算後的每單位本國價
顯示品號 含縮排與前置符號的階層顯示:=查詢的最上層成品(底下還有子件)、=還可往下展開的組件、=最低階零件、=製程;縮排空格數=階層×4
群組代號/群組說明/儲位/單重/組件編號/序號 取自庫存主檔與 BOM 展開的識別資訊

欄位連動與附加功能

這一節說明「填了某欄、按了某鈕,系統實際會做什麼」。

條件面板的連動

  • 當你切換「查詢別」
    • 起訖客戶,起訖品號,系統先看起訖客戶是否都留空。兩者皆空時,直接以「品號 between 起始品號 and 截止品號」查庫存主檔當成品清單;有填客戶時,改查客戶品號對照(CUINVE)與客戶報價(CUPDMA),以客戶+品號組出清單,並帶出客戶品號與包裝量。
    • 起訖客戶,起訖機種,系統先撈品別=8 的機種品號,對每個機種呼叫 Twork_Biz_BomBottom 展開出底層成品(半成品),再把展開出的半成品比對庫存主檔、取同前置碼最大者(排除 *P 包裝零件)當實際試算品號。
  • 當你選「廠商單價別=進貨價」:原材料單價、幣別與關稅稅率改取最近一筆 RA%(暫收/驗收)進貨,依廠商+品號取報價日期(交易日期)最新的一筆;委外製程人工仍取自廠商報價。
  • 當你選「廠商單價別=廠商報價」:料價與委外製程人工都改取最新一筆廠商報價(SPPDMA/SPPDT,依廠商+品號+工程代號取最新)。
  • 當你選「比例別」成本 時四個比例欄位除以「小計」;售價 時除以「售價」。只有小計大於 0 的列會計算比例。
  • 當你修改「使用匯率」:外幣的原材料單價與客戶報價會以該匯率換算本幣(本位幣固定視為 1);改完要再按一次 查詢 才會重算。
  • 當你填「起始受訂日」:查詢時額外撈該日期(含)之後的訂單明細,依品號比對;有訂單則訂單備註顯示受訂日期,沒有則顯示 No sales order。留空則不帶訂單備註,也不查訂單。

成本展開與計價邏輯(按 查詢 後自動執行)

  • BOM 逐階展開:對每個成品由第 1 階往下展開(最多展到系統設定的 BOM 最大階數 BomMaxLevel,目前為 20 階),把每階的零件()與製程()攤平成明細;每往下一階的損耗會逐階相乘累計到展開數量(單位用量=原數量 ×(1+損耗率))。同一查詢組件號下、相同序號+品號+生產部門的零件會累加數量。若展到第 20 階仍未展完(待查組件未清空),會插入一列顯示品號為「Level 20 ,Error」的明細,提示 BOM 結構可能成環(互相引用)。
  • 材料成本:零件的材料成本=展開數量 × 廠商單價 × 使用匯率,四捨五入到本幣小數位。
  • 關稅:關稅=材料成本 ×(料價來源的關稅稅率 + 該供應廠商的「其他加成」÷100)。關稅稅率隨廠商單價別而不同——選 進貨價 時取自 RA% 進貨單(由進貨的關稅分攤+其他分攤回推稅率),選 廠商報價 時取自廠商報價(SPPDT)的關稅稅率。
  • 材料本國價:(材料成本 + 關稅)÷ 數量,四捨五入到 2 位,代表每單位的到岸本幣料價。
  • 人工成本
    • 部門自製製程(加工別=部門):人工成本=人工費率 × 標準工時 ÷ 60,數量欄會被改成標準工時。
    • 委外製程(加工別=委外):人工成本直接取該廠商+組件+工程的廠商報價單價。
  • 明細小計:每列小計=材料成本 + 關稅 + 人工成本。
  • 彙總回填:把明細的材料、關稅、人工分別加總,乘上彙總列的單位量,回填彙總表的材料成本/關稅/人工成本/小計,以及單位材料/單位關稅/單位人工。
  • 主要供應廠商:零件的供應廠商取庫存主檔三組(廠商1/2/3)中比例最高的那一組;廠商簡稱再由廠商資料(SPDATA)補上。

售價、毛利與比例

  • 售價/毛利:若該客戶+品號在客戶報價(CUPDMA)有報價,取最新一筆單價 × 使用匯率為單位售價;售價=單位量 × 單位售價,毛利=售價 − 小計,毛利比例=毛利 ÷ 售價 × 100。沒有客戶報價的列售價與毛利為 0。
  • 比例欄位:依「比例別」把材料、關稅、(材料+關稅)、人工各自除以小計或售價再 ×100。

「說明」欄的提示

  • 當某成品的材料成本與人工成本都是 0:彙總列的說明欄會帶出「單價或工時未輸入」,提醒你該品號底下的零件沒有可用的廠商料價、或製程沒有標準工時,所以成本算不出來。

預留但未填寫的欄位

現行料價欄位尚未提供

彙總表的 現行材料費/現行模具費/現行加工費/現行單價/生效日 欄位目前在程式中不會被填值,查詢後一律空白/0。這些是預留欄位,待後續版本接上現行成本來源後才會有資料,現階段請以材料成本/人工成本/小計為準,不要誤判為成本為 0。

列印與工作流程

  • 本功能 HaveReportData() 回傳 true,查詢後即可使用工具列的列印/預覽輸出報表,也可掛工作流程紀錄(RECORD)。
  • 上、下兩個格線都支援格線右鍵匯出 Excel。

依檔案查詢尚未提供

查詢別在程式列舉中另有一個 File(依檔案)模式,但目前沒有實作(查詢時會略過、不產生資料)。現階段僅 起訖客戶,起訖品號起訖客戶,起訖機種 兩種可用。

常見問題

查出來材料成本、人工成本都是 0,說明欄寫「單價或工時未輸入」?

代表該成品展開後的零件找不到可用的廠商料價,或製程沒有標準工時。請檢查:

  1. 廠商單價別選 進貨價 時,零件要有近期的 RA% 進貨單價;選 廠商報價 時要有廠商報價。
  2. 零件的主要供應廠商(庫存主檔廠商比例最高者)要正確。
  3. 部門自製製程要在 BOM 途程維護標準工時,且條件面板的人工費率不為 0。
售價、毛利欄位是 0?

售價來自客戶報價(CUPDMA)。請確認該客戶+品號有報價資料;用「起訖客戶,起訖品號」且有填客戶時才會帶客戶報價,純品號區間查詢沒有客戶就不會有售價。

外幣料價的金額看起來不對 / 改了匯率沒變?

外幣是以匯率表的「使用匯率」換算本幣的,本位幣固定當作 1。改完使用匯率後要再按一次 查詢 才會重算;若某幣別沒出現在匯率表,系統會用匯率 1 計算。

「現行材料費 / 現行單價 / 生效日」整欄空白?

這些是預留欄位,目前系統不會填值(見欄位連動與附加功能)。請改看材料成本/人工成本/小計,那才是本功能實際算出的成本。

明細出現「Level 20 ,Error」?

表示該成品的 BOM 展開超過 20 階仍未結束,通常是 BOM 結構互相引用形成迴圈(成環)。請回 BOM 結構 檢查該品號的組件設定。

某些客戶或品號查不到?

確認區間設定正確(截止欄位預設 zzz 代表到最後)。用機種查詢時,只會展開品別=8 的機種品號;底層比對不到對應成品(或被 *P 包裝零件排除)也不會列出。

相關功能


需補截圖清單

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

  1. bom_cost-step1.png — 條件面板全貌(查詢別/比例別/廠商單價別與匯率表)
  2. bom_cost-step3.png — 上方成本彙總表
  3. bom_cost-step3b.png — 下方成本明細表(選取某成品後的 BOM 展開明細)