二开过滤条件常见的写法(持续更新)原创
金蝶云社区-向高
向高
8人赞赏了该文章 155次浏览 未经作者许可,禁止转载编辑于2024年06月07日 17:01:15

场景:s-HR部分较为复杂的列表开发时无法通过视图配置过滤条件,此时需要二开代码添加过滤条件,本文提供一些常见过滤条件写法。

适用版本:所有版本

适用对象:二开人员

步骤:

 

重写父类(Listhandler)的getCustomFilter方法,返回一个自定义的过滤条件。

 

1.常规过滤写法:

FilterItemInfo filterItemInfo =new FilterItemInfo(compareField, compareValue,CompareType.xxx); 

 

2.拼接sql到过滤中

String sql = "SELECT FID FROM T_ORG_ADMIN WHERE FLONGNUMBER LIKE '%" + longNumber + "%'";

filterItemInfo = new FilterItemInfo(compareField, sql, CompareType.INNER);

 

3.不为空

filterInfo.getFilterItems().add(new FilterItemInfo(compareField, CompareValueType.EMPTY, CompareType.ISNOT));

 

4. Set 包含

Set<String> orgIdList = getOrgIds(subMap); //构造一个Set

if(orgIdList!=null&&orgIdList.size()>0){

filter.getFilterItems().add(new FilterItemInfo(compareField,orgIdList,CompareType.INCLUDE));

}

 

4.多个过滤条件连接

//条件1

FilterItemInfo filter=new FilterItemInfo(compareField,compareValue,CompareType.xxx); 

//条件2

filter.getFilterItems().add(new FilterItemInfo(compareField, compareValue,CompareType.xxx));

//条件 3 ……n

//设置条件1和条件2的关系,不设置默认就是and

filter.setMaskString("#0 or #1");

注:多个条件可以用括号组合 如:filter.setMaskString("#0 AND #1 AND (#2 OR #3)");


图标赞 8
8人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0