关于 cxGrid 的 filter 中,like 包含条件的改造

cxGrid原控件条件like 仅是在右边加了 % ,达不到我们常用的 模糊包含 的功能;
现改造 cxLike.pas 里面的 LikeStr 函数,使之达到模糊包含的功能;
把这个文件复制到你的程序目录
或者将以下函数 改造控件安装目录下 如 \DevExpress VCL\ExpressDataController\Sources\cxLike.pas
的同名函数;
改动完成后, 所有使用该文件做过滤的, like, not like 都会受影响
无论是在 filterRow 或者弹出的过滤编辑器中 都适用;

function LikeStr(const AStr, APatternStr: string; APercent, AUnderline: Char): Boolean;
var
   vPatternStr: String;
begin
   vPatternStr := trim(stringreplace(APatternStr,'%','',[rfReplaceAll]));
   if Length(vPatternStr)>0 then
   begin
     if vPatternStr[1] <> '%' then
        vPatternStr := '%' + vPatternStr;

     if vPatternStr[Length(vPatternStr)] <> '%' then
        vPatternStr := vPatternStr + '%';
   end;
   Result := Like(PChar(AStr), Length(AStr), PChar(vPatternStr),
     Length(vPatternStr), APercent, AUnderline, #0);
end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值