At first you need to define index for every column that you want to sort:
1w:in IDE
double click your ClientDataSet's IndexDefs property,Add new,set "Name""Fields""DescFields" value
(for example:equal to column name)
2w:in code
with dataset.IndexDefs do
begin
Clear;
with AddIndexDef do
begin
Name:='your column name';
Fields:='your column name';
DescFields:='your column name';
end;
Then write code in DBGridEh OnTitleClick:
case Column.Title.SortMarker of
smNoneEh:
begin
Column.Title.SortMarker := smDownEh;
fTagStateSetDM.cdsData.IndexName:=Column.FieldName;
end;
smDownEh:
begin
Column.Title.SortMarker := smUpEh;
fTagStateSetDM.cdsData.IndexFieldNames:=Column.FieldName;
end;
smUpEh:
begin
Column.Title.SortMarker := smDownEh;
fTagStateSetDM.cdsData.IndexName:=Column.FieldName;
end;
end;
博客介绍了在IDE中对数据集列进行排序的方法。首先需为要排序的列定义索引,可在IDE中双击ClientDataSet的IndexDefs属性添加,也可在代码中操作。之后在DBGridEh的OnTitleClick事件中编写代码,根据列标题的排序标记状态设置索引名和索引字段名。
982

被折叠的 条评论
为什么被折叠?



