学习unigui【18】unidbgrid的GridsGroupingSorting
1.unidbgrid的rowedit=true2.unigui的demo-\Demos\Desktop\DBAppDemo\SimpleDemo.dproj【11】3.unigui的session【1】4.unigui菜单【3】5.unigui的ini文件读写【6】6.unigui导出TMS.Flexcel【5】7.unigui+fastreport 打印【4】8.unigui显示uniTreeVview使用TUniTreeNode内存泄漏的问题【14】9.unigui显示websocket服务端向客户端发送信息【15】10.学习unigui【17】-数据集和JSON互相转换-DataSetConverter4D 开源项目
11.学习unigui【18】unidbgrid的GridsGroupingSorting
12.学习unigui【19】unidbgrid的Group By This Field汉化13.学习unigui【20】unistringGrid14.学习unigui【21】unistringGrid的标题栏动态增加15.学习unigui【22】unistringGrid的标题栏双击事件16.学习unigui【23】uniDBGrid的使用摘要17.学习unigui【25】关于图标18.学习unigui【24】Echart的使用:多个坐标系19.学习unigui【26】关于Unigui控件的个性化CSS框架20.学习unigui【27】像pg的jsonb一样编辑json。21.unigui的菜单树补习【2】treeview22.unigui的程序编译后自动运行傻傻的手动【7】23.unigui的ServerModule的重要属性【8】24.unigui的错误delphi clientHeight:property clientheight does not exist【10】25.学习unigui【28】UniGUI接收POST/GET折腾二天,你不按照demo里的代码来,就是没有效果。功力不够导致的。学习学习再学习!努力努力再努力!
procedure TUniGridsGroupingSorting.UniDBGrid1MultiColumnSort( Columns: TUniDBGridColumnArr; Directions: TUniSortDirections); var OrderStr : string; I : Integer; begin UniMainModule.ADOQuery5.Close;//必须在UniMainModule OrderStr := 'select * from [Customers]' + ' order by '; for I := Low(Columns) to High(Columns) do begin OrderStr := OrderStr + '['+Columns[I].FieldName+ '] '+IfThen(Directions[I], 'ASC', 'DESC')+','; end; OrderStr := RemoveTrailingChar(OrderStr, ','); UniMainModule.ADOQuery5.SQL.Text := OrderStr; UniMainModule.ADOQuery5.Open; end;
其二、点击列排序:
procedure TUniGridsColumnSort.SortColumn(const FieldName: string; Dir: Boolean); begin if Dir then ClientDataSet1.IndexName := FieldName+'_index_asc' else ClientDataSet1.IndexName := FieldName+'_index_des'; end; procedure TUniGridsColumnSort.UniDBGrid1ColumnSort(Column: TUniDBGridColumn; Direction: Boolean); begin SortColumn(Column.FieldName, Direction);//必须分开写调用 end;
看明白没,必须按这种格式,分开写。否则就是不行。作者没有说明why?再WEB中这处理的理由,你知道WHY?
实际上非常简单:
1、创建内存表TFDMemTable
procedure TUniForm_SelectAPanient.UniFormCreate(Sender: TObject); var i : Integer; begin UniMainModule.fdqry_QueryPatient.Open('select * from patient_info'); //符合条件的患者资料 fdmtbl_QueryPatient.CopyDataSet(UniMainModule.fdqry_QueryPatient, [coStructure, coRestart, coAppend]); fdmtbl_QueryPatient.Filter := ''; fdmtbl_QueryPatient.IndexesActive := True; UniMainModule.fdqry_QueryPatient.Close; end;
2、改变index
procedure TUniForm_SelectAPanient.undbgrd1MultiColumnSort( Columns: TUniDBGridColumnArr; Directions: TUniSortDirections); var i : integer; OrderStr : string; begin OrderStr := ''; for I := Low(Columns) to High(Columns) do begin OrderStr := OrderStr + Columns[I].FieldName+ IfThen(Directions[I], ':A', ':D')+';'; end; Delete(OrderStr, Length(OrderStr), 1); fdmtbl_QueryPatient.IndexFieldNames := OrderStr; end;
good luck!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报