DBGrid单击标题自动排序

原创 2006年06月23日 08:57:00
procedure TForm1.DBGrid1TitleClick(Column: TColumn); var s,cFieldName:string; i:integer; DataSet:TDataSet; begin Try DataSet:=Column.Grid.DataSource.DataSet; if not DataSet.Active then exit; if Column.Field.FieldKind=fkLookup then cFieldName:=Column.Field.KeyFields else if Column.Field.FieldKind=fkCalculated then cFieldName:=Column.Field.KeyFields else cFieldName:=Column.FieldName; if DataSet is TCustomADODataSet then begin s:=TCustomADODataSet(DataSet).Sort; if s='' then begin s:=cFieldName; end else begin if Pos(cFieldName,s)<>0 then begin i:=Pos('DESC',s); if i<=0 then begin s:=s+' DESC'; end else begin Delete(s,i,4); end; end else begin s:=cFieldName; end; end; TCustomADODataSet(DataSet).Sort:=s; end else if DataSet is TClientDataSet then begin if TClientDataSet(DataSet).indexfieldnames<>'' then begin i:=TClientDataSet(DataSet).IndexDefs.IndexOf('i'+Column.FieldName); if i=-1 then begin with TClientDataSet(DataSet).IndexDefs.AddIndexDef do begin Name:='i'+Column.FieldName; Fields:=Column.FieldName; DescFields:=Column.FieldName; end; end; TClientDataSet(DataSet).IndexFieldNames:=''; TClientDataSet(DataSet).IndexName:='i'+Column.FieldName; end else begin TClientDataSet(DataSet).IndexName:=''; TClientDataSet(DataSet).IndexFieldNames:=column.fieldname; end; end; Except End; end;
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

数据窗口单击标题栏自动进行排序,并显示升降序/拖动行可以改变行顺序

这是一个PB9写的数据窗口单击标题自动排序的标准datawindow对象forward global type uo_datawindow from datawindow end type end f...

JS点击标题自动排序

站长特效 js实现点击分类排序效果 站长特效网  * {   padding:0;   margin:0;  }  body {   font-family:verdana;   f...

单击列标题排序

  • 2004-07-08 00:00
  • 12KB
  • 下载

Delphi中实现DBGrid列宽度自动调整

发现一些ERP的软件的查询,查询出来结果之后,有的字段列宽过大,这时候要通过右键--初始化表格设置 这样的方式来调整表格的列宽。这样操作让人觉得麻烦,突然在网上看到这样的一篇文章,记下来备用。来源:h...

单击列标题排序

DBGrid 根据表格中数据长度自动调整表格宽度

在“自动设置表格宽度”文本框中获取每个字段实际使用的最大字节数,然后设置DBGrid表格列的Field.DisplayWidth属性来根据实际字段长度自动调整表格宽度,主要代码如下: procedur...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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