不过先要回答我的一个问题,在dELPHI三层结构中,使用客户端主从表,如何让从表按照非外健字段进行排序?回答巧妙者,给800分

解决方案 »

  1.   

    首先恭喜楼主!不知下面的方法可以否。
    利用clientdataset新建一个字段,类型为fkInternalCalc,这个字段本身就是排序的
      

  2.   

    楼主真幽黑~~
    用SQL语句实现自定义排序应该更灵活。
      

  3.   

    procedure Tmoduleform.DBGrid1TitleClick(Column: TColumn);
    begin
      if clientdataset1.IsEmpty then
         exit;
      clientdataset1.DisableControls;
      if indexname='降序' then  //按升序排列
         begin
           if clientdataset1.IndexName='Indexname' then
              clientdataset1.DeleteIndex('Indexname');
           clientdataset1.AddIndex('Indexname',column.FieldName,[],column.FieldName,'',0);
           ClientDataSet1.IndexName:='Indexname';
           indexname:='升序';
         end
      else   //按降序排列
         begin
           if clientdataset1.IndexName='Indexname' then
              clientdataset1.DeleteIndex('Indexname');
           clientdataset1.AddIndex('Indexname',column.FieldName,[],'','',0);
           ClientDataSet1.IndexName:='Indexname';
           indexname:='降序';
         end;
      clientdataset1.EnableControls;
      isenabled;
      showstate;
    end;
      

  4.   

    Look at the Help: IndexFields or IndexName property of TClientDataset
      

  5.   

    Delphi Object and Component Reference
    IndexName property (TCustomClientDataSet)Identifies an index for the client dataset.Delphi syntax:property IndexName: string;C++ syntax:__property AnsiString IndexName = {read=GetIndexName, write=SetIndexName};DescriptionUse IndexName to specify an alternative index for a client dataset. If IndexName is empty, the dataset抯 sort order is based on the IndexFieldNames property or on its default ordering in the data packet. Default ordering is determined by the predefined index, DEFAULT_ORDER.If IndexName contains a valid index name, then that index is used to determine sort order of records.Note: IndexFieldNames and IndexName are mutually exclusive. Setting one clears the other.
      

  6.   

    为什么不直接用SQL里的Order By?????????????????????????
    为什么不直接用SQL里的Order By?????????????????????????
    为什么不直接用SQL里的Order By?????????????????????????
    为什么不直接用SQL里的Order By?????????????????????????为什么不直接用SQL里的Order By?????????????????????????
    为什么不直接用SQL里的Order By?????????????????????????
    为什么不直接用SQL里的Order By?????????????????????????
    为什么不直接用SQL里的Order By?????????????????????????