当使用DBGridEh 的STFilter属性过滤数据时, 若过滤条件不清空, 再次从数据库查询,然后点击(Not empty)过滤,会报错,
请问如何通过代码调用界面上的(Clear filter)这个功能?注:再次查询时,通过设置adodataset1.filtered := false; 不能解决此bug。

解决方案 »

  1.   

    当选 "Empty" 时它就把数据源的过滤字符串改成adoquery.filter:='字段名 IS NULL'     
        
      事实上当 ADOTable.filter:='字段名 IS NULL'时delphi不认识, 只能用'字段名=NULL'.   
      我们只好在ehlib源码里面把它改成'=   Null',这样才解决问题.   http://topic.csdn.net/t/20050824/11/4228034.html
      

  2.   

    多谢楼上,此处源码我已改过:
    DbUtilsEh.pas 中STFilterOperatorsSQLStrMapEh 内容改为 '= NULL', '<> NULL'
    关键是我的界面还有查询按钮,若只查询一次后,过滤不会报错, 若有过滤条件留在Edit框里,再查询过滤就报错了
      

  3.   

    uses
    //加入
    StdCtrls, EhLibMTE, DBGridEhGrouping,