dbgrideh点击标头排序函数

转载 2007年09月12日 10:31:00
procedure SortDBGridEh(Sender: TObject; ACol: Integer; Column: TColumnEh);
var
  FieldName : 
string;
  SortStr   : 
string;
begin
  Screen.Cursor :
= crSQLWait;
  
try
    
if (Sender is TDBGridEh) and ((Sender as TDBGridEh).DataSource.DataSet <> nil) then
    begin
      
if not ((Sender as TDBGridEh).DataSource.DataSet is TCustomADODataSet) then
        Exit;
      
if not (Sender as TDBGridEh).DataSource.DataSet.Active then
        Exit;
      FieldName :
= Column.FieldName;
      
if (Sender as TDBGridEh).DataSource.DataSet.FindField(FieldName).IsBlob then
        Exit;
      
if (Sender as TDBGridEh).DataSource.DataSet.FieldByName(FieldName).FieldKind =fkData then
        SortStr :
= FieldName
      
else if (Sender as TDBGridEh).DataSource.DataSet.FieldByName(FieldName).FieldKind =fkLookup then
        FieldName :
= (Sender as TDBGridEh).DataSource.DataSet.FieldByName(FieldName).KeyFields
      
else
        FieldName :
= '';
      
if (FieldName = '') or (Pos(';', FieldName) > 0) then
        Exit;
      
case Column.Title.SortMarker of
        smNoneEh:
        begin
          TCustomADODataSet((Sender 
as TDBGridEh).DataSource.DataSet).Sort :=FieldName+' DESC';
        end;
        smUpEh:
        begin
          TCustomADODataSet((Sender 
as TDBGridEh).DataSource.DataSet).Sort :=FieldName + ' DESC';
        end;
        smDownEh:
        begin
          TCustomADODataSet((Sender 
as TDBGridEh).DataSource.DataSet).Sort := FieldName;
        end;
      end;
    end;
  
finally
    Screen.Cursor :
= crDefault;
  end;
end;
 

DBGridEh,DBGrid点击标题排序

最近在找关于解决DBGridEh,DBGrid点击标题排序的最简单方法的同时,发现说法很多,但是没有找到一个比较详细的。 所以我在这里做一个小的总结,有不足之处请大家多多指教。 首先说下关于DBG...
  • haynes
  • haynes
  • 2013年06月11日 14:01
  • 484

delphi实现dbgrideh点击列自动排序

dbgrideh控件本身是支持点击列自动排列的,只要设置

Gridview点击列头排序 .doc

  • 2012年10月22日 09:47
  • 76KB
  • 下载

DBGridEh使用UniDac默认不能排序和过滤的解决方案

以下是EhLib论坛找到的一个帖子中关于此问题解决方案的英文原文 Copy EhLibUniDAC.pas file from \DataService\Others\ folder to the ...

DBGridEh(导出 排序 变色 复选)

  • 2011年02月23日 10:34
  • 637KB
  • 下载

Ehlib 的 DBGridEh 控件导出到Excel的三种封装过程/函数

必须uses DBGridEhImpExp,  EhlibADO, DBGridEh 第一种: procedure TForm2.dbgridehtoexp(lsdbgrideh: t...
  • my98800
  • my98800
  • 2016年11月11日 21:32
  • 486

MFC CListControl 点击列头排序的实现

MFC CListControl 列头排序
  • byxdaz
  • byxdaz
  • 2017年07月31日 18:18
  • 565
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:dbgrideh点击标头排序函数
举报原因:
原因补充:

(最多只允许输入30个字)