跳轉到

程式資訊

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

專用部品查詢

功能簡介

「專用部品查詢」用來判斷某個成品(組件)BOM 下的零件,哪些是只給這個成品用的「專用件」、哪些是多個成品共用的「共用件」。畫面是上、中、下三層 grid,由上而下逐層下鑽:

  1. 查詢組件(上層):查到的成品/組件號與品名。
  2. 部品明細(中層):所選成品 BOM 展開後的所有零件,並在最左欄標出每一筆「是否專用」。
  3. 用途明細(下層):在中層點某個零件後,列出這個零件還被哪些組件用到(用途反查)。

判斷邏輯很單純——某零件如果除了目前所屬成品外,沒有被任何其他「成品」用到,它就是「專用件」(是否專用 欄顯示 Y);只要它還掛在別的成品 BOM 下,就是共用件。

生管、研發或採購人員常在「想停用某成品、或想換料」前先用這支查詢確認:哪些零件可以連帶一起處理(專用件),哪些動了會牽連到其他成品(共用件)。它是純查詢工具,本身不修改任何 BOM 或品號資料。

前置需求

  • 權限:D.BOM → D-100 專用部品查詢 的瀏覽權限(要列印另需列印權限)。
  • 基礎資料:查詢結果完全來自既有的 BOM 與品號主檔,請先確認下列資料已維護——
資料 影響的結果
BOM 建檔(成品的組成零件) 部品明細的展開內容、用途反查的對應關係
品號主檔(品名、單位、材質、單重、停用碼) 各層的品名/單位/材質/單重停用標示
品號的品別設定(原料/半成品/成品) 用途明細的品別/品別說明,以及「是否專用」的成品判定
供應廠商設定(廠商代號與供應比例) 部品明細的廠商代號 1~3/簡稱/比例
庫存資料 部品明細的庫存量

備註

本頁是唯讀查詢(所有 grid IsReadOnly),不會修改任何 BOM 或品號資料。要調整 BOM 組成請到 BOM 建檔

操作步驟

  1. 在條件面板輸入要查的 品號(成品/組件號)。
    • 此欄為 BOM 料號搜尋框(套用 SKUSearch 樣式),可直接輸入或叫出料號搜尋視窗挑選。
    • 輸入採 LostFocus 觸發(離開欄位才寫回參數)。
    • 品號留空時,系統會以 SP 的預設範圍回傳資料(不限定單一成品)。
  2. 按工具列的 查詢。系統呼叫 SP DARB_QRY_BOM_EXCL 取得資料,上方「查詢組件」grid 列出符合的成品(依組件號+品名去重)。
  3. 點選上方某一筆成品,中間「部品明細」grid 隨即顯示該成品 BOM 下的所有零件,並在最左欄標出 是否專用
    • 是否專用 欄顯示 Y 的列,代表這是只屬於此成品的專用件。
  4. 點選中間某個零件,下方「用途明細」grid 列出這個零件還被哪些組件用到(含品別、生失效日期等),用來確認共用情形。
  5. 需要紙本時按工具列的 列印,依列印設定輸出報表。
  6. 換查另一個成品時,回到條件面板改 品號 再按一次 查詢 即可。

小技巧

三層 grid 都是 TsRadGridView,格線右鍵可匯出 Excel。想盤點「這個成品有多少專用件」時,可直接點中間 grid 的 是否專用 欄表頭排序,把 Y 的列集中起來計數。

欄位說明

查詢條件

欄位 必填 說明/格式/預設
品號 要查的成品/組件號;預設空字串("",由 Bom_exclParameters.ResetToDefault() 設定)。留空時不限定單一成品,由 SP 決定回傳範圍

查詢組件(上方 grid)

欄位 說明
查詢組件號 查到的成品/組件號(已依組件號+品名去重)
查詢品名 該成品的品名

部品明細(中間 grid)

欄位 說明
是否專用 Y = 專用件;空白 = 共用件。由 BLL 計算後寫入,非資料庫原生欄位
品號 此零件的料號
停用 品號主檔的停用標示
數量 在此成品 BOM 中的用量
單位 計量單位
材質 品號主檔的材質
庫存量 目前庫存數量
單重/總重 單位重量與總重量
廠商代號 1~3/廠商簡稱 1~3 供應此零件的前三家廠商代號與簡稱
廠商 1~3 比例 各廠商供應比例(整數);無設定時顯示 0(欄位 PlaceEnum="Zero"
查詢組件號/品名 對應的上層成品組件號與此零件品名

未顯示的欄位

部品明細的資料來源還帶有 顯示序號 欄,但目前畫面的中間 grid 未把它排進欄位,使用者不會看到。

用途明細(下方 grid)

欄位 說明
組件編號 用到此零件的上層組件
品別 該上層組件的品別代碼(原料/半成品/成品,以數字呈現)
品別說明 由品別代碼經品別 enum(SKUCategoryEnum.GetDescription)帶出的文字說明
品名 上層組件品名
停用 上層組件的停用標示
數量/單位 此零件在該組件中的用量與單位
備料倉庫 BOM 設定的備料倉庫
生效日期/失效日期 BOM 這條用料關係的有效區間(ForceReadOnly,唯讀)
查詢品號 對應的零件品號(用來把用途明細掛回中間 grid 的選取列)

欄位連動與附加功能

這支表單的精髓在三層 grid 的逐層下鑽與「是否專用」的計算,全部由 ViewModel 與 BLL 即時處理。下面用「當你…,系統會…」說明每一條連動:

  • 輸入品號 → 按 查詢Query() 會 new 一個 Bom_exclBll 並呼叫 Calculate()。BLL 以你輸入的品號當參數呼叫 SP DARB_QRY_BOM_EXCL,取回一個含兩張表的 DataSet:第 0 張表同時組成「查詢組件(去重後)」與「部品明細」,第 1 張表組成「用途明細」。品號未填時會以空字串("")帶入 SP。
  • 查詢組件去重:上方 grid 不是逐筆 BOM 行,而是把第 0 張表依 查詢組件號 + 查詢品名 去重後的成品清單(Bom_exclMasterComparer)。同一個成品只會出現一列。
  • 點選上方成品列 → 帶出部品明細:當你選取上方某一列(SelectedItem),系統用該列的 查詢組件號detailLookup 取出對應的部品明細,填入中間 grid;取消選取(選到 null)則中間 grid 清空。預設不會自動選第一筆,需手動點選。
  • 點選中間零件列 → 帶出用途明細:當你選取中間某一列(DetailSelectedItem),系統用該列的 品號detail1Lookup(鍵為 查詢品號)取出用途明細,填入下方 grid;取消選取則下方清空。
  • 「是否專用」如何算出(核心邏輯):查詢完成後 BLL 會跑 UpdateIsExclusuve()逐筆檢查中間 grid 的每個零件——
    • 先取該零件所屬的「成品品號」:把它自己的 查詢組件號 去掉設變碼(取 * 之前的部分,Get成品品號())。
    • 再到用途明細中找:有沒有「查詢品號=這個零件品號、且品別=成品、且組件編號 ≠ 該零件所屬成品品號」的列。
    • 找不到任何一筆(代表這個零件沒被別的成品用到)→ 標 是否專用 = Y;只要找得到任何一筆 → 留空(共用件)。
  • 品別說明帶值:載入用途明細時,系統依每筆的 品別 代碼,用品別 enum(SKUCategoryEnum.GetDescription)帶出對應的 品別說明 文字。
  • 列印:本程式 HaveReportData() 永遠回傳 true,因此查詢後即可走工具列 列印/報表流程產出報表(依系統列印設定)。

「成品品號」與設變碼

判定專用時用的是「去掉設變碼」後的成品品號(取 * 之前的部分)。若你的料號用 * 做設變版本管理,同一基底料號的不同設變版本會被視為同一個成品來比對,版本之間互相使用不會被算成「被別的成品用到」。

是否專用只看「成品」層

是否專用 的判定只比對品別為成品的其他組件。也就是說:若某零件只被別的半成品/原料用到、卻沒被別的成品直接用到,仍可能被判為專用件。判讀時請對照下方「用途明細」實際被哪些組件用到再下結論。

專用件綠底尚未生效

Bom_exclDetailPoco.Background 會在 是否專用 == "Y" 時回傳綠色,原意是把專用件整列染綠。但中間 grid 在 TsDataGrid → TsRadGridView 改版時,原本的 ColorHintRowHeader 樣式被移除(XAML 中以 TODO 註解標示),目前尚未重新套上會綁定此 Background 的 RowStyle,因此畫面目前不會出現綠底,請以 是否專用 欄的 Y 為判讀依據。

常見問題

中間「部品明細」grid 一直空白?

部品明細是「點選上方成品列」後才帶出的(不會自動選第一筆)。請先在上方「查詢組件」grid 點一列;若上方本身就沒有資料,代表你查的品號沒有 BOM 組成,或品號輸入有誤。

下方「用途明細」grid 沒東西?

用途明細要先在中間「部品明細」grid 點選某個零件才會顯示。若點了仍空白,表示這個零件目前沒有被任何組件用到(很可能正是專用件)。

某個零件明明很常用,卻被標成專用(是否專用=Y)?

「是否專用」只比對品別為「成品」的其他組件。若這個零件只被別的半成品或原料用到、沒被別的「成品」直接掛用,就會被判為專用。請展開下方用途明細確認它實際掛在哪些組件下;要修正判定,需從 BOM 建檔 調整組成或品別設定。

查詢組件號帶設變碼(含 *),判定會怎麼處理?

系統會取 * 之前的部分當「成品品號」來比對。同一基底料號的不同設變版本會被當成同一個成品,因此版本之間互相使用不會被算成「被別的成品用到」。

廠商比例都顯示 0?

廠商比例來自品號的供應廠商設定,未設定供應比例時會顯示 0(欄位以 Zero 模式呈現)。要顯示比例請先在品號/採購相關主檔維護供應廠商與比例。

品號留空可以查嗎?

可以。品號預設為空字串,留空時會以 SP 的預設範圍回傳資料,不限定單一成品;想精準鎖定某成品再填入品號即可。

相關功能


需補截圖清單

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

  1. bom_excl-step1.png — 條件面板輸入品號
  2. bom_excl-step2.png — 三層 grid 全貌(上方查詢組件、中間部品明細、下方用途明細)
  3. bom_excl-step3.png — 中間部品明細點選某零件、下方帶出用途明細的畫面