跳轉到

程式資訊

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

系統參數

功能簡介

「系統參數」維護一種通用的「區間對應數值」參數表:每一張參數單以一組 單號 為主鍵,可掛一個 類別 與一段 生效期間(生效起始日~生效截止日),明細則逐列定義「從某個起始值到某個截止值,對應到哪些數值」。

它本身不是某張單據,而是給其他模組當作查表規則用的設定資料來源——把「分段、級距、區間判斷」這類隨時可能調整的設定值集中存放,避免寫死在程式裡。會用到這支的,是負責維護系統設定值的系統管理員或主管。

通用結構,用途由使用情境決定

本表單刻意設計成通用的區間查表結構(起始值~截止值 → 數值1/數值2),程式碼層面不限制 類別 的內容,也沒有內建任何分類清單。實際代表什麼級距、對應到哪個運算,由建立資料的人與引用此表的作業共同約定;本頁只描述「這張表能存什麼、各欄位是什麼」,不臆測特定業務用途。

前置需求

  • 權限:B.基礎資料 → 系統參數 的瀏覽權限。
  • 本表單為獨立設定主檔,建立時不依賴其他主檔,可直接新增。
  • 由於 類別 為自由輸入(free text,非下拉清單),建立前請先與引用此參數的作業約定好類別代碼與每欄的意義,避免日後查表對不上。
資料 影響的結果
引用此表的作業所約定的 類別 字串 對方依 類別 找到正確的參數單;類別打錯則查不到
生效起始日/生效截止日 對方依當前日期判斷該筆參數是否在有效期間內
明細的 起始值/截止值 區間 對方依輸入值落在哪個區間,取得對應的 數值1/數值2

操作步驟

本表單為標準的「主檔+明細」維護畫面,沿用系統共用工具列的 新增修改刪除查詢儲存 動作。

新增一張參數單

  1. 按工具列 新增
  2. 在上方主檔區輸入 單號(主鍵,必填,自行命名)。
  3. 視需要填 類別生效起始日生效截止日
  4. 在下方明細格線逐列填入區間與對應數值:
    1. 起始值截止值:數值型,定義這一段區間的下限與上限。
    2. 起始值c截止值c:文字型,當區間鍵不是數字(例如以代碼或字串比對)時改用這兩欄。
    3. 數值1數值2:落在此區間時要回傳/套用的數值。
  5. 儲存

數字區間與文字區間擇一使用

同一列裡,起始值/截止值(數字)與 起始值c/截止值c(文字)是兩套並存的區間欄位。依引用此表的作業是用數字比對還是字串比對,填對應的那一組即可,不必兩組都填。

查詢與修改

  1. 查詢,依條件帶出既有的參數單。
  2. 選定一張後按 修改,即可調整主檔欄位或增刪明細列。
  3. 改完按 儲存

刪除

  • 刪除整張參數單:選定後按工具列 刪除
  • 刪除單一明細列:在格線上移除該列即可,詳見欄位連動與附加功能的空白列自動刪除說明。

刪除前先確認沒有作業正在引用

本表單不會反查有哪些作業引用了這張參數單。刪除或縮短生效期間前,請自行確認沒有作業仍依賴它,以免對方查表落空。

欄位說明

主檔欄位

欄位 必填 說明/格式/預設
單號 主鍵,文字(上限 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 資料結構雖保留了 WorkflowCodeAuditorAuditDateIsApproved流程樣板號 等欄位,但畫面與 ViewModel 並未把它們接上任何操作,因此目前不具備簽核流程;這些欄位屬於底層資料表的共用結構,使用上可忽略。如未來要開放簽核或列印,需另行開發。

常見問題

明細列的標題怎麼是「LineNo_」「起始值c」這種看起來沒翻譯的字?

明細格線目前直接以欄位本名當標題,未套多語系。LineNo_ 是列號;起始值c/截止值cc 代表 character,是給文字型區間用的欄位,對照欄位說明即可理解,不影響資料正確性。

我多按了幾列空白明細沒填,會不會一起被存進去?

不會。儲存時系統會自動把「起始值截止值 都為 0、且 起始值c/截止值c 都空白」的列當成空列刪除,這些空列不會寫入資料庫。詳見欄位連動與附加功能

我建好了參數,引用它的作業卻查不到資料?

最常見原因有三個:一是 類別 字串與對方約定的不一致(本欄是自由輸入,大小寫與空白都要完全相同);二是當前日期不在 生效起始日~生效截止日 區間內;三是要查的值沒落在任何一列的 起始值~截止值(或文字版 起始值c~截止值c)區間裡。請逐項對照。

「類別」可以從下拉選嗎?有沒有預設清單?

沒有。類別 是自由輸入文字欄,程式不提供下拉清單,也不內建任何分類。請與引用此表的作業事先約定好類別代碼再輸入。

為什麼數值1/數值2 都是 0,存了也沒效果?

數值1/數值2 預設值就是 0,需要你依規則手動填入。若整列只剩 0 與空白,存檔時還會被當成空列刪掉(見上)。要保留一列,至少要填出一段有意義的區間與對應數值。

相關功能


需補截圖清單

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

  1. para-step1.png — 系統參數主畫面(主檔區+明細格線全貌)
  2. para-step2.png — 新增一張參數單、輸入單號與生效期間
  3. para-step3.png — 明細逐列填入起始值/截止值與數值1/數值2