移动端折叠卡片分录动态设置摘要原创
金蝶云社区-技术支持与赋能部_ZH
技术支持与赋能部_ZH
3人赞赏了该文章 746次浏览 未经作者许可,禁止转载编辑于2023年06月19日 17:42:21

关键词:移动端,摘要,折叠,卡片分录

一、需求

移动端卡片分录需要折叠显示,并动态显示不同行的摘要信息

二、思路与方案

2.1分析思路

移动端卡片布局容器支持折叠显示。

2.2实现方案

添加卡片布局容器,要想给折叠框动态显示信息,需要了解卡片布局容器的前端样式结构,然后动态修改摘要属性即可

三、实现过程

1、在移动端大纲视图下,找到卡片节点添加“卡片布局容器”

image.png

2、选中卡片布局容器节点,打开右侧属性面板的可折叠选项,并填写默认的摘要信息

image.png

3、注册插件,移动端插件需要继承kd.bos.form.plugin.AbstractMobFormPlugin;

4、根据前端指令格式,可以看出卡片分录结构如下,插件修改摘要信息可以参照这个格式修改

image.png

5、重写beforeBindData方法,动态修改摘要信息

public void beforeBindData(EventObject e) {
    super.beforeBindData(e);
    //单据体总行数
    int rows = this.getModel().getEntryRowCount("entryentity");

    if(rows>1){
        //遍历动态修改卡片容器摘要
        for (int x = 0; x < rows; x++) {

            DynamicObject entryentity = this.getModel().getEntryRowEntity("entryentity", x);
            String type = (String) entryentity.get("lago_textfield");

            //获取卡片分录编程模型
            CardEntry cardEntry = this.getControl("entryentity");
            
            Map<String,Object> map=new HashMap<>(1);
            Map<String,Object> mapIn=new HashMap<>(1);
            
            //动态修改摘要
            mapIn.put("abstract",type);
            
            //放到布局容器中
            map.put("lago_cardentryflexpanelap",mapIn);
            
            //更改布局容器摘要属性
            cardEntry.setCustomProperties(cardEntry.getKey(),x,map);
        }
    }
}

四、效果图

1、修改前:

image.png

2、修改后

image.png

五、开发环境版本

V5.0.011

六、注意事项

1、循环遍历摘要赋值,要考虑特殊场景,如单据体分录为空

七、参考资料

开发平台

学习成长中心

八、源代码




源码.zip(6.22KB)

赞 3