跳轉到

程式資訊

  • 程式 IDPdtinf
  • 所屬子系統:F.生產管理
  • 狀態:stable

製通單

功能簡介

「製通單」是生產模組的核心製令單(製造通知單),用來告訴工廠「要做什麼品號、做多少、何時要完工」。生管/PMC 人員建立製通單後,系統會依辨識號自動產生對應的派工單(WKPAPER),後續的領料、生產日報、入庫都接續在派工單上進行。

一張製通單包含:

  1. 主檔——成品品號、數量、製單別、各階段日期(備料完成日/預訂生產日/預訂完工日/實際完工日)、客戶/訂單關聯。
  2. 明細——製單來源別、客戶、訂單 pkid、數量、出貨日期等需求來源列(一張製通單可彙整多筆訂單需求)。

製通單在流程中的位置:訂單(ORMAST)→ 製通單(PDTINF)→ 派工單(WKPAPER)→ 生產日報(WKPAPER 子作業)→ 完工入庫

與派工單的關係

製通單號(標示為紅色重點欄位)可直接超連結到對應的派工單。儲存製通單時系統自動呼叫 Updt_wkpaper 產生派工單;若派工單產生失敗,剛存的製通單會被自動刪除(rollback),避免留下沒有派工單的孤兒製通單。

前置需求

  • 權限:F.生產 → F-010 製通單 的瀏覽/新增/修改/刪除/列印權限。
  • 基礎資料:建立製通單前,下列資料需先維護完成——
資料 影響什麼
品號主檔(SK_INVENT) 輸入品號時自動帶出品名單位
客戶主檔(SK_CUDATA) 以放大鏡輸入客戶代號時帶出客戶簡稱
銷售訂單(vw_ordetlid) 製單別=訂單時,訂單pkid 必須對應到實際訂單明細才能存檔
製單別代碼(C241) 製單別下拉選單來源(訂單/備料/例領/試做/庫存/試組)
單位代碼(C104) 單位下拉選單來源
工作日曆(WKDAY) 計畫表(延伸功能②)以工作日曆判定假日,將工作時數為 0 的日期標為紅色欄標

操作步驟

新增製通單

  1. 按工具列 新增。系統自動把製單別預設為 備料預訂生產日預設為今天。
  2. 選擇製單別(訂單/備料/例領/試做/庫存/試組)。
  3. 輸入品號(可用放大鏡查詢);輸入後系統自動帶出品名單位
  4. 輸入數量單位
  5. 視製單別填寫關聯資料:
    • 製單別=訂單 → 必須輸入正確的訂單pkid,存檔時系統會以此 pkid 查訂單明細並組出序號前置碼(查不到會擋下)。
    • 其他製單別 → 訂單 pkid 可留空。
  6. 輸入各階段日期:備料完成日/預訂生產日/預訂完工日(預訂完工日為必填、紅色重點欄位)。
  7. 視需要填寫客戶代號/客戶訂單號/週數/單位材料價/是否派工/包裝料/拆零/單階派工單等欄位。
  8. 在下方明細格輸入需求來源列(製單來源別、客戶、訂單 pkid、數量、出貨日期)。
  9. 儲存。系統檢核必填欄位後寫入,並自動產生派工單。

修改

  1. 先查詢出要修改的製通單,按 修改
  2. 系統會先檢查此製通單對應的派工單狀態(見欄位連動與附加功能):
    • 生產日報表已耗料 → 擋下,不允許修改。
    • 派工單已領料已排程 → 僅提示警告,仍可繼續修改。
  3. 改完後按 儲存

刪除

  1. 查詢出製通單,按 刪除,確認後刪除。
  2. 已進入後段作業(已產生派工單、領料、生產日報)的製通單不應刪除,刪除前請自行確認。

列印

按工具列 列印,套印製通單表單(VFP 報表程式 PDTINF_P)。

報表移植狀態

列印功能對應 VFP 的 PDTINF_P 報表。新版 C# 的報表掛載依系統報表設定而定,若清單中找不到製通單報表,請洽系統管理員確認報表已部署。

延伸功能:訂單轉製通單(轉單)

按延伸功能①開啟訂單轉製通單視窗,把尚未轉成製通單的訂單需求勾選合併後批次產生製通單。詳見欄位連動與附加功能

延伸功能:生產計畫表查詢(計畫表)

按延伸功能②開啟生產計畫表視窗,以某個日期欄位(出貨日期/備料完成日/預訂生產日/預訂完工日/實際生產日/實際完工日)為基準,列出起始日起 90 天內每日的生產數量橫向排程。

欄位說明

主檔

欄位 必填 說明/格式/預設
製通單號 系統產生 單據編號,唯讀;可超連結到派工單
製單別 訂單/備料/例領/試做/庫存/試組;新增時預設 備料
品號 成品品號;輸入後自動帶品名、單位
品名 由品號帶出,唯讀
數量 製造數量,必須 > 0
單位 由品號帶出,可改(C104)
生產部門/部門簡稱 由 DB View 帶出,唯讀(畫面上不重算)
出貨日期(製造交期) 日期格式 YYYY/MM/DD
備料完成日 日期
預訂生產日 日期;新增時預設今天
預訂完工日 日期,紅色重點欄位,必填
實際完工日 唯讀,由後段作業回填,紅色重點欄位
訂單pkid 製單別=訂單時必填 對應銷售訂單明細的 pkid
訂單編號 由 DB View 帶出,唯讀
客戶代號/客戶簡稱 以放大鏡查客戶主檔輸入,帶出客戶簡稱
客戶訂單號 客戶端的訂單號
週數 數值,預設 0
單位材料價 數值(四位小數)
是否派工/包裝料/拆零 是/否
單階派工單 是/否,紅色重點欄位
辨識號 系統產生 新增/複製時自動產生一組 GUID(ProductionHelper.GetNewCheckNo(),功能上對應 VFP 的 SYS(2015)),用來連結本次產生的派工單
注意事項/計畫備註 多行文字備註
輸入日期 系統產生 建檔時間,唯讀

明細

欄位 必填 說明
序號 系統產生 明細列序號
製單來源別 需求來源類別
客戶代號/客戶簡稱 該需求列的客戶
訂單pkid 對應訂單明細
訂單編號A 訂單編號-序號,由 DB View 帶出,唯讀
數量 該需求列數量
出貨日期 製造交期
預訂交期 由 DB View 帶出,唯讀
備註 文字備註

欄位連動與附加功能

本節說明「輸入某欄位後系統會做什麼」「按某按鈕會發生什麼」,這是本表單最關鍵的行為。

新增時的預設值(AfterAddNew

當你按 新增,系統會自動:

  1. 製單別設為 備料(代碼 2)。
  2. 預訂生產日設為今天

輸入品號(SKUBinding setter → DescriptionHelper.SetISKU

當你在品號欄輸入或用放大鏡選品號後,系統會:

  1. 依品號查品號主檔(vwseek_invent),自動帶出品名單位
  2. 若查不到品號,品名/單位維持空白(請確認品號正確、品號主檔已建)。

生產部門怎麼來

主檔的生產部門/部門簡稱是由查詢 DB View 載入時一併帶出的唯讀欄位,不會在輸入品號時於畫面上即時重算(SetISKU 只帶品名與單位)。

訂單 pkid 的查核(存檔時)

製單別=訂單時,訂單pkid 的檢核發生在存檔當下(並非輸入後即時觸發):

  1. 訂單pkid 為 0 → 提示輸入並擋下。
  2. 以訂單pkid 查 vw_ordetlid,查無資料 → 提示「請輸入正確的訂單明細 pkid」並擋下。
  3. 查到 → 用訂單編號與訂單序號組出序號前置碼寫回主檔。

與 VFP 舊版的差異

VFP 舊版在輸入訂單pkid 的當下(訂單pkid.Valid)就會即時回填客戶代號並顯示訂單編號-序號。新版改為存檔時才查核,不會在輸入後即時帶出客戶代號;客戶代號請自行輸入或留待轉單(延伸功能①)自動帶。

儲存檢核與動作(PdtinfSave

儲存 時,系統依序檢核(任一不過即擋下並提示):

  1. 製單別 必須 > 0(必選)。
  2. 品號 不可空白。
  3. 數量 必須 > 0。
  4. 預訂完工日 不可空白。
  5. 新增/複製時:
    • 自動產生辨識號ProductionHelper.GetNewCheckNo())。
    • 製單別=訂單
      • 訂單pkid 不可為 0,否則擋下。
      • 以訂單 pkid 查 vw_ordetlid;查無資料提示「請輸入正確的訂單明細 pkid」並擋下。
      • 查到後,序號前置碼自動組成 訂單編號片段-訂單序號
    • 其他製單別:序號前置碼自動設為 A + 今年年份後兩碼(取 yyyyMMdd 的第 3、4 碼)。

存檔前處理(HandleDataBeforeEndEdit):明細中數量 ≤ 0 且客戶代號空白的列會被自動標記為刪除(不寫入)。

存檔後(AfterEndEdit):新增/複製且有辨識號時,呼叫 Updt_wkpaper(辨識號, 製單別) 自動產生派工單。

派工單產生失敗會 rollback

Updt_wkpaper 回傳失敗或丟出例外,系統會顯示錯誤訊息,並把剛剛存進去的這張製通單刪除,避免留下沒有派工單的製通單。看到「System Error … Delete」表示製通單已被退回,請依訊息排除問題後重存。

修改前的派工狀態檢查(PdtinfEdit

修改 時,系統用製通單號去查派工單相關表,做三項檢查(此檢查僅在修改路徑執行;新版刪除不走此檢查):

  1. 生產日報表是否耗料wkpapera 有耗料單號)→ 擋下,提示「料件已用於生產日報」,不允許修改。
  2. 派工單是否已領料wkpaper × wkpaperd 已領數量 > 0)→ 僅警告,仍可繼續。
  3. 派工單是否已排程wkpaper 排程起始日非空)→ 僅警告,仍可繼續。

延伸功能① 訂單轉製通單(ExtendedFunction1Pdtinf_1

開啟「訂單轉製通單」視窗(WindowName.Pdtinf_1),用來把訂單需求批次轉成製通單:

  1. 查詢,系統呼叫 TWORK_TUR_PDTINF 抓出可轉的訂單需求(Tmp)已鎖定的需求(LockedSource)
  2. 相同品號的最後一筆會變色標註,方便辨識同品號的群組邊界。
  3. 操作方式:
    • 左鍵點選(合併):把相同品號的多筆需求合併成一張製通單,數量累加。
    • 右鍵點選(單選):把該筆需求單獨轉成一張製通單。
  4. 按存檔上傳時,每張合併出來的製通單會產生主檔+明細(明細記錄合併前各來源的訂單 pkid、客戶、數量、預訂交期),製單別固定為 訂單、製單來源別固定為 1.訂單,並自動產生辨識號與派工單。
  5. 視窗關閉後回到製通單,若有成功產生的 pkid,主畫面會自動定位到該張新製通單。

同一訂單序號最多拆 30 筆

若同一「訂單編號-訂單序號」被拆成超過 30 筆製通單,上傳時會被擋下並提示。請調整合併方式。

延伸功能② 生產計畫表(ExtendedFunction2Pdtinf_2

開啟「生產計畫表」查詢視窗(WindowName.Pdtinf_2):

  1. 選擇查詢基準日期欄位(出貨日期/備料完成日/預訂生產日/預訂完工日/實際生產日/實際完工日)。
  2. 輸入起始日期,系統以起始日起算連續 90 天為橫向欄位。
  3. 查詢,列出每個品號在這 90 天每日的生產數量;假日(工作日曆工作時數為 0 的日期)的欄位標題以紅色標示
  4. 關閉視窗後製通單畫面會重新整理(Renew)。

製通單號超連結

主檔的製通單號標籤是 KeyField 超連結,點擊可直接跳轉到對應的派工單(WKPAPER),方便追下游的領料與生產進度。

常見問題

存檔時一直提示要輸入某欄位?

製通單存檔有四個必填檢核:製單別品號數量(>0)預訂完工日。任一缺漏都會被擋下。製單別=訂單時還會額外要求訂單pkid

製單別選「訂單」,存檔說「請輸入正確的訂單明細 pkid」?

訂單型製通單的訂單pkid 必須能在銷售訂單明細(vw_ordetlid)中查到對應資料。此檢核在存檔時才執行,請確認 pkid 輸入正確、且該筆訂單明細存在。

輸入品號後品名/單位是空白?

品名與單位是依品號主檔自動帶出。若空白,多半是品號打錯或該品號尚未在品號主檔建立。請先到品號主檔維護後再回來輸入。

為什麼不能修改這張製通單?

若此製通單對應的派工單已在生產日報表耗料,系統會擋下修改(料件已實際使用,不允許再異動單頭)。若只是已領料已排程,系統只會警告、仍可修改。

存檔成功卻跳出「System Error … Delete」?

這代表製通單主檔已寫入,但隨後產生派工單(Updt_wkpaper)失敗,系統為了不留孤兒單,已自動把這張製通單刪除(rollback)。請依錯誤訊息排除(常見為派工單相關設定或資料問題)後重新存檔。

明細有一列數量是 0 卻沒存進去?

存檔前處理會把數量 ≤ 0 且客戶代號空白的明細列自動視為刪除。若該列是有效需求,請補上客戶代號或正確數量。

相關功能


需補截圖清單

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

  1. pdtinf-step1.png — 製通單主畫面(主檔欄位 + 明細格全貌)
  2. pdtinf-step2.png — 新增模式,標出預設值(製單別=備料、預訂生產日=今天)
  3. pdtinf-step3.png — 訂單轉製通單(延伸功能①)視窗,含合併/單選與變色標註
  4. pdtinf-step4.png — 生產計畫表(延伸功能②)90 天橫向排程,含假日紅色欄標