如何实现在DBGird中点击字段进行数据排序,就像Excel中的一样(50分)

  • 主题发起人 主题发起人 星巴
  • 开始时间 开始时间

星巴

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大虾请教:在Excel中双击可以将数据进行排序。在DBGird中可以吗??
一个顶级菜鸟
 
难办呵~~
 
在DBGrid的OnTitleClick事件中处理,
若数据源是Query,则query1.sql.add('order by fieldname') ;Open ;
若数据源是Table,则通过设置table1.indexfieldnames = 'fieldname' ;
 
"双击可以将数据进行排序。在DBGird中可以吗?"
可以!
procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
Table1.IndexName :='索引名';
Table1.indexFieldName:='字段名';
end;
 
在DBGrid的OnTitleClick事件中处理,

if column.index;=x then
begin
Query1.Close;
Query1.SQL.Text:='.....';
query1.sql.add('order by filed[x]') ;
end;
OK!!
 
不不,我的意思是就像在Excel中,双击字段名称就让该字段的数据排序,
DSM200的回答不能针对那一个字段,是不是还有别的办法??
 
在DBGrid的OnTitleClick事件的处理函数中,有column参数,
这就可以定位到双击的是那各列,从而就能知道是哪个字段.
 
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
var
x: Integer;
TheField : String;
begin
x := Column.Index;
TheField := Query1.Fields[x].FieldName;
with Query1 do begin
Active := FALSE;
Sql.Clear;
Sql.Add('Select * from employee order by '+TheField);
Active := TRUE;
end;
end;

OK!
 
多人接受答案了。
 
后退
顶部