跳轉到

程式資訊

  • 程式 IDZCOND
  • 所屬子系統:A.系統資料
  • 狀態:stable

自訂條件別(瀏覽條件樣板)

功能簡介

「自訂條件別」用來維護 ERP 資料瀏覽器/查詢視窗所使用的條件樣板。系統各模組在做「資料瀏覽」「查詢」時,會把某支程式(單據別)底下登錄的欄位清單,組成查詢條件面板與樞紐分析(pivot)清單。本表單就是這份設定的維護入口:每一筆主檔代表一組「瀏覽類別 × 程式別 × 瀏覽辨識碼 × 語言版本」的條件樣板,往下掛三層明細——預設項目、查詢欄位定義、pivot 清單。

這支屬於系統管理者/導入顧問在設定階段使用的工具,調整後會即時反映到所有走資料瀏覽器的功能。

ZCOND 與 TWORKZCOND 的關係

本系統同時存在 ZCOND(本頁)TWORKZCOND 兩支程式,選單代碼同為 A-100、操作畫面與欄位完全相同、共用同一組資料表與 Source。差異只在程式內部綁定不同的 ProgramClass:ZCOND 為沿用舊版(DARB)的版本,TWORKZCOND 為新 TWORK 平台版本。實務上請依貴公司導入時採用的版本擇一維護,兩者的操作方式與欄位連動完全一致,詳見 自訂條件別(TWORK 版)

前置需求

  • 權限:A.系統管理 → A-100 自訂條件別 的新增/修改/刪除/查詢權限。權限本身由 程式權限設定 維護。
  • 基礎資料:本表單填的欄位來源是資料庫的實體資料表或預存程序,因此設定前需先確認:
資料 影響的結果
目標查詢用的資料表 / 檢視表(View) 右側 GetField 取欄位清單的來源;填資料表名稱時讀取
目標查詢用的預存程序(SP) 預存程序GetField 改由 SP 結果集取欄位
語言對照(多語系) 明細的顯示名稱會依語言版本翻譯顯示
程式別(單據別)對應的程式 主檔單據別須對應真實程式,瀏覽器才會套用此樣板

與 ZCOND1 的搭配

本表單登錄的「預設項目(category 明細)」會被 預設條件值(ZCOND1) 接手,用來逐項設定條件的預設值與運算子。先在本表單把欄位/類別建好,再到 ZCOND1 設定預設值。

操作步驟

畫面分為四個區塊:左上為主檔、左中為預設項目明細、右上為欄位取得區(ColumnSetting)、中段為欄位定義明細、最下為 pivot 清單明細。

畫面四區塊

新增一組條件樣板

  1. 按工具列 新增,左中/中段/pivot 三個明細會被清空(由 AfterAddNew 處理)。
  2. 在主檔輸入:
    • 瀏覽類別(主鍵,必填,最長 5 碼)。
    • 單據別(必填):對應要套用此樣板的程式。
    • 瀏覽辨識碼:下拉只有 BD 兩個值,預設帶 B
    • 語言版本:以語言下拉控件選擇。
  3. 維護預設項目明細:直接在左中格線輸入 預設編號預設說明(類別);「顯示名稱」欄唯讀,是依語言版本翻譯後的結果。
  4. 用右上欄位取得區挑欄位填入「欄位定義」明細(見欄位連動與附加功能)。
  5. 視需要在最下方 pivot 清單明細登錄樞紐報表(編號、語言版本、名稱、檔名)。
  6. 儲存。儲存時系統會檢核瀏覽類別單據別皆不可空白,並回寫各明細的單據別/瀏覽辨識碼/語言版本(見下節)。

修改 / 刪除

  1. 用工具列查詢/換頁(IMoveRecord)切換到要維護的樣板。換頁後系統會重新計算各明細的顯示名稱AfterMoverRecord)。
  2. 直接在格線改值即可;要刪某筆明細,把判定鍵欄位清空——預設項目清預設編號、欄位定義清欄位、pivot 清編號——存檔時該列會被標記刪除。
  3. 儲存

存檔後條件面板才會更新

存檔後系統會重新載入「自訂條件欄位」暫存表(AfterEndEdit 呼叫 RegetTempTable),資料瀏覽器才會吃到最新的欄位設定。若改完沒存檔,瀏覽器仍沿用舊條件。

欄位說明

主檔

欄位 必填 說明 / 格式 / 預設
瀏覽類別 主鍵,最長 5 碼;一組樣板的識別
單據別 套用此樣板的程式別;存檔強制檢核非空白
瀏覽辨識碼 下拉只有 B / D新增時預設 B
語言版本 語言下拉(TsCobLanguage

預設項目明細(category)

欄位 必填 說明
預設編號 明細鍵;清空=刪除該列
預設說明(類別) 此預設項目的說明文字
顯示名稱 唯讀 依語言版本翻譯後顯示(DisplayDescription

欄位定義明細(field)

欄位 必填 說明
欄位編號 存檔時系統會依列序自動重編(1、2、3…)
欄位 實體欄位名;清空=刪除該列
欄位說明 GetField 帶入時自動以駝峰加空白產生,可改
顯示名稱 唯讀 依單據別+欄位說明翻譯顯示
條件式 查詢條件運算式
函數 套用的函數
物件 下拉:空白 / Search / Date,決定該欄在條件面板用哪種輸入控件
遮罩 輸入遮罩
欄位type 欄位型別代碼(單一字元)

pivot 清單明細

欄位 必填 說明
編號 明細鍵;清空=刪除該列
語言版本 下拉(語言清單)
名稱 pivot 報表名稱
檔名 pivot 範本檔名
單據別 唯讀 新增列時自動帶主檔的瀏覽類別(OnDetailItemCreated
瀏覽辨識碼 唯讀 存檔時自動帶主檔的瀏覽辨識碼

欄位連動與附加功能

這一節整理「輸入某欄位 / 按某按鈕後系統會做什麼」,全部來自實際程式碼。

右上欄位取得區(ColumnSetting)

這是本表單最關鍵的輔助工具,用來快速把資料表 / SP 的欄位填進「欄位定義」明細:

  1. 填資料表名稱後按 GetField → 系統以系統檢視表查該資料表的欄位清單,把欄位名載入左側候選清單(GetField,底層走 DARB_GETDATA4dbo.syscolumns)。
  2. 填預存程序後按 GetField(資料表名稱留空時)→ 系統以 1=0 條件呼叫該 SP,只取回它的結果集欄位結構當候選清單(GetFieldByProcedure)。
  3. 候選欄位顯示在 TwoListBox 左側,把要用的欄位挑到右側
  4. TwoListBox 的確定(BtnOKCommand)→ 系統把右側每個欄位逐一加進「欄位定義」明細:欄位=欄位名、欄位說明=欄位名自動「在大寫前加空白」轉成可讀字串、欄位編號=由 1 起遞增。

資料表名稱優先於預存程序

GetField 會先看資料表名稱有沒有填;有填就走資料表那條路,沒填才看預存程序。兩個都填時,預存程序會被忽略。

存檔時的自動回寫(HandleDataBeforeEndEdit)

按儲存時,系統在實際寫入前會自動整理三層明細:

  • 欄位定義:跳過「欄位」空白的列(標記刪除);其餘列依序重編欄位編號(1、2、3…),並把主檔的語言版本 / 單據別 / 瀏覽辨識碼回寫到每列。
  • 預設項目:「編號」空白的列標記刪除;其餘列回寫主檔的語言版本 / 單據別 / 瀏覽辨識碼。
  • pivot 清單:「編號」空白的列標記刪除;其餘列回寫主檔的單據別 / 瀏覽辨識碼。

存檔檢核(AllowSave)

當你按儲存時,系統會檢查主檔:

  • 瀏覽類別空白 → 擋存並提示先輸入瀏覽類別。
  • 單據別空白 → 擋存並提示先輸入單據別。

兩欄都不可空白,缺任一都無法存檔。

新增 pivot 列時自動帶值(OnDetailItemCreated)

在 pivot 清單明細新增一列時,系統會把主檔目前的瀏覽類別自動填到該列的單據別欄位,省去手動輸入。

換頁 / 載入時重算顯示名稱(AfterMoverRecord)

切換到另一筆主檔時,系統會對「預設項目」與「欄位定義」兩個明細逐列重算顯示名稱SetDisplayDescription)——預設項目以 ZCOND 語系翻譯「類別」、欄位定義以「單據別」語系翻譯「欄位說明」。所以同一份設定在不同語言版本下,顯示名稱會跟著變。

存檔後刷新條件面板(AfterEndEdit)

存檔成功後,系統重新載入「自訂條件欄位」暫存表(RegetTempTable)。資料瀏覽器(BrowseInitialzation)載入查詢條件時就是讀這份暫存表,因此本表單一存檔,相關功能的查詢條件面板即更新。

常見問題

GetField 沒有跑出任何欄位?

請確認資料表名稱預存程序至少填了一個、名稱拼字正確且該物件存在於資料庫。系統會優先採用資料表名稱;若你想用 SP 取欄位,請把資料表名稱欄位清空。

改完欄位,資料瀏覽器的查詢條件沒變?

必須按儲存。存檔時系統才會重新載入「自訂條件欄位」暫存表,瀏覽器才會吃到新設定。只改格線沒存檔不會生效。

存檔被擋,說要先輸入瀏覽類別 / 單據別?

主檔的瀏覽類別單據別是必填,兩者皆不可空白才能存檔。

明細想刪一列,怎麼刪?

把該列的判定鍵欄位清空即可——預設項目清預設編號、欄位定義清欄位、pivot 清編號。存檔時系統會把這些空白列標記為刪除。

ZCOND 和 TWORKZCOND 都是 A-100,我該用哪一支?

兩支畫面、欄位、資料表完全相同,差別只在內部對應不同 ProgramClass(ZCOND 為舊 DARB 版、TWORKZCOND 為新 TWORK 版)。請依貴公司導入時採用的版本維護其中一支即可,詳見 自訂條件別(TWORK 版)

顯示名稱欄是空白或英文?

顯示名稱是依語言版本+翻譯對照即時產生的唯讀欄。若對照表沒有該語系的翻譯,會退回原文顯示。換頁後系統會自動重算,無法手動編輯。

相關功能


需補截圖清單

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

  1. zcond-step1.png — 表單四區塊全貌(主檔+三明細+欄位取得區)