首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 字段顯示格式設定與自訂計算欄位實作指南

     編輯:Delphi

14.4.5 字段對象顯示格式的靈活設定

在 Delphi 資料庫應用開發中,字段對象的顯示格式既可在設計階段透過物件檢查器設定,也能在執行期以程式碼動態調整。這種彈性讓開發者能根據不同業務場景呈現最適合的資料外觀。

設計階段設定範例:百分比格式

以 TaxRate 欄位為例,若資料庫儲存的值為 0.085,將其 DisplayFormat 屬性設為 0.00%,資料網格便會自動顯示為 8.50%,無需額外轉換邏輯。

執行期動態格式化:電話號碼在地化

不同國家的電話號碼格式差異極大(如美式 808-555-0269、中式 (808) 5550269)。透過 OnGetText 事件,我們可攔截欄位輸出並重組格式:

procedure TForm1.Table1PhoneGetText(Sender: TField; Text: string; DisplayText: Boolean);
begin
  if DisplayText then
  begin
    Text := Table1Phone.Value;
    Delete(Text, 4, 1);    // 移除第 4 字元 '-'
    Delete(Text, 7, 1);    // 移除原第 7 字元 '-'
    Insert('(', Text, 1);  // 第 1 位插入 '('
    Insert(')', Text, 5);  // 第 5 位插入 ')'
  end;
end;

此技巧同樣適用於日期、貨幣、自訂編碼等多樣化格式需求。

14.4.6 自訂欄位與計算欄位的建立

實務上常需顯示資料表中不存在的衍生欄位(如「餘額 = 訂單總額 - 已付金額」),此時便需建立計算欄位。

步驟 1:在 Fields Editor 新增自訂欄位

  1. 雙擊 Table1 開啟 Fields Editor
  2. 右鍵選單選 New Field,類型選 CurrencyField,名稱輸入 Balance
  3. 確定後,再右鍵選 Add Fields,勾選需顯示的既有欄位(含新增的 Balance)

步驟 2:標記為計算欄位並撰寫運算邏輯

  1. 在 Object Inspector 將 Table1Balance.Calculated := True
  2. 於 Table1.OnCalcFields 事件撰寫:
procedure TForm1.Table1OnCalcFields(DataSet: TDataSet);
begin
  Table1Balance.Value := Table1ItemsTotal.Value - Table1AmountPaid.Value;
end;

執行時,Balance 會即時反映每筆記錄的最新餘額,且不佔用實體儲存空間。

14.5 資料庫記錄查詢策略

面對海量資料,高效查詢是核心需求。Paradox/dBASE 資料表僅支援關鍵欄位或輔助索引作為查詢依據。

兩大查詢方法比較

方法特點適用場景
GotoKey需先 SetKey 再指定值,回傳 Boolean 指示成敗精確比對、多欄位組合鍵
FindKey單行完成「設狀態+指定值+查詢」,參數為陣列簡單單鍵查詢、程式碼簡潔

兩者核心邏輯一致:在指定索引欄位中尋找目標值,找到則記錄指標定位該筆,否則維持原位。GotoNearest/FindNearest 則提供模糊最近比對,適合「輸入前綴自動補全」類介面。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved