跳轉到

程式資訊

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

生產日報(報工)

功能簡介

「生產日報」是現場每天回報生產實績的單據:以派工單為依據,記錄當日某品號在某生產部門、某工程(製程)下做出多少良品、多少不良品、用了多少工時與哪些作業者,並登錄不良品的不良類別/原因/處理方式非生產(無效)工時

填寫者多為生產線領班或生管人員,位於生產流程的中段:派工單(派工單作業)開立後,現場依派工單報工產生本單;本單再往下游帶出耗料單(材料耗用,TRLOST)與暫收/轉成倉。系統會即時依輸入的數量與工時算出良率效率,供現場與主管掌握當班產能。

一張生產日報由三個區塊組成:

  1. 主檔(生產實績表):派工單號、品號、生產部門、工程代號、生產日期、良品數量、工時、作業者等。
  2. 不良明細(生產不良表):逐筆登錄不良品號、不良數、不良類別/原因、處理方式、不良主件與責任單位。
  3. 無效工時明細(生產無效工時表):登錄非生產(停機、待料等)的權責部門、項目、起迄時間與工時。

前置需求

  • 權限:F.生產 → F-030 生產日報 的新增/修改/刪除/列印權限。刪耗料 屬於延伸功能,另需對應權限。
  • 基礎資料:本單高度依賴下列主檔,缺一則對應欄位無法帶值或無法存檔——
資料 影響什麼
派工單(派工單作業 輸入派工單號後帶出品號、品名、生產部門、工程、製通單號、計畫量、標準工時、整備工時、轉入成倉旗標
品號主檔(基本資料 品名、品別(判斷是否需輸入不良主件)、不良主件的主要供應廠商
部門/生產部門主檔 生產部門簡稱、無效工時的權責部門簡稱
員工主檔(PERDATA) 作業者欄填入員工編號(VFP 原版會在輸入時比對是否在職/存在;新版作業者欄人數用於效率計算)
不良類別/原因/處理方式代碼(C218/C219/C220) 不良明細三個下拉選單的內容
非生產項目代碼(C244) 無效工時明細的「非生產項目」下拉
倉庫關帳日(系統參數 3001) 生產日期不得早於此日,否則擋存

備註

本單必須先有派工單、且派工單已領料才能存檔(見欄位連動與附加功能)。

操作步驟

新增一張生產日報

  1. 按工具列 新增。系統自動把生產日期預設為今天(沿用上一次離開時的生產日期)。
  2. 派工單號輸入框輸入派工單號後離開欄位(LostFocus 觸發查詢)。系統會:
    • 驗證派工單存在且未結案(查無資料時不帶值;已結案會提示「已結案」並停止帶值);
    • 自動帶入品號、品名、生產部門(含簡稱)、工程代號(含簡稱)、計畫量、標準工時(單位工時)、整備工時、轉入成倉旗標、中心代號;
    • 計算並帶出已生產量(同派工單先前各日報的生產數量加總);
    • 良品數量預設為「計畫量 − 已生產量」(不為負,否則 0);
    • 把派工單的料件自動鋪到不良明細的空白列(品號帶入,不良類別/原因/處理方式碼預設皆為 1)。
  3. 填寫主檔其餘欄位:班別、起迄時間、工時、作業者、備註等。
  4. 不良明細逐列登錄不良品:輸入不良品號、不良數,挑選不良類別、不良原因、處理方式,必要時填不良主件、廠商代號、責任單位、退庫/領料日期。
  5. 視需要在無效工時明細登錄當班的停機/非生產工時(權責部門、非生產項目、起迄時間、工時、作業者)。
  6. 按工具列 儲存。存檔前系統會做多項檢核(見下節)。

修改/刪除

  1. 用工具列 查詢/上一筆/下一筆/瀏覽定位到要處理的單據。
  2. 修改刪除
    • 已產生耗料單(耗料單號不為空)的單據不可修改、不可刪除,系統會提示「已轉耗料單,禁止刪除修改」並擋下。需先用 刪耗料 移除耗料單才能再編輯。
  3. 修改完成後按 儲存

列印

定位到單據後按工具列 列印,套用生產日報表格式(VFP 報表程式 WKDAY_P)輸出。

新版列印格式

新版 C# 的列印走標準列印工具列。若報表格式尚未掛載,請洽系統管理員確認 WKDAY_P 報表已部署。

刪耗料(延伸功能)

當本單已產生耗料單(材料耗用,TRLOST)、又需要重新報工時,可用此功能把已產生的耗料單刪掉。詳見欄位連動與附加功能

欄位說明

主檔(生產實績表)

欄位 必填 說明/格式/預設
單號(Document No) 系統 存檔後系統自動編號,唯讀
派工單號(Work Order No) 輸入後 LostFocus 帶出整張單據的主資料;不可空白或為 +
生產日期(Production Date) 預設今天;不得 ≤ 倉庫關帳日(參數 3001)
品號(SKU)/品名 系統 由派工單帶入,唯讀顯示
生產部門(Production Department) 由派工單帶入;可用放大鏡查詢
工程代號(Processing Code)/工程簡稱 系統 由派工單帶入
班別(Shift) 1.日班/2.夜班
中心代號(Workcenter) 由派工單帶入,可查詢
起始/截止時間(Beginning/Ending Time) 格式 HH:MM(時間遮罩)
工時(Man Hour) 生產工時(分),預設顯示 0
良品數量(Good Quantity) 新增時預設=計畫量 − 已生產量(不為負);改值會連動重算生產數量、良率、效率
作業者(Operator) 多人以逗號分隔;參與效率計算的人數由此欄推算
備註(Notes) 自由輸入
計畫量(Planning Quantity) 系統 派工單計畫量,唯讀
已生產量(Completed Production Quantity) 系統 同派工單先前日報生產數量加總,唯讀
生產數量(Production Quantity) 系統 =良品數量(多班次時為各班加總),唯讀
不良數量(Defective Quantity) 系統 存檔時由不良明細同品號的不良數加總帶回,唯讀
生產及不良數量(Production And Defect Quantity) 系統 =生產數量 + 不良數量
良率(Yield Rate) 系統 =生產數量 ÷(生產數量+不良數量)× 100,唯讀
真實效率(Efficiency) 系統 依標準工時/實際工時計算,唯讀(公式見下節)
暫收數量(Temp Receiving Quantity) 系統 唯讀
已轉數量(Transferred Quantity) 系統 > 0 表示已轉出,鎖定修改/刪除
轉成倉(TransferToFinishedGoods) 系統 由派工單帶入的旗標,唯讀
耗料單號(Consumption No) 系統 已產生耗料單時顯示;可點超連結跳到耗料單(TRLOST)

不良明細(生產不良表)

欄位 必填 說明/格式/預設
序號(Line No) 系統 自動編號
品號(SKU)/品名 不良品號;輸入後查品名
不良數(Defect Quantity) 須 > 0,否則該列存檔時視為刪除
不良類別碼(C218) 新增時預設 1
不良原因碼(C219) 新增時預設 1
處理方式碼(C220) 新增時預設 1;選 2.報廢 時須輸入責任單位
不良主件(Defect Main Part)/廠商代號 品別為半成品/成品時建議填;可用「搜尋不良」帶出主件與主要供應廠商
責任單位(Related Department) 處理方式=報廢時必填
退庫日期/領料日期 格式 YYYY/MM/DD
備註(Notes) 自由輸入

無效工時明細(生產無效工時表)

欄位 必填 說明/格式/預設
序號(Line No) 系統 自動編號
權責部門(Related Department) 可查部門
非生產項目(Nonproduction Item,C244) 下拉選單
起始/截止時間 格式 HH:MM
非生產工時(Nonproduction Working Hours) 填截止時間後可自動推算
作業者(Operators) 多人以逗號分隔
數量(Quantity)/單價(Unit Price) 單價四位小數;金額=數量 × 單價(唯讀)
金額(Amount) 系統 由數量 × 單價即時計算,唯讀

整列被視為刪除的規則

存檔時,不良明細不良數 ≤ 0 的列、無效工時明細數量=0 且非生產工時=0 的列,會被自動標記為刪除,不會寫入資料庫。

欄位連動與附加功能

這一節把「輸入某欄位/按某按鈕後系統會做什麼」逐條列出,皆來自實際程式碼(VM/SaveBll/Source 與 VFP 原程式)。

輸入派工單號 → 帶出整張單(最關鍵的連動)

當你在派工單號填好離開欄位(WorkOrderNoBinding 的 setter 觸發 WorkOrderSearch),系統會:

  1. 以派工單號查派工單資料(GetTWORK_QRY_WKDAY)。查不到就不帶值;查到但已結案會提示「已結案」並停止。
  2. 帶入:製通單號(VFP)、生產部門代號+簡稱、品號+品名、工程代號+工程簡稱、計畫量、單位工時(標準工時)、整備工時、轉成倉旗標、中心代號。
  3. 另查同派工單的累計(GetTWORK_QRY_WKDAY_Type2)得到已生產量
  4. 新增狀態下(AfterAddNew 之後、狀態為 Add):
    • 呼叫 SetProductionQuantity:把良品數量設為「計畫量 − 已生產量」(不為負,否則 0),並同步生產數量。
    • 查派工單料件(GetTWORK_QRY_WKDAY_Type3),把品號逐筆鋪到不良明細的空白列,並把該列的不良類別/原因/處理方式碼預設成 1。第一列先放主品號。

良品數量 / 工時 / 作業者 → 即時重算良率與效率

  • 良品數量ProductionQuantity1Binding):重算生產數量(多班加總)、並觸發 Refresh 重算生產及不良數量、良率、效率。
  • 不良數量DefectiveQuantityBinding):觸發 Refresh,連動良率、效率。
  • 良率=生產數量 ÷(生產數量+不良數量)× 100,四捨五入 2 位。
  • 真實效率=標準工時 ÷ 實際工時 × 100;其中實際工時=工時(分) × 作業者人數 × 60(秒),標準工時=單位工時 × 總數量。作業者人數由作業者欄位(逗號分隔)計算,至少 1 人。

小技巧

良率、效率、生產及不良數量都是即時算出的唯讀欄位。只要改良品數量或不良明細的不良數,畫面數字立刻跟著動,不需另外按鈕。

VFP 原版的欄位事件(新版多由 SP/衍生屬性承接)

下列為 VFP 原程式的欄位事件,說明系統在現場輸入時的行為(新版多已內建於 SP 或衍生屬性):

  • 填截止時間截止時間1.LostFocus / 無效工時的 截止時間.Valid):若工時為 0,依起迄時間自動推算工時(UPDT_WKTIME,計算口徑由參數 3011 控制)。
  • 起/截止時間 Valid:檢查時間格式(時 0–23/0–24、分 0–59),不合法擋下。
  • 作業者 Valid:把作業者字串拆成多個員工編號,比對 PERDATA:須在生產日期當天已到職、未離職且編號存在,否則提示「有問題,請檢查」。
  • 不良明細品號 LostFocussql_mno1):依品號查 invent 三組供應廠商比例,取比例最高者帶入廠商代號。
  • 不良數 Valid:不可為負;若為 0 且該不良品號=主品號,回算主檔不良數量、良品率、表面效率。

VFP 原版的輔助按鈕(新版尚未提供)

下列按鈕為 VFP 原程式所提供的便利功能,目前 C# 新版的畫面與工具列尚未重做,僅列出供對照與後續補做參考:

  • 作業者選取鈕....,VFP cmdbtn_yes1):開啟人員挑選視窗(SEEKPER,帶生產部門),把勾選的作業者回填到作業者欄並重算效率。
  • 搜尋不良(不良明細列上的按鈕,VFP command1):須先有不良品號,開啟 SEEKWKQ 帶出不良主件主要供應廠商回填該列。
  • 結案鈕(VFP cmdbtn_yes2,紅字):一鍵把主檔備註填成「結案」。
  • 未納廠商鈕(VFP 未納廠商鈕,僅新增):開啟 _TURNPRE(WKPAPERA)挑選未報工的派工單,選定後自動填入派工單號並觸發帶值。

刪耗料(ExtendedFunction1 / IOther1,對應 VFP else2click)

按工具列的 刪耗料 延伸功能,系統會:

  1. 重新整理目前單據;若無耗料單號,提示「無耗料單號」並結束。
  2. 已轉數量 > 0,提示「已轉出,不可刪除」並結束。
  3. 取生產日報關帳日(TWORK_CloseDate);若生產日期 ≤ 關帳日,提示「已關帳」並結束。
  4. 通過檢查後,以耗料單(TRWKMA/TRLOST)的放行碼機制刪除該耗料單;若該單正被他人編輯/轉單中,會提示編輯者並中止。
  5. 完成後重新整理畫面。

產生耗料單的方式

VFP 舊版的「耗料」鈕(else1click)已停用,改為修改後儲存時自動產生耗料單。因此本單沒有手動「產生耗料單」按鈕,只有反向的 刪耗料

存檔檢核(AllowSave / HandleDataBeforeEndEdit / AfterEndEdit)

儲存 時,系統依序檢查(任一不過即擋下):

  1. 派工單號不可空白或為 +
  2. 生產日期必填,且不得 ≤ 倉庫關帳日(參數 3001)。
  3. 該派工單必須已領料CheckPickingMaterial,全部料件領料數量為 0 則擋下,提示「派工單尚未領料」)。
  4. 生產部門必填。
  5. 計算同品號不良數加總,回寫主檔不良數量,並把單號前置碼設為「派工單號-」。
  6. 若品別為半成品/成品且有不良數卻未填不良主件 → 跳出「尚未輸入不良主件,是否儲存?」確認。
  7. 若有處理方式=報廢卻未填責任單位 → 跳出「報廢請先輸入責任單位」確認。
  8. 存檔前把不良數 ≤ 0、無效工時皆為 0 的明細列標記為刪除。
  9. 存檔成功後(新增/複製/修改),呼叫 TWORK_LOG_WKPAPERA_TO_PD 寫入生產相關 log。

常見問題

為什麼一直擋我「派工單尚未領料」存不了檔?

本單規定派工單要先領料才能報工。請先確認該派工單已透過領料/耗料流程領出料件(料件領料數量不可全為 0),再回來存生產日報。

輸入派工單號後欄位都沒帶值?

可能是:(1) 派工單號打錯、查無資料;(2) 該派工單已結案(會提示「已結案」並停止帶值)。請確認派工單存在且未結案。帶值是在離開欄位(LostFocus)時觸發,輸入後請按 Tab 或點別處。

良率/效率顯示 0 或沒變?

良率需要「生產數量+不良數量」> 0 才有值;效率需要工時與作業者人數 > 0。請確認已填良品數量、工時與作業者。改了良品數量或不良數後,這些欄位會自動重算。

為什麼這張單不能修改/刪除?

只要單據已產生耗料單(耗料單號不為空),系統就會鎖定修改與刪除。需要先用 刪耗料 把耗料單刪掉(且該耗料單未轉出、生產日期不可已關帳),才能再編輯本單。

存檔時跳出「尚未輸入不良主件」或「報廢請先輸入責任單位」?

這是提醒不是錯誤:品別為半成品/成品且有不良數時建議填不良主件;處理方式選 2.報廢 時建議填責任單位。按「是」可照樣存,按「否」回去補。

生產日期為什麼不能填昨天(或更早)?

生產日期不得早於或等於倉庫關帳日(系統參數 3001)。該期間已關帳,請改填關帳日之後的日期,或洽財會確認關帳狀態。

相關功能


需補截圖清單

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

  1. wkday-step1.png — 主檔填寫畫面(輸入派工單號帶值後全貌)
  2. wkday-step2.png — 不良明細 grid(含不良類別/原因/處理方式下拉)
  3. wkday-step3.png — 無效工時明細 grid
  4. wkday-step4.png刪耗料 延伸功能執行流程