点击DBGRID的TITLE按钮,分别按’升序‘和’降序‘排列数据,其它列不做排序,也不显示排序状态标记,但”降序“的怎么做?解决了一定给分!!!
self.L_strcaption保存TITLE的
self.L_b_order 保存排序状态self.ClientDataSet1.IndexFieldNames:= column.fieldname;
begin
if trim(self.L_strcaption)='' then self.L_strcaption:= Column.Title.Caption;
if self.L_b_order then
begin
column.Title.Caption := self.L_strcaption+' ▲';//加排序状态标记
self.L_b_order:=false;
end
else
begin
column.Title.Caption := self.L_strcaption+' ▼';//加排序状态标记
self.L_b_order:=true;
end;
end;
self.L_strcaption保存TITLE的
self.L_b_order 保存排序状态self.ClientDataSet1.IndexFieldNames:= column.fieldname;
begin
if trim(self.L_strcaption)='' then self.L_strcaption:= Column.Title.Caption;
if self.L_b_order then
begin
column.Title.Caption := self.L_strcaption+' ▲';//加排序状态标记
self.L_b_order:=false;
end
else
begin
column.Title.Caption := self.L_strcaption+' ▼';//加排序状态标记
self.L_b_order:=true;
end;
end;
这好像不行吧,因为操作的都是数据集,不
可能一列变化,其他列不排序。
2,
title这样的很多的,搜索一下,:)
var Fieldname:string;
begin
if BSort then
begin
if Query.FieldByName(DBGird.Columns[i].FieldName).FieldKind=fkLookup then
FieldName:=Query.FieldByName(DBGird.Columns[i].FieldName).KeyFields+' ASC'
else
FieldName:=DBGird.Columns[i].FieldName+' ASC';
BSort:=false;
end
else
begin
if Query.FieldByName(DBGird.Columns[i].FieldName).FieldKind=fkLookup then
FieldName:=Query.FieldByName(DBGird.Columns[i].FieldName).KeyFields+' DESC'
else
FieldName:=DBGird.Columns[i].FieldName+' DESC';
BSort:=true;
end;
Query.Sort:=FieldName;
end;