跳轉到

程式資訊

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

預設條件值(TWORK 版)

功能簡介

「預設條件值(TWORK 版)」用來維護資料瀏覽器(各單據查詢視窗)在每個「條件類別」底下實際使用的條件式列表。每一列條件由「欄位 × 運算子 × 值1 / 值2 / 值3 / 物件1 / 物件2 / 遮罩1 / 遮罩2」組成,多列串接後就是使用者開啟瀏覽器時看到的預設查詢條件。

本表單與 TWORK 瀏覽條件設定(樣板) 是一對:

  • TWORKZCOND(樣板,A-100):定義每個「瀏覽類別 × 單據別 × 瀏覽辨識碼」有哪些可用欄位條件類別
  • TWORKZCOND1(本表單,A-110):在既有的條件類別上,逐列填寫實際的條件式

本表單主檔欄位全為唯讀(從樣板帶過來),實際可編輯的只有下方的條件式明細格線。屬於系統/MIS 設定範疇,由系統管理員維護,一般使用者不需直接操作。

TWORK 版與標準版

本系統的瀏覽條件設定有兩套並存:TWORK 版TWORKZCOND / TWORKZCOND1)與標準版ZCOND / ZCOND1)。本表單與標準版的 ZCOND1 共用完全相同的程式邏輯與資料結構(同一組來源檢視與儲存規則),差別只在主選單入口(程式別 TWORKZCOND1 對應系統層樣板 TWORKZCONDZCOND1 對應使用者層 ZCOND)。本頁說明 TWORK 版的明細編輯;標準版請參考 ZCOND1

前置需求

  • 權限:A.系統管理 → A-110 預設條件值(TWORK 版) 的瀏覽/新增/修改/刪除權限。
  • 必須先維護的主檔/參數
資料 影響什麼
TWORK 瀏覽條件設定樣板(TWORKZCOND) 的主檔 提供本表單的單據別 / 瀏覽辨識碼 / 條件類別;沒有先建樣板,本表單就沒有任何可選的條件類別
樣板中的欄位定義(欄位編號、欄位說明、語言版本) 明細「欄位說明」下拉的可選欄位清單;下拉只列出該樣板登錄的欄位
系統運算子表(LCLZcondOperator 明細「運算子說明」下拉的可選運算子清單(系統內建,一般不需維護)
多語系設定(LANGUAGE) 主檔「語言版本」與欄位說明的顯示文字;不同語言版本對應不同的欄位清單

操作步驟

本表單沒有「新增主檔」動作(主檔由樣板帶入),主要流程是找到要設定的條件類別 → 編輯條件式明細 → 儲存

  1. 開啟表單後,用工具列的上一筆/下一筆或查詢功能,移動到要設定的條件類別主檔。
    • 每移動到一筆主檔,系統會依該筆的單據別 + 瀏覽辨識碼 + 語言版本,重新載入下方明細可用的「欄位清單」與「運算子清單」(詳見欄位連動與附加功能)。
  2. 確認上方主檔資訊(編號 / 單據別 / 類別 / 顯示說明 / 瀏覽辨識碼 / 語言版本)是要設定的對象。這些欄位皆為唯讀。
  3. 在下方條件式格線編輯每一列條件:
    1. 序號:條件的順序編號。
    2. 欄位說明:從下拉選取要套用條件的欄位(實際存的是該欄位的欄位編號)。
    3. 運算子說明:從下拉選取比較運算子(實際存的是運算子編號)。
    4. 視運算子需要填寫 值1 / 值2 / 值3(區間或多值條件)。
    5. 視欄位需要填寫 物件1 / 物件2(關聯物件)與 遮罩1 / 遮罩2(輸入遮罩)。
  4. 要新增一列條件式,在格線最後一列輸入即可;要刪除一列,將該列的欄位編號清掉(會被視為待刪,見欄位連動與附加功能)。
  5. 按工具列的 儲存 寫回資料庫。

主檔由樣板帶入

主檔的單據別、瀏覽辨識碼、條件類別等資訊在 TWORKZCOND 樣板 維護後帶入本表單,於本頁為唯讀;本表單聚焦在條件式明細的填寫。實際可用的權限(新增 / 修改 / 刪除 / 瀏覽)由 權限設定 控管,與標準版 ZCOND1 一致。

欄位說明

主檔(皆唯讀)

欄位 必填 說明/格式/預設
編號 條件類別編號(最長 20)。唯讀,由樣板帶入。
單據別 此條件套用的單據/程式別(最長 60)。唯讀。
類別 條件類別名稱(最長 40)。唯讀。
顯示說明 由系統依「類別」翻譯出的顯示文字(DisplayDescription),唯讀。
瀏覽辨識碼 區分同一單據下不同瀏覽用途的代碼(單字元)。下拉來源為 B / D 兩種,唯讀顯示。
語言版本 此條件對應的語言版本(短整數)。唯讀,影響可用欄位清單。

明細:條件式

欄位 必填 說明/格式/預設
序號 條件列的順序編號(整數)。
欄位說明 ComboBox,顯示欄位說明、實際儲存欄位編號。下拉來源為該主檔對應的欄位清單。
運算子說明 ComboBox,顯示運算子說明、實際儲存運算子編號(最長 6)。
值1 條件主要值(最長 254)。是否必填視運算子而定。
值2 區間條件的結束值(最長 40)。
值3 延伸值(最長 999)。
物件1 關聯物件 1(最長 60)。
物件2 關聯物件 2(最長 60)。
遮罩1 輸入遮罩 1(最長 40)。
遮罩2 輸入遮罩 2(最長 40)。

欄位編號 / 運算子編號 與顯示文字的關係

格線中看到的是「欄位說明」「運算子說明」這些人看得懂的文字,但資料庫實際存的是對應的欄位編號運算子編號。選取下拉時系統會自動把編號與說明對起來(見下節)。

欄位連動與附加功能

這一節說明在本表單操作時,系統在背後幫你做的事。

移動主檔時:重新載入欄位 / 運算子清單

當你用工具列移動到另一筆主檔(條件類別)時,系統會(AfterMoverRecord):

  1. 依「類別」重新計算主檔的顯示說明SetDisplayDescription,透過多語系字典 ZCOND 翻譯)。
  2. 以該主檔的單據別瀏覽辨識碼為條件,重新組出此類別可用的:
    • 欄位清單ColumnNoList):明細「欄位說明」下拉的可選項目。清單會依該主檔的語言版本過濾(GetColumnSourcesByLanguage)——找不到對應語言時,退回顯示全部欄位。
    • 運算子清單SymbolNoList):明細「運算子說明」下拉的可選項目,來自系統運算子表。
  3. 把上述兩份清單逐列灌進每一筆明細,讓每列的下拉都能正確把「編號」對應到「說明」。

下拉是空的?

若「欄位說明」下拉沒有選項,通常代表該條件類別在 TWORKZCOND 樣板 還沒登錄任何欄位,或登錄的欄位語言版本與本筆主檔的語言版本不一致。請先回樣板補欄位。

選取「欄位說明」下拉時:自動帶出欄位編號與描述

明細的欄位下拉綁定在輔助屬性 欄位編號Binding 上。當你選一個欄位:

  • 系統把選到的欄位編號寫回該列,並從欄位清單字典查出對應的欄位說明填到內部的 ColumnDescription
  • 若選到的編號不在清單裡,描述會清空,提醒你這列的欄位設定不完整。

選取「運算子說明」下拉時:自動帶出運算子編號與描述

同理,運算子下拉綁定在 運算子編號Binding 上(觸發時機為 LostFocus):

  • 選取後把運算子編號寫回該列,並從運算子清單字典查出對應的運算子說明
  • 找不到對應編號時描述清空。

刪除一列條件式

明細列是否被視為「要刪除」,由 NeedDeleteFunction 判斷:當該列的欄位編號 ≤ 0(即未選任何欄位)時,這列會被當成待刪/空列處理,儲存時不會寫入。換言之,要移除一列條件式,把它的欄位清成未選即可。

主檔的刪除判斷

主檔層級的刪除條件是「編號為空白」。但因為主檔在本表單為唯讀、由樣板帶入,正常情況不會在此產生空白主檔。

條件式如何被瀏覽器使用(背景說明)

本表單填好的條件式,會在使用者開啟對應單據的資料瀏覽器時被讀出,作為預設查詢條件:系統依「條件類別編號」撈出所有條件列,逐列轉成查詢條件物件(欄位、運算子、起始值=值1、結束值=值2),不足 5 列時補足空白列。這部分由瀏覽器初始化邏輯(BrowseInitialzation)處理,不需在本表單操作,但有助於理解這裡每個欄位最終的用途。

此表單沒有列印 / 匯入匯出 / 簽核

本 ViewModel 僅實作了移動紀錄(IMoveRecord),沒有額外的 ExtensionFunction、報表(GetReports)、Excel 匯入匯出或工作流程簽核。工具列上的標準動作(查詢、儲存、刪除)即為全部功能。

常見問題

上方主檔欄位都不能改?

這是正常的。本表單主檔(編號 / 單據別 / 類別 / 顯示說明 / 瀏覽辨識碼 / 語言版本)全部為唯讀,資料由 TWORKZCOND 樣板 帶入。要調整這些主檔資訊,請回樣板表單維護;本表單只負責編輯下方的條件式明細。

「欄位說明」下拉沒有任何欄位可選?

下拉的欄位清單來自 TWORKZCOND 樣板 中、該「單據別 + 瀏覽辨識碼」登錄的欄位定義,並會依本筆主檔的語言版本過濾。若樣板尚未登錄欄位,或登錄欄位的語言版本與主檔不符,下拉就會是空的。請先回樣板補上欄位定義。

選了欄位、運算子,存檔後再開卻顯示空白?

資料庫存的是欄位編號 / 運算子編號,畫面顯示的是對應「說明」。若再次開啟時某列空白,多半是該編號已不在目前的欄位/運算子清單中(例如樣板的欄位被刪、或語言版本改變)。確認樣板與語言版本一致後,重新選取即可。

怎麼刪掉一列條件式?

把該列的欄位清成未選(欄位編號變為 0 或以下),這列就會被視為待刪/空列,儲存時不會寫入。不需要另外的刪除鍵。

TWORKZCOND1 和 ZCOND1 是同一個東西嗎?

幾乎是。兩者是不同的主選單程式TWORKZCOND1 屬 TWORK 版、ZCOND1 屬標準版),但共用完全相同的程式碼邏輯與資料結構——同一組來源檢視、同樣的明細編輯與儲存規則。差別只在套用對象:TWORKZCOND1 對應系統層樣板 TWORKZCONDZCOND1 對應使用者層 ZCOND。操作方式與權限項目(新增 / 修改 / 刪除 / 瀏覽)兩者一致,維護你實際使用的那一支即可。

相關功能


需補截圖清單

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

  1. tworkzcond1-step1.png — 表單全貌(上方唯讀主檔區 + 下方條件式格線)
  2. tworkzcond1-step2.png — 條件式明細格線(含「欄位說明」「運算子說明」下拉展開)
  3. tworkzcond1-step3.png — 移動主檔後欄位 / 運算子下拉清單隨之更新的示意