在ClientDataSet中,Add All Fields后使用New Field新建一个字段(name)与另一个ClientDataSet进行LookUp关联。现在我要使用该New Field进行排序,
ClientDataSet.AddIndex('IndexField',s,[],'');  // s 为New Field的名称-name报错:Field'name' not found.怎么才能实现Index呢???先行谢过了!!

解决方案 »

  1.   

    procedure TForm1.QuickIndexClick(Sender: TObject);
    begin
      if Edit1.Text <> '' and 
         ClientDataSet1.Fields.FindField(Edit1.Text) then
      begin
        ClientDataSet1.AddIndex(Edit1.Text + 'Index', Edit1.Text, [ixCaseInsensitive],'','',0);
        ClientDataSet1.IndexName := Edit1.Text + 'Index';
      end;
    end;
      

  2.   

    感谢jiezhi(西域浪子) 的回答,
    但是你那样是判断field是否属于clientdataset的字段,只能对属于的字段进行排序呀,
    可我想对其New field添加Index进行排序,该怎么办了?难道就没有办法可解决吗!?
      

  3.   

    if Edit1.Text <> '' and 
         ClientDataSet1.Fields.addFields(Edit1.Text) then
      begin
        ClientDataSet1.AddIndex(Edit1.Text + 'Index', Edit1.Text, [ixCaseInsensitive],'','',0);
        ClientDataSet1.IndexName := Edit1.Text + 'Index';