如何在移动列表界面配置规则—以展示到期提示为例原创
金蝶云社区-范老师加油
范老师加油
5人赞赏了该文章 3074次浏览 未经作者许可,禁止转载编辑于2022年04月14日 18:48:52

关键词:界面规则,移动列表

一、需求

在移动列表里面,根据单据中的到期时间来判断,如果到期时间大于当前时间,则显示红色加粗的”已过期”控件来提醒当前人员.如果到期时间小于当前时间,则不显示提醒控件.

二、思路与方案

这是比较典型的界面规则实现的案例, 但是我们在实际操作过程中却发现移动列表不支持时间函数,所以没办法直接使用,这里我们可以使用插件赋值+界面规则的方式共同来实现这个功能.

三、实现过程

1 准备工作:  首先我们来构建页面.

表单页面简单的加一个到期时间就可以了.

151.PNG

在移动列表页面:把到期时间加上,并添加一个红色的标签.

152.PNG

构建完页面下面就是实现方案了.

2  首先第一步,我们在表单页面添加一个文本字段,并设置为不可见,这个字段不承载业务涵义的字段,只是为了移动列表中的界面规则生效而添加的,并且也要在移动列表添加.

154.PNG


3 在移动列表添加插件,编写插件代码.

这里插件方法的意义就是当到期时间大于当前时间时,则把到期的标识设为Y.

import java.util.Date;
 
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.form.events.BeforeCreateListDataProviderArgs;
import kd.bos.list.plugin.AbstractMobListPlugin;
import kd.bos.mvc.list.ListDataProvider;
 
public class TestMobListPlugin1 extends AbstractMobListPlugin{
 
  
    /**
     * (通用)获取数据 - 数据重新组装
     */
    @Override
    public void beforeCreateListDataProvider(BeforeCreateListDataProviderArgs args) {
        super.beforeCreateListDataProvider(args);
        args.setListDataProvider(new ListDataProvider() {
            @Override
            public DynamicObjectCollection getData(int arg0, int arg1) {
                // 获取列表数据
                DynamicObjectCollection collection = super.getData(arg0, arg1);
                // 设置 自定义列 数据
                String pkIdStr = null;
                for (DynamicObject dynObj : collection) {
                  
                 Date datetime=(Date) dynObj.get("kded_expiretime");
                if(datetime!=null) {
                    Long dateLongtime=datetime.getTime();
                    Long nowTime=new Date().getTime();
                    if(dateLongtime<nowTime) {
                       dynObj.set("kded_expireflag", "Y");
                    }
                   
                }
                  
                }
               
                return collection;
            }
        });
    }
}


配置界面规则:

通过配置界面规则: 主要逻辑就是 当到期标识为Y时显示控件,其他情况下隐藏控件.

153.PNG

155.PNG

157.PNG

158.PNG

四、效果图

如下图所示的,我们就实现了当到期时间大于当前时间,则显示红色加粗的”已过期”控件,没有的话就不显示

156.PNG

五、开发环境版本

COSMICV4.0.003.0

六、参考资料

【开发平台】指导手册

学习成长中心

七、附件

赞 5