可以用filter多个字段的排序吗?

解决方案 »

  1.   

    用sort排序
    adoquery1.sort:=' 字段 desc'
      

  2.   

    ADOQuery1.Sort := 'LastName ASC, DateDue DESC'
      

  3.   

    我是用TClientDataSet保存的临时数据,没有数据库支持,TClientDataSet好象没有sort属性
      

  4.   

    TClientDataSet可以通过索引排序
      

  5.   

    Filter是过滤用的如:
      ADOTable1.Filtered:=False;
      ADOTable1.Filter:='KC=''Delphi'' and LB=''1''';
      ADOTable1.Filtered:=True;
    排序应该用sort吧?如:
    ADOTable1.Sort:='LB ASC,KC ASC,TM DESC,BH DESC';
      

  6.   

    再罗嗦一句:ASC是升序,DESC是降序; 呵呵……
      

  7.   

    var
      myDataSet:TClientDataSet; procedure TForm1.Button1Click(Sender: TObject);
    begin
      myDataSet := TClientDataSet.Create(application);
      myDataSet.FieldDefs.Add('name',ftstring,10);
      myDataSet.FieldDefs.add('age',ftinteger);
      //定義索引
      myDataSet.IndexDefs.Add('ind','name;age',[ixDescending,ixCaseInsensitive]);
      myDataSet.IndexDefs[0].DescFields := 'age';  //降序
      myDataSet.IndexDefs[0].CaseInsFields := 'name'; //升序
      //建立
      myDataSet.CreateDataSet;
      //myDataSet.IndexName := 'ind';
      myDataSet.Active;
      myDataSet.AppendRecord(['bb張三',10]);
      myDataSet.AppendRecord(['bb張三',1]);
      myDataSet.AppendRecord(['aa李四',40]);
      myDataSet.AppendRecord(['aa李四',100]);  DataSource1.DataSet := myDataSet;    //再接TDBGrid控件、直接可看
      DBGrid1.DataSource := DataSource1;
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      myDataSet.IndexName := 'ind';
    end;(注:按「Button1」建立一個ClientDataSet、按「Button2」排序。
       你也可以用手动的方法参考上述設定)