程式資訊
- 程式 ID:
PARA - 所屬子系統:B.基本資料
- 狀態:stable
系統參數¶
功能簡介¶
「系統參數」維護一種通用的「區間對應數值」參數表:每一張參數單以一組 單號 為主鍵,可掛一個 類別 與一段 生效期間(生效起始日~生效截止日),明細則逐列定義「從某個起始值到某個截止值,對應到哪些數值」。
它本身不是某張單據,而是給其他模組當作查表規則用的設定資料來源——把「分段、級距、區間判斷」這類隨時可能調整的設定值集中存放,避免寫死在程式裡。會用到這支的,是負責維護系統設定值的系統管理員或主管。
通用結構,用途由使用情境決定
本表單刻意設計成通用的區間查表結構(起始值~截止值 → 數值1/數值2),程式碼層面不限制 類別 的內容,也沒有內建任何分類清單。實際代表什麼級距、對應到哪個運算,由建立資料的人與引用此表的作業共同約定;本頁只描述「這張表能存什麼、各欄位是什麼」,不臆測特定業務用途。
前置需求¶
- 權限:B.基礎資料 →
系統參數的瀏覽權限。 - 本表單為獨立設定主檔,建立時不依賴其他主檔,可直接新增。
- 由於 類別 為自由輸入(free text,非下拉清單),建立前請先與引用此參數的作業約定好類別代碼與每欄的意義,避免日後查表對不上。
| 資料 | 影響的結果 |
|---|---|
| 引用此表的作業所約定的 類別 字串 | 對方依 類別 找到正確的參數單;類別打錯則查不到 |
| 生效起始日/生效截止日 | 對方依當前日期判斷該筆參數是否在有效期間內 |
| 明細的 起始值/截止值 區間 | 對方依輸入值落在哪個區間,取得對應的 數值1/數值2 |
操作步驟¶
本表單為標準的「主檔+明細」維護畫面,沿用系統共用工具列的 新增、修改、刪除、查詢、儲存 動作。
新增一張參數單¶
- 按工具列
新增。 - 在上方主檔區輸入 單號(主鍵,必填,自行命名)。
- 視需要填 類別、生效起始日、生效截止日。
- 在下方明細格線逐列填入區間與對應數值:
- 起始值、截止值:數值型,定義這一段區間的下限與上限。
- 起始值c、截止值c:文字型,當區間鍵不是數字(例如以代碼或字串比對)時改用這兩欄。
- 數值1、數值2:落在此區間時要回傳/套用的數值。
- 按
儲存。
數字區間與文字區間擇一使用
同一列裡,起始值/截止值(數字)與 起始值c/截止值c(文字)是兩套並存的區間欄位。依引用此表的作業是用數字比對還是字串比對,填對應的那一組即可,不必兩組都填。
查詢與修改¶
- 按
查詢,依條件帶出既有的參數單。 - 選定一張後按
修改,即可調整主檔欄位或增刪明細列。 - 改完按
儲存。
刪除¶
- 刪除整張參數單:選定後按工具列
刪除。 - 刪除單一明細列:在格線上移除該列即可,詳見欄位連動與附加功能的空白列自動刪除說明。
刪除前先確認沒有作業正在引用
本表單不會反查有哪些作業引用了這張參數單。刪除或縮短生效期間前,請自行確認沒有作業仍依賴它,以免對方查表落空。
欄位說明¶
主檔欄位¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| 單號 | ✔ | 主鍵,文字(上限 20 字),自行命名;建立後即為這張參數單的識別 |
| CreatedDate | — | 系統產生欄位,畫面上唯讀,使用者不需也無法手動輸入 |
| 類別 | — | 自由輸入文字(上限 30 字),預設空字串;非下拉清單,內容由使用者與引用作業約定 |
| 生效起始日 | — | 文字日期,預設空字串 |
| 生效截止日 | — | 文字日期,預設空字串 |
明細欄位¶
| 欄位 | 必填 | 說明/格式/預設 |
|---|---|---|
| LineNo_ | — | 列號,文字(上限 6 字);格線標題以原始欄名顯示 |
| 起始值 | — | 數值(18,4),區間下限,預設 0 |
| 截止值 | — | 數值(18,4),區間上限,預設 0 |
| 起始值c | — | 文字(上限 20 字),文字型區間下限,預設空字串 |
| 截止值c | — | 文字(上限 20 字),文字型區間上限,預設空字串 |
| 數值1 | — | 數值(18,4),對應輸出值,預設 0;格線以數值欄呈現 |
| 數值2 | — | 底層為數值(18,4),預設 0;格線該欄目前以一般文字欄呈現(非數值欄),輸入時不套用數值欄格式 |
明細欄位標題以原始欄名顯示
明細格線各欄標題目前直接顯示欄位本名(如 LineNo_、起始值c),未套用多語系翻譯。LineNo_=列號,起始值c/截止值c 的字尾 c 代表 character(文字型區間),對照本節說明使用即可。
數值1 與數值2 的格線欄型不同
底層資料兩者皆為數值(18,4),但格線設定上 數值1 是數值欄、數值2 是一般文字欄。實際存入資料庫仍為數值,僅編輯時的欄位行為略有差異。
欄位連動與附加功能¶
本表單是一支單純的設定主檔維護程式,沒有複雜的欄位重算或跨表單彈窗。實際存在的連動與附加行為如下:
-
單號為主鍵,決定一張參數單:在主檔區輸入的 單號 即這張參數單的識別。系統不替 單號 自動編號,由你自行命名;同一個 單號 視為同一張單,重覆使用會帶出既有資料。
-
CreatedDate 由系統維護、畫面唯讀:CreatedDate 欄位在畫面上設為唯讀,使用者無法輸入,由系統於建立時帶值,僅供檢視。
-
空白明細列存檔時自動清除:當一筆明細列的 起始值 與 截止值 同時為 0、且 起始值c 與 截止值c 同時為空白時,系統視該列為空列,儲存時會自動把它刪掉、不寫進資料庫。換句話說,你不需要手動清理多按出來的空白列——只要不填任何區間值,它存檔時就會消失。
-
數字區間與文字區間兩套並存:每一列同時提供數值型(起始值/截止值)與文字型(起始值c/截止值c)兩組區間欄位。系統不強制只能填一組,也不會在兩組之間互相換算或檢核;要用哪一組由引用此表的作業決定。
-
明細列號(LineNo_):明細以 LineNo_ 區分各列。儲存後此值用於辨識列的順序與身分。
此版本未提供列印、簽核與匯入匯出
程式碼層面,本表單未掛任何報表來源、未啟用簽核/工作流程介面、也未提供 Excel 匯入匯出按鈕。Source 資料結構雖保留了 WorkflowCode、Auditor、AuditDate、IsApproved、流程樣板號 等欄位,但畫面與 ViewModel 並未把它們接上任何操作,因此目前不具備簽核流程;這些欄位屬於底層資料表的共用結構,使用上可忽略。如未來要開放簽核或列印,需另行開發。
常見問題¶
明細列的標題怎麼是「LineNo_」「起始值c」這種看起來沒翻譯的字?
明細格線目前直接以欄位本名當標題,未套多語系。LineNo_ 是列號;起始值c/截止值c 的 c 代表 character,是給文字型區間用的欄位,對照欄位說明即可理解,不影響資料正確性。
我多按了幾列空白明細沒填,會不會一起被存進去?
不會。儲存時系統會自動把「起始值 與 截止值 都為 0、且 起始值c/截止值c 都空白」的列當成空列刪除,這些空列不會寫入資料庫。詳見欄位連動與附加功能。
我建好了參數,引用它的作業卻查不到資料?
最常見原因有三個:一是 類別 字串與對方約定的不一致(本欄是自由輸入,大小寫與空白都要完全相同);二是當前日期不在 生效起始日~生效截止日 區間內;三是要查的值沒落在任何一列的 起始值~截止值(或文字版 起始值c~截止值c)區間裡。請逐項對照。
「類別」可以從下拉選嗎?有沒有預設清單?
沒有。類別 是自由輸入文字欄,程式不提供下拉清單,也不內建任何分類。請與引用此表的作業事先約定好類別代碼再輸入。
為什麼數值1/數值2 都是 0,存了也沒效果?
數值1/數值2 預設值就是 0,需要你依規則手動填入。若整列只剩 0 與空白,存檔時還會被當成空列刪掉(見上)。要保留一列,至少要填出一段有意義的區間與對應數值。
相關功能¶
需補截圖清單
以下截圖待功能 runtime 驗收後補拍(放 docs/B-BasicData/images/):
para-step1.png— 系統參數主畫面(主檔區+明細格線全貌)para-step2.png— 新增一張參數單、輸入單號與生效期間para-step3.png— 明細逐列填入起始值/截止值與數值1/數值2