跳轉到

程式資訊

  • 程式 IDDEPT
  • 所屬子系統:B.基本資料
  • 狀態:stable

部門資料

功能簡介

「部門資料」維護公司的部門主檔,是整套 ERP 用來標示「哪個部門」的基礎資料。每筆部門包含部門代號、簡稱、名稱、負責主管、職稱、要員人數、生產順序,並可在明細逐列登記該部門的要員(成員)清單

部門代號之後會被銷售、採購、生產、人事、會計各模組大量引用——例如業務員所屬部門、製令的生產部門、傳票的成本中心等——因此本表單通常由系統管理員或人資在系統啟用初期就先建好,後續才在各單據選用。屬於 B.基礎資料 模組的設定主檔,採「主檔+要員明細」的雙層結構。

前置需求

  • 權限:B.基礎資料 → B-020 部門資料 的瀏覽/新增/修改/刪除/列印權限。
  • 先維護的關聯資料:本表單的「主管」與「要員」欄位是從其他主檔挑選回填,建議先備妥下列資料——
資料 影響什麼
系統使用者(SECRET,使用者代號/使用者姓名) 負責主管 搜尋方塊的查詢來源(放大鏡列出使用者代號/使用者姓名供挑選)
員工基本資料(PERDATA,員工編號/姓名/Email) 明細 員工編號 欄的搜尋來源;切換部門時也由此重算 主管姓名 與每位要員的 Email

備註

部門代號一旦被其他單據引用就不應再隨意更改或刪除,否則會造成既有單據的部門失去對照。建議停用而非刪除已被使用的部門。

操作步驟

新增部門

  1. 開啟「部門資料」,按工具列的 新增
  2. 在上方主檔區輸入:
    • 部門代號(主鍵,必填)。
    • 部門簡稱部門名稱
  3. 負責主管 搜尋方塊輸入或用放大鏡查詢使用者代號,挑選後右側唯讀欄會顯示對應姓名(詳見欄位連動與附加功能)。
  4. 視需要填 職稱要員人數生產順序
  5. 到下方明細格線逐列加入要員(見新增要員明細)。
  6. 按工具列的 儲存

新增要員明細

  1. 在下方格線新增一列,系統會自動把 人員別 帶為「目前明細最大人員別 + 1」(第一列從程式預設值起算)。
  2. 員工編號 欄輸入或查詢員工,選定後系統自動帶出該員工的 姓名(唯讀)與 Email(唯讀)。
  3. 視需要填 備註
  4. 若某列的員工編號留空,儲存時該空列會被自動略過(不會寫入)。

修改/刪除

  1. 用工具列翻頁或查詢定位到要修改的部門,直接修改欄位後 儲存
  2. 切換部門時,系統會重新帶出 主管姓名 與每位要員的 Email(見欄位連動與附加功能)。
  3. 要刪除整筆部門,定位後按 刪除;要刪除單一要員,刪除明細格線該列即可。

列印

  1. 按工具列的 列印
  2. 從報表清單擇一:
    • B020-1 部門表:列出部門主檔資料。
    • B020-2 部門要員表:連同各部門的要員明細一併列印。

欄位說明

主檔欄位

欄位 必填 說明/格式/預設
部門代號 主鍵,最長 10 碼;存檔後即為各單據引用的部門代號
部門簡稱 最長 20 字;單據與清單上多以簡稱顯示
部門名稱 最長 80 字,部門全名
負責主管 使用者代號(最長 20 字);以 UserSearch 搜尋方塊挑選(查詢 SECRET 使用者主檔 secret1
主管姓名 唯讀,不儲存於主檔(NotMapped);切換部門時由 PERDATA 員工資料依負責主管代號即時帶出
職稱 主管職稱,最長 20 字
要員人數 數值,預設 0(PlaceEnum=Zero);目前為人工輸入欄位,未與明細列數自動連動
生產順序 1 碼;供排產/報表排序用

資料表中的其他欄位

部門資料表(view)底層尚含 製程別、隸屬倉庫、可用倉庫、在製倉庫、出貨倉庫、外調倉庫、虛擬儲位 等欄位,供倉儲/生產模組使用,但未呈現在本表單畫面上,本頁不提供編輯。若需設定請於對應模組維護。

要員明細欄位

欄位 必填 說明/格式/預設
序號 明細列序號,最長 6 碼
人員別 兩位數值(d2 遮罩);新增列時自動帶為「現有最大值 + 1」
員工編號 TsEmployeeSeekGridViewColumn(員工搜尋欄)挑選;留空的列儲存時自動略過
姓名 唯讀,由員工編號自動帶出
Email 唯讀,由員工編號自動帶出
備註 最長 80 字

欄位連動與附加功能

這一節說明「輸入某欄位/按某動作後系統會做什麼」,全部來自實際程式行為。

負責主管 → 主管姓名

主管姓名來自兩條不同路徑,請特別留意它們查的不是同一張表:

  • 挑選當下(搜尋方塊)負責主管 搜尋方塊套用 UserSearch 樣式,向 SECRET(使用者主檔 secret1)以使用者代號比對、回帶使用者姓名,右側唯讀欄即顯示挑到的人名。
  • 翻頁/查詢切換部門時:系統改依該部門的負責主管代號重新計算 主管姓名AfterMoverRecord 呼叫 DescriptionHelper.GetEmployeeName),而此函式查的是 PERDATA 員工主檔perdata)。因此主管姓名不會被存進部門主檔(標記 NotMapped),永遠以目前的員工資料即時顯示;若負責主管代號在員工資料中查無對應,重新載入後姓名會留空。

員工編號 → 姓名/Email(要員明細)

  • 員工編號 欄是員工搜尋欄(TsEmployeeSeekGridViewColumn),挑選員工時由搜尋欄本身把 姓名 帶到唯讀欄(DescriptionBindingPath="姓名")。
  • 同一時間,員工編號的 setter(EmployeeCodeBinding)會呼叫 DescriptionHelper.GetEmailPERDATA(員工主檔 perdata)取回該員工的 Email 填入唯讀欄。
  • 當你切換到另一筆部門時,系統會逐列重新帶出每位要員的 EmailAfterMoverRecord 對每列呼叫 GetEmail 重算)。

新增明細列 → 人員別自動編號

  • 當你在明細格線新增一列,系統會找出目前明細中最大的 人員別 值,把新列的人員別設為「最大值 + 1」(SetNewData)。第一列沒有可參考的舊值時,採欄位預設值。
  • 此自動編號只在新增列當下發生一次,之後仍可手動調整。

儲存時的處理

  • 人員別不可重複:儲存前系統會檢查所有未刪除的要員明細,若有兩列以上的 人員別 相同,會以「資料重複」訊息擋下、不允許儲存(DeptSave.AllowSave)。請確保每位要員的人員別唯一。
  • 明細列若 員工編號為空,儲存時該列會被視為無效列自動略過、不寫入資料庫(NeedDeleteFunction 以員工編號是否為空白判定)。
  • 主管姓名、Email 標記為 NotMapped/不儲存,只作顯示用;它們不會被寫進資料表,而是每次載入時由員工資料即時計算。

列印報表

  • 本表單實作 IPrintSource,提供兩張報表:
    • B020-1(內部名 Dept)— 部門表,抬頭「部門表」。
    • B020-2(內部名 Dept1)— 部門要員表,抬頭「部門要員表」。
  • 兩張報表皆為 A4、台灣(TW)版面,列印資料分別來自 rpt_b020_dept_report1rpt_b020_dept_report2 兩個本機資料來源。

常見問題

輸入了負責主管,但翻頁回來「主管姓名」變空白?

切換部門後重新帶出的主管姓名查的是 PERDATA 員工主檔(不是登入用的使用者主檔)。若負責主管填的代號在員工資料中查無對應,重新載入後姓名就會留空。請確認該代號同時存在於員工資料中,或改填員工資料裡有的代號。

明細選了員工,「Email」卻是空的?

Email 取自 PERDATA 該員工的 Email 欄位。若該員工在人員主檔中沒有填 Email,這裡自然就空白;請先到人員資料補上 Email。

明細加了一列卻沒存進去?

只有員工編號為空的明細列會在儲存時被自動略過。若你想保留一列備註但沒選員工,系統會把它當成空列丟棄——請先選定員工編號再儲存。

「要員人數」會不會跟著我加的明細自動算?

不會。目前 要員人數 是獨立的人工輸入欄位,與明細實際列數沒有自動連動,需要時請自行維護。

儲存時出現「資料重複」存不了?

要員明細的 人員別 不可重複。系統在儲存前會檢查所有未刪除的要員列,只要有兩列的人員別相同就會擋下並提示資料重複。請把重複的人員別改成不同值(新增列時系統預設帶「現有最大值+1」,通常不會撞號,但手動改過就可能重複)。

部門代號可以改嗎?刪除部門會怎樣?

部門代號是主鍵,且會被各模組單據引用。已被單據使用的部門若更改代號或刪除,會造成既有單據的部門對照失效。建議只在尚未被引用時調整,已上線的部門以停用取代刪除。

相關功能


需補截圖清單

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

  1. images/dept-step1.png — 部門資料主畫面全貌(上方主檔區+下方要員明細)
  2. images/dept-step2.png — 負責主管搜尋方塊與自動帶出的主管姓名
  3. images/dept-step3.png — 要員明細格線(員工編號搜尋、自動帶出姓名/Email)
  4. images/dept-step4.png — 列印報表選單(B020-1 部門表/B020-2 部門要員表)