程式資訊
- 程式 ID:
SMEMS - 所屬子系統:B.基本資料
- 狀態:stable
摘要檔¶
功能簡介¶
「摘要檔」(SMEMS)是 TsERP 的通用簡碼/摘要碼字典,採「類別(Master)+摘要明細(Detail)」兩層結構:一筆 Master 代表一個類別(例如某張單據要用的某組下拉選項),其下的 Detail 逐筆登錄該類別可選用的摘要碼與摘要文字。
系統內大量單據的下拉選單、分類欄位都不是各自寫死的,而是回頭讀本檔的某個類別。最典型的是群組分類設定(Grpm)——它的「分類1~分類6」欄位全部以超連結指向本檔(NavigateProgramClass="SMEMS"),其下拉內容即取自對應 CMB_* 類別的摘要明細。因此會計、業務、生管、採購主檔人員都可能維護到這裡:要新增一個分類選項、調整摘要文字,或讓某個摘要碼對應到固定的科目/客廠部,都在此完成。
在流程中的位置
本檔屬於前置基礎資料,不產生交易單據,但其他單據的下拉、分類欄位仰賴它。先把類別與摘要建好,後續單據才能正確選到對應選項。
前置需求¶
- 權限:B.基礎資料 →
B-070 摘要檔的瀏覽權限;列印需另有列印權限。 - 基礎資料:摘要明細可選擇對應到科目或客廠部,下列主檔會影響明細的描述欄位是否能帶出名稱——
| 資料 | 影響什麼 |
|---|---|
| 部門資料(Dept) | Master 的 部門代號(透過 DeptSearch 控件挑選) |
| 會計科目主檔 | 明細的 科目代號 對應,科目名稱 由系統依代號帶出(唯讀) |
| 客戶/廠商/部門主檔 | 明細的 客廠部代號 對應,客廠部簡稱 由系統帶出(唯讀) |
操作步驟¶
本表單為標準「主檔+明細」維護畫面,工具列提供 新增、修改、刪除、查詢、列印。
新增一個類別¶
- 按工具列
新增。 - 在上半部主檔區輸入:
- 類別編號(主鍵,必填):本類別的代碼。供其他單據以此代碼回頭引用。
- 類別:類別的中文名稱/說明。
- 摘要長度、起始摘要碼、截止摘要碼:本類別摘要碼的長度與允許範圍(預設皆為 0)。
- 備註、部門代號(用
DeptSearch挑選,可空白)。
- 在下半部明細格線逐列輸入摘要明細:
- 摘要碼(數值)、摘要代號、摘要(實際顯示文字)。
- 視需要填 科目代號、客廠部代號,並勾選 是否為成本。
- 敘述 欄為多行文字,格線中以自動換行顯示,編輯時可按 Enter 換行。
- 按工具列
儲存。儲存前系統會自動把每一列明細的 類別編號 同步成主檔的類別編號(見欄位連動與附加功能)。
修改 / 刪除¶
- 用
查詢找到要維護的類別。 - 按
修改後即可調整主檔欄位或增刪明細列。 - 刪除整列明細:在明細格線選取該列後刪除即可。空白未填的明細列(摘要碼≤0 且摘要代號、摘要皆空白)會被視為無效列,儲存時自動略過。
查詢¶
按 查詢 後以 類別編號 等條件帶出既有類別與其明細。
列印¶
按 列印 開啟摘要檔列印(SmemsPrint)頁,以 類別編號 區間(起~迄)輸出報表 B070-1 摘要檔。系統會把目前主檔的類別編號預帶為列印起訖值。
欄位說明¶
主檔(Master)¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 類別編號 | ✔ | 主鍵,最長 10 碼。供其他單據(如 Grpm 的 CMB_* 類別)回頭引用 |
| 類別 | — | 類別名稱/說明,最長 30 字 |
| 摘要長度 | — | 數值(byte),預設 0;本類別摘要碼的位數 |
| 起始摘要碼 | — | 數值,預設 0;摘要碼允許的下限 |
| 截止摘要碼 | — | 數值,預設 0;摘要碼允許的上限 |
| 備註 | — | 最長 60 字 |
| 部門代號 | — | 透過 DeptSearch 控件挑選,可空白 |
| 公司代碼 | — | 系統內部欄位,新增時預設帶 1,畫面不顯示 |
明細(Detail)¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 摘要碼 | ✔ | 數值,本類別內的識別碼 |
| 摘要代號 | — | 最長 10 碼 |
| 摘要 | — | 實際顯示文字,最長 100 字;其他單據下拉所見即此欄 |
| 科目代號 | — | 對應會計科目,最長 20 碼 |
| 科目名稱 | 唯讀 | 依科目代號由系統帶出的描述欄,預設空字串,不可直接編輯 |
| 客廠部代號 | — | 對應客戶/廠商/部門,最長 10 碼 |
| 客廠部簡稱 | 唯讀 | 依客廠部代號由系統帶出的描述欄,預設空字串,不可直接編輯 |
| 敘述 | — | 多行文字,格線自動換行顯示,編輯可換行 |
| 是否為成本 | — | 以核取方塊呈現(YesNoConverter 轉換),最長 1 碼 |
欄位連動與附加功能¶
這一節彙整「輸入某欄位 / 按某動作後,系統會做什麼」,全部來自實際程式碼。
-
儲存時自動同步明細的類別編號:按
儲存時SmemsSave.HandleDataBeforeEndEdit會抓主檔的 類別編號,逐列覆寫到每一筆明細的 類別編號。因此你不需要在明細逐列輸入類別編號,主從一定一致。 -
空白明細列自動略過:明細的有效性由
NeedDeleteFunction判定——當一列同時滿足「摘要碼≤0 且 摘要代號空白 且 摘要空白」時視為無效列,儲存時自動刪除,不會寫進資料庫。所以多按出來的空列可以不理會。 -
科目名稱 / 客廠部簡稱 為描述欄、不需手填:這兩欄是唯讀描述欄(程式中以
Twork_bas_vw_smemsdSource的_AccountDescription、_CustVendDeptDescription兩個附加屬性承接,並非明細資料表本身的欄位),新增時預設為空字串。你只要填對 科目代號 / 客廠部代號,名稱由系統依代號帶出。 -
部門代號用 DeptSearch 挑選:主檔的部門代號欄位是
DeptSearch控件,可叫出部門清單挑選並帶回代號,免手 key。 -
被 Grpm 以超連結引用(NavigateProgramClass="SMEMS"):群組分類設定(Grpm) 的「分類1~分類6」Label 都設了
NavigateProgramClass="SMEMS",按下時會以該分類目前的鍵值(Tier1~Tier6)超連結跳到本摘要檔對應類別。也就是說,Grpm 那些下拉選項的「字典來源」就是本檔。 -
被各單據下拉以類別前綴讀取:
GrpmComboBoxBll會呼叫 SPDARB_BD_SMEMS,以類別編號 LIKE '<類別>%'為條件取出該類別的所有 摘要 作為下拉內容(見CategoryTierComboBoxViewModel);下拉清單會快取於 Grpm 快取中。系統內超過五十支單據(業務訂單、出貨、採購、ARAP、發票、品檢等)透過TsComboBoxWithDescriptionBySql等控件共用這套機制,因此在此調整摘要文字,會即時反映到那些單據的下拉選項。 -
列印參數預帶:開啟列印頁時,
GetPrintViewModel會把目前主檔第一筆的 類別編號 同時填入列印頁的「起始」與「截止」,預設只印目前這一類別,可再自行擴大區間。
尚未提供的欄位
主檔 XAML 中保留了 CompanyCode/TsCompanyInfo(公司別)相關欄位,但目前整段以註解封存、畫面不顯示,公司代碼固定預設為 1。多公司別維護屬規劃保留、尚未開放操作。
常見問題¶
明細的「科目名稱」或「客廠部簡稱」一直空白?
這兩欄是唯讀描述欄,由系統依你填的 科目代號 / 客廠部代號 帶出對應名稱,不能直接打字。若空白,請確認:(1) 對應的會計科目 / 客廠部主檔確實存在該代號;(2) 代號有無打錯。新增當下尚未存檔時,名稱欄預設就是空字串,帶出名稱後才會顯示。
明細不用填「類別編號」嗎?多出來的空白列要不要刪?
不用。儲存時系統會自動把每一列明細的 類別編號 同步成主檔的類別編號;而完全空白的明細列(摘要碼≤0 且摘要代號、摘要皆空白)會自動被視為無效列、儲存時略過,可以不必手動刪除。
在某張單據的下拉看不到我剛加的摘要選項?
那些下拉以 類別編號 LIKE '<類別>%' 讀取本檔,請確認:(1) 新增的明細是掛在正確的類別編號底下;(2) 摘要 欄(顯示文字)有填;(3) 已按 儲存。下拉內容可能有快取,必要時重開該單據畫面再試。
找不到 Grpm 分類1~6 的選項來源在哪維護?
來源就是本檔。Grpm 的分類欄位以 NavigateProgramClass="SMEMS" 連到摘要檔對應類別(CMB_*),在這裡新增 / 修改該類別下的摘要明細即可。
「摘要長度/起始摘要碼/截止摘要碼」會自動檢核明細的摘要碼嗎?
這三個欄位用於描述本類別摘要碼的長度與允許範圍。目前程式未對明細的摘要碼做自動長度/範圍強制檢核,請維護時自行確認明細摘要碼落在所設範圍內。
相關功能¶
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/B-BasicData/images/):
smems-step1.png— 主檔區(類別編號 / 類別 / 摘要長度 / 起訖摘要碼 / 部門代號)全貌smems-step2.png— 明細格線(摘要碼 / 摘要代號 / 摘要 / 科目 / 客廠部 / 是否為成本)smems-step3.png— 列印頁(SmemsPrint)類別編號區間設定