程式資訊
- 程式 ID:
PROCNOS - 所屬子系統:D.工程資料
- 狀態:stable
工程代號維護¶
功能簡介¶
「工程代號維護」是 BOM 模組的製程/工序主檔(程式對應 PROCNOS、選單編號 D-030),用來建立每一道加工工序(工程)的基本資料:工程代號、簡稱、所屬的加工中心群組、損耗率、製造/檢驗規格,以及該工序的檢查項目與改訂履歷。
建好的工程代號會被 BOM 管理 在組成展開時引用,作為「產品要經過哪些工序、各工序的標準損耗與加工中心」的依據。此表單由生管/製程工程人員維護,屬於建立 BOM 之前要先備妥的基礎資料之一。
備註
本表單為主檔+兩個明細表結構:上半部是工程主檔(一筆工程一列),下方兩個格線分別是「檢查項目」與「改訂履歷」,皆隨主檔工程代號連動。對應的資料來源為 Twork_bom_vw_procnoSource(主檔)、Twork_bom_vw_procno1Source(檢查項目)、Twork_bom_vw_prochistSource(改訂履歷)。
前置需求¶
- 權限:D.BOM →
D-030 工程代號維護的新增/修改/刪除/瀏覽權限。 - 基礎資料:下列主檔需先維護,否則對應欄位無法正確帶值——
| 資料 | 影響什麼 |
|---|---|
| 群組資料(群組別 7=加工中心群組) | 中心群組欄的查詢(SK_GRPM7)與右側自動帶出的說明 |
| 加工中心 | 工程實際對應的加工中心(透過中心群組關聯) |
影像目錄(ProcessingDirectory) |
存檔時圖檔名稱所指圖片會被複製進此目錄保存 |
操作步驟¶
新增工程代號¶
- 按工具列
新增,游標自動聚焦在工程代號欄(FocusExtension.IsFocused綁定 VM 的IsFocused)。 - 輸入工程代號(必填,最長 10 碼,為主鍵),再依序填入工程簡稱、報價簡稱、工程說明。
- 在中心群組欄按查詢鈕(
SK_GRPM7)挑選加工中心群組,右側說明會自動帶出該群組名稱。 - 視需要填入損耗率(畫面以百分比輸入,內部存小數)、重要項目與重要度。
- 在圖檔名稱欄選擇工序示意圖路徑(
TsPathTextBox),選定後右側Image區會即時預覽。 - 在下方文字框填寫檢驗規格與製造規格(皆可多行輸入,
AcceptsReturn)。 - 在「檢查項目」格線逐列輸入序號/檢查項目/檢查基準。
- 在「改訂履歷」格線記錄版次變更(日期/版次/改訂理由/作成/確認/承認)。
- 按
儲存。
注意
工程代號未填會被擋存並提示輸入訊息(ProcnosSave.AllowSave)。請務必先填工程代號再儲存。
修改 / 查詢 / 刪除¶
- 用工具列的
查詢或記錄移動鈕(第一筆/上一筆/下一筆/最末筆)切換到要處理的工程;切換後右側說明會依目前工程的中心群組重新帶出(AfterMoverRecord)。 - 直接在欄位上修改後按
儲存。 - 要刪除某一明細列時,清空關鍵欄位即觸發刪除:
- 「檢查項目」列的檢查項目清空 → 該列視為刪除(
NeedDeleteFunction)。 - 「改訂履歷」列的日期清空 → 該列視為刪除(
NeedDeleteFunction)。
- 「檢查項目」列的檢查項目清空 → 該列視為刪除(
欄位說明¶
工程主檔¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 工程代號 | ✔ | 主鍵,最長 10 碼。未填擋存。 |
| 工程簡稱 | — | 最長 20 碼。 |
| 報價簡稱 | — | 最長 20 碼,工序的報價用簡稱。 |
| 工程說明 | — | 最長 60 碼。 |
| 中心群組 | — | 加工中心群組代號(最長 10 碼),按 SK_GRPM7 查詢挑選。 |
| 說明 | (自動帶出) | 中心群組的名稱,由群組別 7 自動帶出,僅供顯示。最長 100 碼,是 Source 的純顯示屬性(以獨立欄位存放,不對應工程主檔欄位、不會寫入資料庫)。 |
| 損耗率 | — | 小數(7,4);畫面以百分比顯示(HundredConverter,輸入 5 代表存入 0.05)。 |
| 重要項目 | — | 最長 20 碼。 |
| 重要度 | — | 最長 2 碼字串;以 TsNumericTextBox+PlaceEnum=Zero 顯示,數字輸入、不足補零。 |
| 圖檔名稱 | — | 工序示意圖路徑,最長 60 碼;選定後右側即時預覽。 |
| 檢驗規格 | — | 多行文字(最長 999 碼)。 |
| 製造規格 | — | 多行文字(最長 999 碼)。 |
備註
主檔另含建檔日期/審核人員/審核日期/已審核/工作流程/聯絡單 id 等系統欄位,由系統維護,不在輸入畫面上呈現。
檢查項目(明細一)¶
| 欄位 | 必填 | 說明/格式 |
|---|---|---|
| 序號 | — | 最長 6 碼,明細排序用。 |
| 檢查項目 | — | 最長 20 碼。清空此欄該列即視為刪除。 |
| 檢查基準 | — | 最長 60 碼。 |
改訂履歷(明細二)¶
| 欄位 | 必填 | 說明/格式 |
|---|---|---|
| 日期 | — | 日期欄,唯讀顯示(ForceReadOnly,欄寬 90)。清空此欄該列即視為刪除。 |
| 版次 | — | 整數;以 PlaceEnum=Zero 顯示(不足補零)。 |
| 改訂理由 | — | 最長 80 碼。 |
| 作成 | — | 製作人員(最長 20 碼)。 |
| 確認 | — | 確認人員(最長 20 碼)。 |
| 承認 | — | 承認人員(最長 20 碼)。 |
欄位連動與附加功能¶
這一節把「輸入某欄位/按某動作後系統會做什麼」依真實程式碼整理出來,是本頁最關鍵的一節:
-
輸入中心群組 → 自動帶出說明:當你在中心群組欄(
GroupSearch,SeekAlias=SK_GRPM7)選定一個群組後,右側說明會即時顯示該群組名稱。切換記錄時也會重算——ProcnosViewModel.AfterMoverRecord會取目前工程的中心群組,呼叫DescriptionHelper.GetGroupDescription(7, 中心群組)(群組別 7=加工中心群組)把名稱填入說明。說明本身不存進工程檔(是 Source 的純顯示屬性,不對應主檔欄位),純粹是顯示輔助。 -
輸入損耗率 → 百分比換算:損耗率欄透過
HundredConverter顯示。你在畫面輸入的是百分比,系統存進資料庫的是小數(例如輸入5代表損耗率 0.05;顯示時再乘回 100 變回 5)。 -
選定圖檔名稱 → 即時預覽:當你在圖檔名稱欄選好圖片,Source 的
圖檔名稱setter 會同時通知圖檔完整路徑Binding變更(該唯讀屬性以ERPIO.GetFullPath算出完整路徑),右側Image立即以FileImageConverter顯示工序示意圖。 -
儲存時的工程代號檢查:按
儲存時ProcnosSave.AllowSave會先確認工程代號有值,否則回傳「請輸入工程代號」的輸入提示並擋存。 -
儲存時的圖檔保全:若圖檔名稱有值,存檔會檢查該圖是否已存在於系統影像處理目錄(
ProcessingDirectory)——- 已存在(
CheckImageExist為真)→ 直接沿用。 - 尚未存在 → 系統呼叫
SaveImage把圖片複製進處理目錄,並把圖檔名稱改寫成複製後的新路徑再一併存檔。 - 複製失敗 → 以「影像儲存錯誤」(
MessageEnum.ImageSaveError)訊息擋存,請改用有效的圖檔路徑再試。
- 已存在(
-
明細列刪除規則:兩個明細表不需手動標記刪除——「檢查項目」列把檢查項目清空(
Twork_bom_vw_procno1Source.NeedDeleteFunction)、「改訂履歷」列把日期清空(Twork_bom_vw_prochistSource.NeedDeleteFunction),存檔時該列就會被刪除。
規劃中/尚未提供
本表單目前沒有列印(報表)、匯入匯出 Excel、轉傳票或簽核流程等延伸動作,僅提供標準的新增/修改/刪除/查詢與上述欄位連動。主檔雖保留審核人員/審核日期/已審核/工作流程等欄位,但畫面上未開放操作,相關簽核功能尚未在此表單提供。
常見問題¶
按儲存沒反應、跳出要輸入的提示?
通常是工程代號未填。工程代號是主鍵,ProcnosSave.AllowSave 會擋下空白的工程代號並提示輸入。先補上工程代號再存。
中心群組右邊的「說明」是空白的?
說明取自群組別 7(加工中心群組)的名稱。請確認你選的中心群組確實存在於群組資料;若是手動鍵入而非用 SK_GRPM7 查詢挑選,代號打錯就帶不出名稱。切換到別筆再切回來(AfterMoverRecord)也可觸發重新帶值。
損耗率輸入後存進去的值好像變小了?
這是正常的。畫面用百分比顯示(HundredConverter),輸入的數字會除以 100 存成小數——輸入 5 代表 0.05。要表示 5% 就輸入 5 即可。
重要度只能填數字?輸入後前面多了 0?
重要度是 2 碼字串欄位,畫面用數字輸入框(TsNumericTextBox)並設 PlaceEnum=Zero,顯示時會把不足位數補 0,這是預期行為。
選了圖檔但存檔失敗、提示影像儲存錯誤?
存檔時系統會把圖片複製進影像處理目錄(ProcessingDirectory)保存,複製失敗就會擋存(ImageSaveError)。請確認原圖檔路徑存在、可讀取,且影像目錄可寫入。
明細列刪不掉?
明細沒有獨立的刪除鈕,而是靠清空關鍵欄位觸發:把「檢查項目」列的檢查項目清空、或把「改訂履歷」列的日期清空,再儲存,該列即會被移除。
相關功能¶
需補截圖清單
以下截圖待 runtime 驗收後補拍(放 docs/D-Bom/images/):
procnos-step1.png— 工程主檔輸入畫面(含中心群組SK_GRPM7查詢與圖檔即時預覽)procnos-step2.png— 「檢查項目」明細格線(序號/檢查項目/檢查基準)procnos-step3.png— 「改訂履歷」明細格線(日期/版次/改訂理由/作成/確認/承認)