程式資訊
- 程式 ID:
GRPM - 所屬子系統:B.基本資料
- 狀態:stable
群組設定¶
功能簡介¶
「群組設定」用來維護各種主檔在系統內的分群代號(群組代號)。當品號、客戶、廠商、科目等資料量龐大時,可以先在這裡定義一套六層分類結構,再由系統依各層分類的代碼串接出一組群組代號,讓主檔資料能依群組做篩選、彙總與報表分群。
每一個群組都歸屬於一種群組別(如:品號、客戶、廠商、科目代號…共九種),系統會依群組別自動切換六個分類欄位的可選清單。實際決定群組代號長相的,是六層分類各自挑了哪個分類碼,再透過 尾碼編號/串聯編號/尾碼加串聯編號 三種編碼方式組出群組代號與說明。
此表單由基礎資料維護人員或系統管理員使用,是其他主檔(品號、客戶、廠商等)填「群組代號」欄位前必須先建好的前置資料。
群組別 vs 分類碼
群組別是「這個群組屬於哪一類主檔」(品號群組?客戶群組?);分類1~分類6才是組成代號的內容。兩者搭配後才產生一筆可被引用的群組代號。
前置需求¶
- 權限:B.基礎資料 →
B-080 群組設定的瀏覽/新增/修改/刪除/列印權限。 - 基礎資料:群組各層分類的可選值取自分類項目維護,建立群組前請先確認相關分類碼已維護——
| 資料 | 影響的結果 |
|---|---|
| 分類項目(SMEMS,類別編號 C2151x~C2159x) | 分類1~分類6 下拉清單的內容;分類碼決定群組代號的每一段 |
| 群組別清單(系統內建九種) | 群組別 下拉可選的類別,決定本群組屬於哪類主檔 |
分類碼從哪裡來
每個分類欄位旁的 ... 按鈕會開啟 分類項目維護(SMEMS)的挑選視窗,可即時補維護該層分類值。九種群組別各自對應一組 C2151x~C2159x 的類別編號(如品號群組第 1 層為 C21511),由系統依群組別自動帶入,使用者不需手動指定。
操作步驟¶
新增一筆群組¶
- 按工具列
新增。系統會把群組別預設為清單第一個項目(品號),並依此載入分類1~分類6 的下拉清單。 - 從 群組別 下拉選擇此群組要歸屬的主檔類別(品號/客戶/廠商/科目代號/總務品號/費用/工作中心/區域/檢查項目)。切換群組別時,下方六層分類的可選清單會跟著換成對應類別的分類碼。
- 在 分類1~分類6 逐層挑選分類碼:
- 直接點開該層下拉選取,或
- 按該層右側的
...按鈕開啟分類挑選視窗(可順便維護分類項目)。
- 按下方三個編碼按鈕之一,讓系統依已選分類自動組出群組代號與說明:
串聯編號:把各層已選分類碼直接串接成群組代號。尾碼編號:取最後一個有選值那層分類碼為群組代號。尾碼加串聯編號:先取尾碼、再串接其後各層,組成較長的群組代號。
- 視需要在下方明細區補充選項與內容(自訂的補充說明,逐列輸入)。
- 按工具列
儲存。
群組代號與說明為唯讀
群組代號 與 說明 欄位都是唯讀的,無法直接打字,必須透過上述編碼按鈕由系統產生。若按了編碼按鈕仍是空白,請見常見問題。
修改 / 查詢 / 刪除¶
- 用工具列的查詢或上一筆/下一筆瀏覽既有群組。切換到某筆資料時,系統會依該筆的群組別自動還原六層分類的下拉清單與選取狀態。
- 修改後按
儲存。 - 刪除整筆群組請按工具列
刪除;明細列若選項留空,儲存時該列會被視為刪除。
列印¶
- 按工具列
列印,開啟群組表列印對話框。 - 系統會把群組代號起/訖預設帶入目前這筆群組的代號(起訖相同),並自動帶出對應說明。
- 可調整起訖群組代號範圍後輸出報表(報表抬頭:群組表,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 分別載入C21511~C21516;選「客戶」時換成C21521~C21526,依此類推)。 - 同時,系統會 設定每層分類旁
...標籤的導覽鍵值(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/):
grpm-step1.png— 主檔全貌(群組別下拉 + 分類1~分類6 + 三個編碼按鈕)grpm-step2.png— 按...開啟的分類挑選視窗grpm-step3.png— 群組表列印對話框(群組代號起訖)