(同一个世界,同一个梦想,交流学习C++Builder and Delphi XE10,传承c++builder and Delphi的魅力!欢迎各地朋友加入我的QQ群484979943,进群密码“BCB”,同时也请将该群号广为宣传,希望能够广集各方高手,共同进步。如需下载开发工具及源代码请加入我的QQ群。)
【阅读倡议】
1、有问题请留言;
2、没问题请点赞;
3、看连载请加群;
4、下源码请加群;
【开发工具】
1、C++Builder and Delphi 10.3.3
2、FMSoft_uniGUI_Complete_Professional_1.70.0.1531(正版)
本人主笔的国内第一本uniGUI教学案例代码已诞生,分为cbuilder和delphi两个版本,买代码送手册,需要的朋友可以加入我的QQ技术交流群484979943给我(群主)留言。资料简介:
https://www.meipian.cn/20b86ayo?share_from=others&user_id=64168117&uuid=a8a75af8c0cc31e6a21b8a79a2b07398&share_depth=1&first_share_uid=64168117&utm_medium=meipian_android&share_user_mpuuid=94b70e99e8b6986c71b270a9883befb2
如果你想让你的表格的某几个列支持列头点击排序,只需要先将他们的Sortable属性设置为True,然后为UniDBGrid1的OnColumnSort事件增加代码指定索引字段即可:
一、Delphi源代码
procedure TMainForm.UniDBGrid1ColumnSort(Column: TUniDBGridColumn;
Direction: Boolean);
begin
if Direction then
begin
UniQuery1.IndexFieldNames:=Column.FieldName+ ' asc';//升序排列
end
else
begin
UniQuery1.IndexFieldNames:=Column.FieldName+ ' desc';//降序排列
end;
end;
二、CBuilder源代码
void __fastcall TMainForm::UniDBGrid1ColumnSort(TUniDBGridColumn *Column, bool Direction)
{
if(Direction)
{
UniQuery1->IndexFieldNames=Column->FieldName+ " asc";//升序排列
}
else
{
UniQuery1->IndexFieldNames=Column->FieldName+ " desc";//降序排列
}
}
注意:截至unigui1507版本,列头被分组了的列不支持子列排序,支持多列排序,具体实现方式可参考官方demo。