跳轉到

程式資訊

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

群組設定

功能簡介

「群組設定」用來維護各種主檔在系統內的分群代號(群組代號)。當品號、客戶、廠商、科目等資料量龐大時,可以先在這裡定義一套六層分類結構,再由系統依各層分類的代碼串接出一組群組代號,讓主檔資料能依群組做篩選、彙總與報表分群。

每一個群組都歸屬於一種群組別(如:品號、客戶、廠商、科目代號…共九種),系統會依群組別自動切換六個分類欄位的可選清單。實際決定群組代號長相的,是六層分類各自挑了哪個分類碼,再透過 尾碼編號串聯編號尾碼加串聯編號 三種編碼方式組出群組代號與說明。

此表單由基礎資料維護人員或系統管理員使用,是其他主檔(品號、客戶、廠商等)填「群組代號」欄位前必須先建好的前置資料。

群組別 vs 分類碼

群組別是「這個群組屬於哪一類主檔」(品號群組?客戶群組?);分類1~分類6才是組成代號的內容。兩者搭配後才產生一筆可被引用的群組代號。

前置需求

  • 權限:B.基礎資料 → B-080 群組設定 的瀏覽/新增/修改/刪除/列印權限。
  • 基礎資料:群組各層分類的可選值取自分類項目維護,建立群組前請先確認相關分類碼已維護——
資料 影響的結果
分類項目(SMEMS,類別編號 C2151x~C2159x) 分類1~分類6 下拉清單的內容;分類碼決定群組代號的每一段
群組別清單(系統內建九種) 群組別 下拉可選的類別,決定本群組屬於哪類主檔

分類碼從哪裡來

每個分類欄位旁的 ... 按鈕會開啟 分類項目維護(SMEMS)的挑選視窗,可即時補維護該層分類值。九種群組別各自對應一組 C2151xC2159x 的類別編號(如品號群組第 1 層為 C21511),由系統依群組別自動帶入,使用者不需手動指定。

操作步驟

新增一筆群組

  1. 按工具列 新增。系統會把群組別預設為清單第一個項目(品號),並依此載入分類1~分類6 的下拉清單。
  2. 群組別 下拉選擇此群組要歸屬的主檔類別(品號/客戶/廠商/科目代號/總務品號/費用/工作中心/區域/檢查項目)。切換群組別時,下方六層分類的可選清單會跟著換成對應類別的分類碼。
  3. 分類1~分類6 逐層挑選分類碼:
    1. 直接點開該層下拉選取,或
    2. 按該層右側的 ... 按鈕開啟分類挑選視窗(可順便維護分類項目)。
  4. 按下方三個編碼按鈕之一,讓系統依已選分類自動組出群組代號與說明
    • 串聯編號:把各層已選分類碼直接串接成群組代號。
    • 尾碼編號:取最後一個有選值那層分類碼為群組代號。
    • 尾碼加串聯編號:先取尾碼、再串接其後各層,組成較長的群組代號。
  5. 視需要在下方明細區補充選項內容(自訂的補充說明,逐列輸入)。
  6. 按工具列 儲存

群組代號與說明為唯讀

群組代號說明 欄位都是唯讀的,無法直接打字,必須透過上述編碼按鈕由系統產生。若按了編碼按鈕仍是空白,請見常見問題

修改 / 查詢 / 刪除

  1. 用工具列的查詢或上一筆/下一筆瀏覽既有群組。切換到某筆資料時,系統會依該筆的群組別自動還原六層分類的下拉清單與選取狀態。
  2. 修改後按 儲存
  3. 刪除整筆群組請按工具列 刪除;明細列若選項留空,儲存時該列會被視為刪除。

列印

  1. 按工具列 列印,開啟群組表列印對話框。
  2. 系統會把群組代號起/訖預設帶入目前這筆群組的代號(起訖相同),並自動帶出對應說明。
  3. 可調整起訖群組代號範圍後輸出報表(報表抬頭:群組表,B080-1)。

欄位說明

主檔欄位

欄位 必填 說明 / 格式 / 預設
群組代號 系統產生 唯讀;最長 10 字,由編碼按鈕依分類組出
群組別 九選一下拉;新增時預設「品號」;決定六層分類的可選清單
說明 系統產生 唯讀;最長 100 字,隨群組代號一併由編碼按鈕組出
分類1~分類6 依編碼方式 各為下拉+... 維護鈕;可選值取自對應的 SMEMS 分類碼

明細欄位

欄位 必填 說明 / 格式 / 預設
序號 明細列序號
選項 自訂選項名稱,最長 30 字;留空的列儲存時視為刪除
內容 自訂內容,支援多行換行(編輯時可按 Enter 換行),最長 999 字

群組別對照

代碼 群組別 分類碼前綴
1 品號 C21511~C21516
2 客戶 C21521~C21526
3 廠商 C21531~C21536
4 科目代號 C21541~C21546
5 總務品號 C21551~C21556
6 費用 C21561~C21566
7 工作中心 C21571~C21576
8 區域 C21581~C21586
9 檢查項目 C21591~C21596

欄位連動與附加功能

這支表單的重點全在「選了群組別 → 切換分類清單 → 按編碼按鈕組出代號」這條連動鏈,以下逐項說明。

選擇「群組別」後

  • 當你切換群組別時,系統會 執行 SwitchGrpmType(),依群組別代碼(1~9)把六層分類下拉的資料來源換成對應的類別編號(例如選「品號」時,分類1~分類6 分別載入 C21511C21516;選「客戶」時換成 C21521C21526,依此類推)。
  • 同時,系統會 設定每層分類旁 ... 標籤的導覽鍵值(Tier1~Tier6),這些標籤是可點選的超連結,會帶你到 分類項目維護(SMEMS)查該層分類。
  • 瀏覽到既有資料時,系統會AfterMoverRecord() 依該筆的群組別還原下拉清單,確保分類欄顯示正確的可選項。

分類欄旁的 ... 按鈕

  • 當你按某層分類的 ... 時,系統會 執行 ReturnGrpm():取出該層分類的資料表,開啟一個分類挑選視窗(ShowSearchWindow)。視窗欄名會顯示為「分類 + 層號」(如「分類1」)。
  • 挑選並確認後,系統會 把你選的分類碼回填到該層下拉的選取項。
  • 這個視窗的資料來源是 SMEMS 分類項目(依 類別編號 LIKE 'C2151x%' 篩選的摘要清單),所以新增分類時請先在 分類項目維護 補好對應類別編號的項目。

三個編碼按鈕

選好各層分類後,按以下任一按鈕由系統組出群組代號說明

  • 串聯編號 時,系統會 執行 InSeries()

    • 由後往前檢查各層——若某層空白但其後層卻有值(中間斷層),會擋下並提示「分類N 不可為空白」,不產生代號。
    • 通過後,逐層把分類碼字串以 *: 切割,取出代號段串接成群組代號、說明段串接成說明。
    • 因此每層分類值的格式需含 *:(代號 * 名稱 : 描述),若格式不符會提示「分類N 格式錯誤、必須包含 *」。
  • 尾碼編號 時,系統會 執行 LastRecordCoding()

    • 先以 IsLastCodeDataCorrect() 確認最後一個有值的分類層其值含 :,否則提示「必須包含冒號」。
    • 最後一個有值那層的分類碼為群組代號與說明,並自動把前面各層的下拉選取補成與該代號相符的項目。
  • 尾碼加串聯編號 時,系統會 執行 LastRecordCodingAndInSeries()

    • 先做尾碼編號(取最後有值層為基底),且這次會額外排除以 * 開頭的分類值;若資料不符會提示「必須包含冒號,或是開頭不可為 *」。
    • 再把尾碼層之後的各層用串聯邏輯接上,組成較長的群組代號,並把代號+說明一併寫回群組代號說明欄。

為什麼要分三種編碼

三種按鈕對應不同的編碼策略:要完整逐層串接用 串聯編號;只要末層當代號用 尾碼編號;要末層當前綴再往後接用 尾碼加串聯編號。實際採哪一種由貴公司的群組編碼規則決定。

明細列的儲存與刪除

  • 當你把某明細列的「選項」留空時,系統會 在儲存時將該列視為需刪除(NeedDeleteFunction 以選項是否空白判斷),不會留下空白列。
  • 內容 欄在格線中以多行顯示,編輯時的輸入框允許換行(AcceptsReturn),適合放較長的補充說明。

列印連動

  • 當你按列印時,系統會 透過 GetPrintViewModel() 開啟群組表列印頁,並把目前這筆的群組代號同時帶入起訖兩端、用 GetGroupDescription() 帶出對應說明。
  • 列印頁需起訖代號皆有值才會有報表資料(HaveReportData);報表參數只傳起訖群組代號。

常見問題

按了編碼按鈕,群組代號還是空白?

多半是分類值的格式不符。串聯編號 需要各層分類值含 *:(代號 * 名稱 : 描述);尾碼編號尾碼加串聯編號 則要求最後有值那層含 :。若格式不對,系統會跳出「格式錯誤/必須包含冒號」之類的提示而不產生代號。請回 分類項目維護 確認該層分類值的格式。

用「串聯編號」時被擋,說某層分類不可為空白?

串聯編號不允許中間斷層——若分類1、分類2 有值,分類3 空白,但分類4 又有值,系統會擋下並提示「分類3 不可為空白」。請把中間缺的層補上,或把後面多餘的層清空。

群組代號和說明能直接打字嗎?

不行。兩者都是唯讀欄位,一定要先選好群組別與各層分類,再按 串聯編號尾碼編號尾碼加串聯編號 由系統組出,無法手動輸入。

分類1~分類6 的下拉是空的,選不到東西?

分類清單依群組別載入對應的 SMEMS 類別編號(C2151x~C2159x)。若某層為空,代表該類別編號下還沒有維護分類項目。請按該層 ... 或到 分類項目維護 補上對應類別編號的資料。

切換群組別後,原本選的分類不見了?

切換群組別會整批換掉六層分類的可選清單(不同群組別對應不同類別編號),原本的選取若不在新清單中自然就清掉了。請在確定群組別後再挑分類;瀏覽既有資料時系統會依該筆群組別自動還原清單,不會遺失。

明細少了一列,怎麼不見了?

明細列若「選項」欄留空,儲存時會被當成刪除列移除。要保留該列請至少填上選項。

相關功能


需補截圖清單

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

  1. grpm-step1.png — 主檔全貌(群組別下拉 + 分類1~分類6 + 三個編碼按鈕)
  2. grpm-step2.png — 按 ... 開啟的分類挑選視窗
  3. grpm-step3.png — 群組表列印對話框(群組代號起訖)