程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> TClientDataSet[19]: 查找字段(fkLookup)

TClientDataSet[19]: 查找字段(fkLookup)

編輯:Delphi

 動態建立

  (其中的 School 字段是 Lookup 字段):

TClientDataSet[19]: 查找字段(fkLookup)

//先在窗體上放置: DBGrid1、DataSource1、ClientDataSet1、ClIEntDataSet2; 其他全用代碼實現:  
 
procedure TForm1.FormCreate(Sender: TObject); 
begin 
 { 關聯控件 } 
 DBGrid1.DataSource := DataSource1; 
 DataSource1.DataSet := ClIEntDataSet1; 
 
 { 把 ClIEntDataSet2 定義為一個 School 列表, 同時添加測試數據 } 
 with ClIEntDataSet2 do begin 
  FIEldDefs.Add('ID', ftInteger); 
  FIEldDefs.Add('Name', ftString, 20); 
  CreateDataSet; 
  AppendRecord([1, '哈佛大學']); 
  AppendRecord([2, '斯坦福大學']); 
  AppendRecord([3, '耶魯大學']); 
  AppendRecord([4, '加州理工學院']); 
  AppendRecord([5, '加州大學']); 
  AppendRecord([6, '劍橋大學']); 
  AppendRecord([7, '麻省理工學院']); 
  AppendRecord([8, '牛津大學']); 
  AppendRecord([9, '哥倫比亞大學']); 
  MergeChangeLog; 
  SaveToFile('C:\Temp\School.xml', dfXMLUTF8); { 保存下, 也給後面的例子用 } 
 end; 
 
 { 下面是定義 ClIEntDataSet1; 先添加兩個普通字段 } 
 with TStringFIEld.Create(Self) do 
 begin 
  FIEldName := 'Student';  { 用於顯示學生名稱 } 
  Size := 12; 
  DataSet := ClIEntDataSet1; 
 end; 
 with TIntegerFIEld.Create(Self) do 
 begin 
  FieldName := 'School_ID'; { 用於和 ClIEntDataSet2 的 ID 字段關聯 } 
  DataSet := ClIEntDataSet1; 
 end; 
 
 { 添加 Lookup 字段 } 
 { 通過 School_ID 和 ClientDataSet2.ID 的關聯, 從 ClIEntDataSet2 中查找 Name 字段的值 } 
 with TStringFIEld.Create(Self) do 
 begin 
  FIEldName := 'School'; 
  FieldKind := fkLookup;  { 上兩個字段會默認 FIEldKind := fkData } 
  DataSet := ClIEntDataSet1; 
  KeyFIElds := 'School_ID'; 
  LookupDataSet := ClIEntDataSet2; 
  LookupKeyFIElds := 'ID'; 
  LookupResultFIEld := 'Name'; 
 end; 
 ClIEntDataSet1.CreateDataSet; 
end; 

  設計時添加 Lookup 字段(其中 ClIEntDataSet2 使用了上面剛保存的 School.XML):

TClientDataSet[19]: 查找字段(fkLookup)

  查看原圖(大圖)


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved