zoukankan      html  css  js  c++  java
  • 在ehlib的DBGridEh控件中使用过滤功能(可以不用 MemTableEh 控件 适用ehlib 5.2 ehlib 5.3)

    EHlib 因为小巧而受到很多的delphier 们的欢迎,不过ehlib 5.2 及ehlib 5.3 版本为了实现office 2007过滤风格,突然把直接支持CDS的过滤功能停了,取而代之的是必须使用 MemTableEh  控件做中转,这过程麻烦不说,一些朋友使用下来,发现慢无可忍,从而纷纷选择其它的控件替代,不过三方控件也不是想换就能换的,而且对新的控件,如果不熟悉,你不一定能最优使用他,于是就开始寻找是否还有希望使用单选的功能的dbgrideh 来

    经过多方代码碴找

    对  DbUtilsEh.pas 做以下修改,终于与以前一样使用,而且类office 2007的选择功能也出来了!

    procedure TDatasetFeaturesEh.FillSTFilterListDataValues(AGrid: TCustomDBGridEh; Column: TColumnEh; Items: TStrings);
    begin
    end;
    

    很是奇怪,这个地方为什么会留空呢,是否是因为用基它控件时,存在BUG? 不得而之....

    我们做如下修改:

    procedure TDatasetFeaturesEh.FillSTFilterListDataValues(AGrid: TCustomDBGridEh; Column: TColumnEh; Items: TStrings);
    begin
    if Assigned(AGrid.Center) then
    AGrid.Center.StandardFillSTFilterListDataValues(AGrid, Column, Items);
    end;
    

    现在再用以前版本的方法,发现,实现的功能与用了MemTableEh   的没有什么区别,也期待能没有其它的BUG.....
    比如过滤的条数 不能太多,设置的条件不能多个等.....

    附dbgrideh 中过滤设置的一些重要操作:

    在ehlib的DBGridEh控件中使用过滤功能很方便,但使用过程中有几个容易被忽略的地方,它曾经困绕了我很长时间,过滤功能就是用不起来。
    1.在UNIT中加入
    uses EhLibXXX(EhLibADO、EhLibDBE等,根据你选用的数据集来定);

    initialization
      DBGridEhDefaultStyle.FilterEditCloseUpApplyFilter := True;
    //这句写在 .end  前面,同时上面这一句在不同的时候,可能有区别,你在编译不通过时,就要做修改!
    .END  
    

    有如下的版本:

    EhLibCDS
    DBGridEhCenter.FilterEditCloseUpApplyFilter := True;

    2.设置属性
    DBGridEh.STFilter.Local := True;
    DBGridEh.STFilter.Visible:= True;
    3.设置需过滤字段的 STFilter 属性,这个地方我就不详细说了,相信大家都会了。

    2012.11.21补充:应该是5.6版本开始(我试用的是6.0)版本,不再需要修改源码了,另外,6.0也不需要

    initialization
      DBGridEhDefaultStyle.FilterEditCloseUpApplyFilter := True;

    这一行了,实在是方便了很多!

  • 相关阅读:
    用户添加到sudoer列表## Allow root to run any commands anywhere root ALL=(ALL) ALL Iron ALL=(ALL) ALL
    Linux下script命令录制、回放和共享终端操作script -t 2> timing.log -a output.session # 开始录制
    解决nohup: 忽略输入并把输出追加到"nohup.out"或者nohup: 忽略输入重定向错误到标准输出端
    grub救援模式
    如何讓RHEL7/CentOS7開機過程顯示更多資訊
    CSAPP读书随笔之一:为什么汇编器会将call指令中的引用的初始值设置为-4
    对angular实现延迟加载template和controller
    angularjs+jasmine单元测试入门
    设计模式简单工厂之我见
    融云官方cordova示例使用指南
  • 原文地址:https://www.cnblogs.com/zhqian/p/2046101.html
Copyright © 2011-2022 走看看