移动端折叠卡片分录动态设置摘要原创
3人赞赏了该文章
746次浏览
编辑于2023年06月19日 17:42:21
关键词:移动端,摘要,折叠,卡片分录
一、需求
移动端卡片分录需要折叠显示,并动态显示不同行的摘要信息
二、思路与方案
2.1分析思路
移动端卡片布局容器支持折叠显示。
2.2实现方案
添加卡片布局容器,要想给折叠框动态显示信息,需要了解卡片布局容器的前端样式结构,然后动态修改摘要属性即可
三、实现过程
1、在移动端大纲视图下,找到卡片节点添加“卡片布局容器”
2、选中卡片布局容器节点,打开右侧属性面板的可折叠选项,并填写默认的摘要信息
3、注册插件,移动端插件需要继承kd.bos.form.plugin.AbstractMobFormPlugin;
4、根据前端指令格式,可以看出卡片分录结构如下,插件修改摘要信息可以参照这个格式修改
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、修改前:
2、修改后
五、开发环境版本
V5.0.011
六、注意事项
1、循环遍历摘要赋值,要考虑特殊场景,如单据体分录为空
七、参考资料
八、源代码
源码.zip(6.22KB)
推荐阅读