如何使用 Ehlib 实现自动排序(转)
来源:互联网 发布:mysql 显示字符集 编辑:程序博客网 时间:2024/05/01 23:10
在 Ehlib 的 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单元。 (如果使用的是ADO 那么需要引用EhLibADO )
好了,使用上面的方法,你会发现原来通过 Ehlib 实现数据的自动排序居然如些简单!
通过以上方法,无须增加任何代码,就可实现点击EHlib的标题栏实现排序。
注意:以上方法在遇到带有Order by字句的时候 会报错。具体解决办法可参考:
http://blog.csdn.net/lotusyangjun/archive/2010/12/13/6073166.aspx
- 如何使用 Ehlib 实现自动排序(转)
- 如何使用 Ehlib 实现自动排序
- EhLib控件使用---DBGrideh实现自动排序
- EhLib表格控件DBGridEh自动排序、自动过滤的实现
- 【转】EhLib 使用教程:Ehlib 过滤功能的实现
- EhLib实现自动编号功能
- 关于Ehlib - DBGridEh 自动排序的解决方案
- EhLib 使用教程:Ehlib 过滤功能的实现
- EhLib控件使用技巧 --DBGridEh自动过滤
- EhLib使用
- Ehlib组件DBGridEh自动排序之正常运行
- dbgrideh如何实现自动排序
- ehlib的使用
- Ehlib 的使用
- ehlib的使用
- EhLib使用全攻略
- EhLib使用攻略
- Ehlib 的使用
- 新人报到
- 设置窗体图标
- mysql在centos下的安装和配置
- 重新振奋自己
- linux命令学习2-du
- 如何使用 Ehlib 实现自动排序(转)
- memcached全面解析--理解memcached的内存存储
- 语法分析的错误恢复
- How to be a Star Engineer
- memcached全面解析--memcached的删除机制和发展方向
- TableLayout
- mysql忘记root密码【windows下】
- memcached全面解析--memcached分布式算法
- 读书笔记-人人都是产品经理00-开篇