跳轉到

程式資訊

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

摘要檔

功能簡介

「摘要檔」(SMEMS)是 TsERP 的通用簡碼/摘要碼字典,採「類別(Master)+摘要明細(Detail)」兩層結構:一筆 Master 代表一個類別(例如某張單據要用的某組下拉選項),其下的 Detail 逐筆登錄該類別可選用的摘要碼摘要文字

系統內大量單據的下拉選單、分類欄位都不是各自寫死的,而是回頭讀本檔的某個類別。最典型的是群組分類設定(Grpm)——它的「分類1~分類6」欄位全部以超連結指向本檔(NavigateProgramClass="SMEMS"),其下拉內容即取自對應 CMB_* 類別的摘要明細。因此會計、業務、生管、採購主檔人員都可能維護到這裡:要新增一個分類選項、調整摘要文字,或讓某個摘要碼對應到固定的科目/客廠部,都在此完成。

在流程中的位置

本檔屬於前置基礎資料,不產生交易單據,但其他單據的下拉、分類欄位仰賴它。先把類別與摘要建好,後續單據才能正確選到對應選項。

前置需求

  • 權限:B.基礎資料 → B-070 摘要檔 的瀏覽權限;列印需另有列印權限。
  • 基礎資料:摘要明細可選擇對應到科目或客廠部,下列主檔會影響明細的描述欄位是否能帶出名稱——
資料 影響什麼
部門資料(Dept) Master 的 部門代號(透過 DeptSearch 控件挑選)
會計科目主檔 明細的 科目代號 對應,科目名稱 由系統依代號帶出(唯讀)
客戶/廠商/部門主檔 明細的 客廠部代號 對應,客廠部簡稱 由系統帶出(唯讀)

操作步驟

本表單為標準「主檔+明細」維護畫面,工具列提供 新增修改刪除查詢列印

新增一個類別

  1. 按工具列 新增
  2. 在上半部主檔區輸入:
    • 類別編號(主鍵,必填):本類別的代碼。供其他單據以此代碼回頭引用。
    • 類別:類別的中文名稱/說明。
    • 摘要長度起始摘要碼截止摘要碼:本類別摘要碼的長度與允許範圍(預設皆為 0)。
    • 備註部門代號(用 DeptSearch 挑選,可空白)。
  3. 在下半部明細格線逐列輸入摘要明細:
    • 摘要碼(數值)、摘要代號摘要(實際顯示文字)。
    • 視需要填 科目代號客廠部代號,並勾選 是否為成本
    • 敘述 欄為多行文字,格線中以自動換行顯示,編輯時可按 Enter 換行。
  4. 按工具列 儲存。儲存前系統會自動把每一列明細的 類別編號 同步成主檔的類別編號(見欄位連動與附加功能)。

修改 / 刪除

  1. 查詢 找到要維護的類別。
  2. 修改 後即可調整主檔欄位或增刪明細列。
  3. 刪除整列明細:在明細格線選取該列後刪除即可。空白未填的明細列(摘要碼≤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",按下時會以該分類目前的鍵值(Tier1Tier6)超連結跳到本摘要檔對應類別。也就是說,Grpm 那些下拉選項的「字典來源」就是本檔。

  • 被各單據下拉以類別前綴讀取GrpmComboBoxBll 會呼叫 SP DARB_BD_SMEMS,以 類別編號 LIKE '<類別>%' 為條件取出該類別的所有 摘要 作為下拉內容(見 CategoryTierComboBoxViewModel);下拉清單會快取於 Grpm 快取中。系統內超過五十支單據(業務訂單、出貨、採購、ARAP、發票、品檢等)透過 TsComboBoxWithDescriptionBySql 等控件共用這套機制,因此在此調整摘要文字,會即時反映到那些單據的下拉選項

  • 列印參數預帶:開啟列印頁時,GetPrintViewModel 會把目前主檔第一筆的 類別編號 同時填入列印頁的「起始」與「截止」,預設只印目前這一類別,可再自行擴大區間。

尚未提供的欄位

主檔 XAML 中保留了 CompanyCodeTsCompanyInfo(公司別)相關欄位,但目前整段以註解封存、畫面不顯示,公司代碼固定預設為 1。多公司別維護屬規劃保留、尚未開放操作。

常見問題

明細的「科目名稱」或「客廠部簡稱」一直空白?

這兩欄是唯讀描述欄,由系統依你填的 科目代號 / 客廠部代號 帶出對應名稱,不能直接打字。若空白,請確認:(1) 對應的會計科目 / 客廠部主檔確實存在該代號;(2) 代號有無打錯。新增當下尚未存檔時,名稱欄預設就是空字串,帶出名稱後才會顯示。

明細不用填「類別編號」嗎?多出來的空白列要不要刪?

不用。儲存時系統會自動把每一列明細的 類別編號 同步成主檔的類別編號;而完全空白的明細列(摘要碼≤0 且摘要代號、摘要皆空白)會自動被視為無效列、儲存時略過,可以不必手動刪除。

在某張單據的下拉看不到我剛加的摘要選項?

那些下拉以 類別編號 LIKE '<類別>%' 讀取本檔,請確認:(1) 新增的明細是掛在正確的類別編號底下;(2) 摘要 欄(顯示文字)有填;(3) 已按 儲存。下拉內容可能有快取,必要時重開該單據畫面再試。

找不到 Grpm 分類1~6 的選項來源在哪維護?

來源就是本檔。Grpm 的分類欄位以 NavigateProgramClass="SMEMS" 連到摘要檔對應類別(CMB_*),在這裡新增 / 修改該類別下的摘要明細即可。

「摘要長度/起始摘要碼/截止摘要碼」會自動檢核明細的摘要碼嗎?

這三個欄位用於描述本類別摘要碼的長度與允許範圍。目前程式未對明細的摘要碼做自動長度/範圍強制檢核,請維護時自行確認明細摘要碼落在所設範圍內。

相關功能


需補截圖清單

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

  1. smems-step1.png — 主檔區(類別編號 / 類別 / 摘要長度 / 起訖摘要碼 / 部門代號)全貌
  2. smems-step2.png — 明細格線(摘要碼 / 摘要代號 / 摘要 / 科目 / 客廠部 / 是否為成本)
  3. smems-step3.png — 列印頁(SmemsPrint)類別編號區間設定