1、首先设置要排序的列的sotrtabl 为true
2、然后进入MainModule
代码如下:
var
I: Integer;
IndexnameAsc : string;
IndexnameDes : string;
begin
with FDquery1 do
begin
for I := 0 to FieldCount-1 do
begin
IndexnameAsc := Fields[I].FieldName;
IndexnameDes := Fields[I].FieldName;
IndexDefs.Add(IndexnameAsc, Fields[I].FieldName, []);
IndexDefs.Add(IndexnameDes, Fields[I].FieldName, [ixDescending]);
end;
end;
end;
3、创建数据表排序函数
procedure TUniMainModule.SortColumn(const FieldName: string; Dir: Boolean);
begin
if Dir then
fdquery1.IndexFieldNames := FieldName+':A '
else
fdquery1.IndexFieldNames := FieldName+':D';
end;
这是firedac连接的语句,其他连接方式会有不同
4、在dbgrid所在表单中引用排序函数
procedure TMainForm.UniDBGrid1ColumnSort(Column: TUniDBGridColumn;
Direction: Boolean);
begin
UniMainModule.SortColumn(Column.FieldName, Direction);
end;
参照了unigui的demo中的排序功能