Delphi DBGridEh按标题进行排序

DBGridEh按标题进行排序

         DBGridEh组件可以在标题行单元格中显示小三角形升、降排序标志符图片,在运行时可点击标题行,
图片自动切换并做相应排序。具体属性设置如下: 
     OptionsEh=dghAutoSortMarking   
      Column.Title.TitleButton=true  
      SortMarkedColumns   :当前排序列(可在运行时,代码中使用).

两种代码:

 

第一种:

procedure TManageProjForm.dbgrdh1TitleBtnClick(Sender: TObject;
  ACol: Integer; Column: TColumnEh);
begin
  if   FieldName   =   ' '   then   Exit;

  if TADOQuery(TDBGridEh(Sender).DataSource.DataSet).Active = False then
  begin
      Exit;
  end;

  if Column.Title.SortMarker = smdowneh then
    TADOQuery(TDBGridEh(Sender).DataSource.DataSet).Sort := Column.FieldName
  else
    TADOQuery(TDBGridEh(Sender).DataSource.DataSet).Sort :=column.FieldName +' DESC';
end;

 

 

第二种:

procedure TManageProjForm.dbgrdhProjectTitleBtnClick(Sender: TObject;
  ACol: Integer; Column: TColumnEh);
var
  sortstring:string;   //排序列
begin
//进行排序
  with   Column   do
  begin
    if   FieldName   =   ' '   then   Exit;

    if TADOQuery(TDBGridEh(Sender).DataSource.DataSet).Active = False then
    begin
      Exit;
    end;

    case   Title.SortMarker   of
    smNoneEh:
      begin
        Title.SortMarker := smDownEh;
        sortstring := Column.FieldName + ' ASC ';
      end;
    smDownEh:
      begin
        sortstring := Column.FieldName + ' ASC ';
      end;
    smUpEh:
      begin
        sortstring := Column.FieldName + ' DESC ';
      end;
    end;
  //进行排序
    try
      TADOQuery(TDBGridEh(Sender).DataSource.DataSet).Sort := sortstring   //dataset为实际数据集变量名
    except
    end;
  end;
end; 

 


其实两者差不多。注意:切记lookup型字段不可做上述设置,否则系统会提示错误。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值