如何使用 Ehlib 实现自动排序

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

如何使用 Ehlib 实现自动排序

翻译:nxyc_twz@163.com

??? 在 Ehlib 2.6 版的 DataService 文件夹下提供了一些可以使数据集实现自动排序的文件。TDBGridEh 使用这些文件中的相关对象可以实现当排序标记发生变化时实现自动排序。

??? 如果你改变了数据网格及标题的排序标记而没有书写 OnSortMarkingChanged 事件,数据网格将尝试自动进行数据排序。DBGridEhDataService 尝试通过 GetDatasetFeaturesForDataSet 查找 TDataSet 中可以排序的特定的对象。正如你所知道的,TDataSet 不支持数据排序,但它的派生对象 TQuery 或 TClientDataSet 却允许实现数据排序。使用过程 RegisterDatasetFeaturesEh ,你可以注册 TDatasetFeaturesEhClass 类,该类可以实现对 TQuery, TADOQuery 以及 TClientDataSet 对象进行排序。简单地通过 uses 子句添加 Ehlib...(EhlibBDE,EhlibADO,EhlibCDS)的单元之一到你的工程的任意单元中,与它们相连的数据网格将自动对该数据集进行排序。 EhLibBDE, EhLibADO, EhLibCDS 通过在单元数据集中调用 RegisterDatasetFeaturesEh 过程来实现初始化。对于其它数据集类型,你必须编写、并注册可以实现该数据集排序的新对象。书写过程 T[你的数据集]DatasetFeaturesEh.ApplySorting ,你可以存取那些使用了 SortMarkedColumns 属性的列以实现直接排序。你可以查看 DbUtilsEh 单元中的示例以明白如何编写T[你的数据集]DatasetFeaturesEh 类及查看 EhLibBDE 单元以明白如何注册 T[你的数据集]DatasetFeaturesEh 类。

引擎?????????? 数据集?????????? 单元文件

BDE??????????? TQuery?????????? EhLibBDE?
ADO??????????? TADOQuery??????? EhLibADO?
ClientDataSet? TClientDataSet?? EhLibCDS?
DBExpress????? TSQLQuery??????? EhLibDBX
InterBase????? Express TIBQuery EhLibIBX

译者注:

实际上,实现该功能非常简单(以下我以BDE为例说明如何实现自动排序):

1.在窗体上放置一个 DBGridEh 组件,并将其连接到相应的 BDE 数据集;

2.将该组件的[OptionsEn]中的 dgAutoSortMarking 属性设置为 True;

3.双击该组件,在其弹出的属性编辑器中添加相关字段;

4.将要排序的字段的属性列表的 [Title]的 TitleButton 属性设置为 True;

5.最后,千万不要忘了在 uses 子句中加上 EhlibBDE单元。

好了,使用上面的方法,你会发现原来通过 Ehlib 实现数据的自动排序居然如些简单!

Ehlib5.3 著名的数据库连接控制 EHlib 是著名的数据库连接控制,DBgrid增强VCL控件;支持多表头,多固定列,按表头排序,具有office2007的复选查询功能 立即下载

相关推荐

DBGridEh的标题栏排序

适用于:ClientDataSet-DataSource-DBGridEh 环境:Delphi XE2测试正常使用 使用说明:单击DBGridEh的标题栏排序(适用于ADO---ClientDataSet) --在DBGridEh的事件OnTitleBtnClick引用该函数即可: SortDBGridEh(Sender, ACol, Column); --为了保证表格的每一列都能点击触发排序,你需要将你需要排序的列属性 -- Title->TitleButton设置为True。

Ehlib组件DBGridEh自动排序之正常运行

根据Ehlib使用说明之自动排序并显示标记(▽降序△升序),仅设置属性不用写代码实现点击标题头自动排序。 DBGridEh组件可以在标题行单元格中显示小三角形升、降排序标志符图片,在运行时可点击标题行,图片自动切换并做相应排序。 1)设置全部列为排序字段,具体属性设置如下:   DBGridEh.ColumDefValues.Titles.TitleButton:=True;   DBGr

leavesguth的博客 1407

如何使用 Ehlib 实现自动排序(转)

Ehlib 的 DataService 文件夹下提供了一些可以使数据集实现自动排序的文件。TDBGridEh 使用这些文件中的相关对象可以实现排序标记发生变化时实现自动排序。   如果你改变了数据网格及标题的排序标记而没有书写 OnSortMarkingChanged 事件,数据网格将尝试自动进行数据排序。DBGridEhDataService 尝试通过 GetDatasetFeaturesForDataSet 查找 TDataSet 中可以排序的特定的对象。正如你所知道的,TDataSet 不支持数

路虽远,行则将至;事虽难,做则必成! 1328

EHLIB 应用技巧

如何使用 Ehlib 实现自动排序翻译:nxyc_twz@163.com    在 Ehlib 2.6 版的 DataService 文件夹下提供了一些可以使数据集实现自动排序的文件。TDBGridEh 使用这些文件中的相关对象可以实现排序标记发生变化时实现自动排序。    如果你改变了数据网格及标题的排序标记而没有书写 OnSortMarkingChanged 事件,数据网格将尝试自动

开心果的专栏 3810

点击Ehlib列标题的快速排序方法

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34161032的博客 206

Ehlib12.0新版修改的几个问题备忘(排序 过滤 表格绑定 自动列宽 数据分组)

本文介绍了EhLib组件库中TDBGridEh控件的功能优化和使用方法。主要包括:1)排序和过滤功能的配置,包括自动排序标记、多列排序及筛选功能;2)组件绑定改进,支持直接绑定DataSet而不需通过TDataSource中转;3)完整的排序和过滤设置示例代码;4)自动调整列宽的实现方法,通过Hack类访问内部方法优化列宽,并设置最大宽度限制。使用时需注意属性类型的变更调整,如DataSource属性现为TObject类型。

leavesguth的博客 343

关于Ehlib - DBGridEh 自动排序的解决方案

环境: C++ Builder 6Ehlib 版本: 5.0 设置如下属性:DBGridEh->OptionsEh->dghAutoSortMarking=true;   需要自动排序列的 Column->Title->TitleButton=true ; 根据DBGridEh->Datasource->Dataset的类型,  将Ehlib/common 下相应的数据接口

sas_razor的专栏 808

EhLib表格控件DBGridEh自动排序自动过滤的实现

一、排序功能:(原文链接:www.tansoo.cn) 首先在uses节中根据你选用的数据集引用对应的 EhLibXXX (EhLibADO, EhLibCDS…) 然后再设置下面几个DBGridEh控件的属性: 1 procedure TForm1.FormCreate(Sender: TObject); 2 var

BG6RSH's Space. 4235

EhLib控件使用技巧

2003-12-5 15:22:29 使用 TDBSumList 组件    还记得以前有朋友问过这样一个问题:在 DBGrid 下如何像 Excel 一样能够做统计计算,实话说,使用 DBGrid 来做的话着实不易,不过现在有了这个咚咚,相信会简单些。以下是摘录的一些使用上的说明:   【TDBSumList说明】    你可以使用TDBSumList在可视动态变化数

beyondqd的专栏 3494

EhLib使用全攻略

EhLib使用全攻略  使用 TDBSumList 组件   还记得以前有朋友问过这样一个问题:在 DBGrid 下如何像 Excel 一样能够做统计计算,实话说,使用 DBGrid 来做的话着实不易,不过现在有了这个咚咚,相信会简单些。以下是摘录的一些使用上的说明: 【TDBSumList说明

zhangzhifeng886的专栏 2890

EhLib控件使用---DBGrideh实现自动排序

1.在optioneh中设置: AutosortMarking:=True 2.设置DbGridEh的属性:(不一定总要设置,与使用的数据连接有关) sortlocal:=True; 3.uses 单元 Ado------ehlibADo TclientData------ehlibCDS BDE ---------ehlibBDE 4.Column属性 TitleB

全欣 的专栏 1949

EHLIB使用经验(一)

Ehlib这个表格组件真的不错,比delphi自带的DBgrid强太多了。下面说下里面的三个具体功能!1、自动排序(无代码)  不用写代码,只要选择相应的属性就可以了。  A、将该组件的[OptionsEn]中的 dgAutoSortMarking 属性设置为 True   B、将要排序的字段的属性列表的 [Title]的 TitleButton 属性设置为 True   C、uses 子句中

海洋 2818

EhLib使用攻略

转贴:EhLib使用全攻略 KeyLife富翁笔记  作者: archonwang标题: Ehlib使用 关键字: 前 言 分类: 个人专区 密级: 公开 (评分:★★★ , 回复: 10, 阅读: 4649) »»    最近闲来无事,就装了一个 Ehlib 来玩。呵呵,没想到,这么个小东西一下子就把我迷住了,细细品来,的确是一个非常好的控件作品。作者厉害

ZENITH 2415

ehlib使用

ehlib使用  2003-12-5 15:22:29    使用 TDBSumList 组件    还记得以前有朋友问过这样一个问题:在 DBGrid 下如何像 Excel 一样能够做统计计算,实话说,使用 DBGrid 来做的话着实不易,不过现在有了这个咚咚,相信会简单些。以下是摘录的一些使用上的说明: 【TDBSumList说明】     你可以使用TDBSumList在可视动

w88529593的专栏 843

Ehlib使用

Ehlib使用  使用 TDBSumList 组件    还记得以前有朋友问过这样一个问题:在 DBGrid 下如何像 Excel 一样能够做统计计算,实话说,使用 DBGrid 来做的话着实不易,不过现在有了这个咚咚,相信会简单些。以下是摘录的一些使用上的说明:【TDBSumList说明】     你可以使用TDBSumList在可视动态变化数据集中进行记录统计。在你想查看的数据集中

yxj911的专栏 851
上一篇: 获取MAC地址
下一篇: ehlib的使用
jvict
博客等级 码龄26年 2粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值