如何开发自定义比较符

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:3

如何开发自定义比较符

关键词:自定义比较符,过滤


一、需求

自定义比较符开发

(1)日期字段,过滤今年的数据

(2)基础资料字段,过滤某个特征值

(3)组织字段,过滤上级组织和同级组织

(4)单据转换中使用自定义比较符脚本



二、思路与方案

苍穹5.0以及之前的版本在【配置工具】可以创建自定义比较符(苍穹6.0的版本,是在【公共设置】里面)。同时,编写代码,构造QFilter对象,完成数据过滤。

单据转换时,会调用自定义比较符插件(继承AbstractFilterContantParser)的getScriptFilter方法,需要重写这个方法。


三、实现过程

1.日期字段,过滤今年的数据

创建自定义比较符如下图,有几个需要注意的地方:

适用类型,指的是控件类型,创建了比较符之后,还需要在设计器中,选中控件节点,添加这个自定义比较符才会生效。

应用,只有应用中的页面,才能使用这个自定义比较符。

解析类,派生自AbstractFilterContantParser,通过java代码实现自定义比较符的业务逻辑。


苍穹5.0以及之前的版本,是在【配置工具】中添加自定义比较符。

image.webp


苍穹6.0的版本,是在【公共设置】中添加自定义比较符。




ThisYearFilterContantParser这个类的类路径,要填在在自定义比较符的解析类上。

解析类插件代码如下:

package kdec.customfilter;
import com.kingdee.guard.service.checkrule.QCP;
import kd.bos.entity.filter.AbstractFilterContantParser;
import kd.bos.entity.filter.FilterContantParserArgs;
import kd.bos.orm.query.QFilter;

import java.util.Calendar;

/**
 * 自定义比较符:今年
 */
public class ThisYearFilterContantParser extends AbstractFilterContantParser {

    @Override
    protected QFilter getQFilter(FilterContantParserArgs filterContantParserArgs) {
        String fieldName = filterContantParserArgs.getFieldName();

        // 构建今年第一天的calendar对象
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.DAY_OF_YEAR, 1);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);

        QFilter qFilter = new QFilter(fieldName, QCP.large_equals, calendar.getTime());

        return qFilter;
    }

    @Override
    protected String getScriptFilter(FilterContantParserArgs filterContantParserArgs) {
        return null;
    }

}



单据中,选中控件节点

image.webp


添加自定义比较符

image.webp



2.基础资料字段,过滤某个特征值

参考文章:

https://vip.kingdee.com/article/604055901527577088


3.组织字段,过滤上级组织和同级组织

参考文章:

https://vip.kingdee.com/article/604056256919200512


4.单据转换中使用自定义比较符

参考文章:

https://vip.kingdee.com/article/604057117422609152



四、效果图

在单据列表中添加对应的控件,这个控件必须是加了自定义控件比较符的,才能生效。

在常用条件中添加日期字段。

image.webp


效果1:表头过滤出现自定义比较符image.webp


效果2:过滤面板也出现了自定义比较符

image.webp

效果3:基础服务云,安全管理,数据规则方案(或者特殊数据权限)使用自定义比较符

image.webp



五、参考资料

自定义比较符





如何开发自定义比较符

关键词:自定义比较符,过滤一、需求自定义比较符开发(1)日期字段,过滤今年的数据(2)基础资料字段,过滤某个特征值(3)组织字段,过...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息