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

Delphi 3 查找字段實戰:DBLookupComboBox 與 DBGrid 兩種模式完解

     編輯:Delphi

關係型資料庫設計遵循正規化原則,主表(如職工表)僅存外鍵(單位編號),詳細資料放在從表(單位表)。但使用者習慣直接選「單位名稱」而非背編號。Delphi 3 提供查找字段機制,單記錄編輯用 TDBLookupComboBox,多記錄網格編輯用 DBGrid Lookup Field,兩種模式各有適用場景。

一、單記錄編輯:TDBLookupComboBox

此控件同時連結兩個資料源:

  • DataSource / DataField:主表(職工表)與外鍵欄位(DWBH)
  • ListSource / KeyField / ListField:從表(單位表)、主鍵(DWBH)、顯示欄位(DWMC)

屬性設定範例

DataField    = DWBH          // 職工表的單位編號
DataSource   = DataSource1   // 職工表資料源
KeyField     = DWBH          // 單位表的單位編號
ListSource   = DataSource2   // 單位表資料源
ListField    = DWMC          // 顯示單位名稱

運行時點擊下拉箭頭,即可從單位名稱清單選擇,自動寫入對應編號至職工表。

二、多記錄網格編輯:DBGrid Lookup Field

DBGrid 需在主表 Table1 動態新增一個 Lookup 字段,步驟稍繁但功能更強:

實作步驟

  1. 雙擊 Table1,Add Fields 全選,修改 DisplayLabel,設 Table1DWBH.Visible = False 隱藏編號。
  2. 在 Fields 編輯器右鍵選「New Field」,建立 Lookup 字段 Table1DWMC,屬性:
    • FieldKind = fkLookup
    • KeyFields = DWBH
    • LookupDataSet = Table2
    • LookupKeyFields = DWBH
    • LookupResultField = DWMC
  3. 設 Table1DWMC.DisplayLabel = '單位名稱'
  4. 啟用 Table1、Table2,運行 DBGrid 即可在「單位名稱」欄直接下拉選擇,且不可輸入清單外值。

三、兩種模式選擇指南

場景推薦控件理由
單筆表單編輯(Master/Detail)TDBLookupComboBox輕量、直觀、適合 Detail 區塊
試算表式批量編輯、瀏覽大量記錄DBGrid Lookup Field支援排序、過濾、多欄同時編輯
需顯示多欄資訊(如編號+名稱+電話)DBGrid + Lookup Field可設 ListField 為多欄組合

查找字段是 Delphi 資料庫開發的經典神技,善用它能讓介面既符合正規化設計,又貼近使用者直覺操作習慣。

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