TClientDataSet[24]: 主从表(Master/Detail)


测试使用了官方的范例文件(主表: orders.xml; 从表: items.xml).



//先在窗体上添加: 
//ClientDataSet1、DataSource1、DBGrid1、ClientDataSet2、DataSource2、DBGrid2; 然后:

procedure TForm1.FormCreate(Sender: TObject);
begin
  { 关联数据集 }
  DBGrid1.DataSource := DataSource1;
  DataSource1.DataSet := ClientDataSet1;

  DBGrid2.DataSource := DataSource2;
  DataSource2.DataSet := ClientDataSet2;

  { 载入范例文件 }
  ChDir(GetEnvironmentVariable('COMMONPROGRAMFILES') + '\CodeGear Shared\Data\');
  ClientDataSet1.LoadFromFile('orders.xml');
  ClientDataSet2.LoadFromFile('items.xml');

  { 设定主从表 }
  ClientDataSet2.MasterSource := DataSource1;
  ClientDataSet2.MasterFields := 'OrderNo'; { 多个字段时用分号隔开 }
end;


如果在设计时完成, 也主要是设置 MasterSource、MasterFields 两个属性, 下面是设计时的一个截图:



原文地址:https://www.cnblogs.com/del/p/1665190.html