分录跨页数据处理模式
产品版本 | 更新内容 | 更新日期 |
BOS_V6.0.1 | 分录跨页数据处理模式 | 2023年10月28日 |
BOS_V6.0.2 | 插件设置单据体初始默认条件 | 2023年11月30日 |
业务场景
历史单据体过滤、排序、合计仅支持当前页数据,对用户使用造成很大影响,故6.0版本支持跨页数据的处理,增强大分录维护体验
功能概要
支持分录跨页数据过滤
支持分录跨页数据合计
支持分录跨页数据排序
支持分录批量填充只填充过滤后的数据
支持给单据体设置初始过滤条件
同时支持【普通分录】与【分批模式分录】
操作说明
1.开启【单据体跨页模式】的两种方式
a.公共设置->单据参数->选择单据->打开【单据体跨页模式】参数(适用单据/基础资料)
b.插件方式:在createNewData(动态表单)、loadData(单据/基础资料)方法设置上下文参数开启
this.getModel().putContextVariable("MODEL_BOSENTRYSERVERFILTERSORT",true);
2.生效范围
针对当前所设置的单据/基础资料/动态表单生效
3.验证【单据体跨页模式】是否开启成功
a.进入表单/单据/基础资料详情,在单据体表头进行过滤,有下图的getGridDataByFilter请求表示开启成功
[ { "key":"entryentity", //分录标识 "methodName":"getGridDataByFilter", //调用方法 "args":[ [ { "FieldName":["textfield"], //过滤字段 "Value":["3"], //过滤值 "Compare":["59"] //过滤比较符 } ] ] } ]
b.可跨页过滤数据
4.给单据体设置初始过滤条件(前端过滤,用户可清除)
应用场景
加载表单时,默认给单据体添加过滤条件,并且用户可以手动清除掉,主要目的是为了过滤一些不关键的信息,聚焦关键信息,提升用户体验
实现效果
给前端设置初始过滤条件,过滤条件会回显到前端
实现方式
可在插件afterBindData(单据/基础资料)、afterCreateNewData(动态表单)调用kd.bos.form.control.EntryGrid#getGridDataByFilter方法设置初始过滤条件,过滤规则参数设置参考过滤单据体的请求参数。
下图是使用kde脚本编辑器的示例
5.插件设置单据体初始默认条件(后台过滤,用户不可清除)
应用场景
支持了【单据体跨页模式】设置初始默认条件的功能,可通过插件设置初始过滤条件,达到单据体数据过滤的效果,典型场景为按照权限规则过滤单据体数据,使不同的用户查看到不同的数据范围。
实现效果
设置初始默认过滤条件,过滤条件不回显到前端(按需使用)
实现方式
可在插件afterBindData(单据/基础资料)、afterCreateNewData(动态表单)调用kd.bos.form.control.EntryGrid#buildDefaultFilterRows方法设置初始默认过滤条件,下图是使用kde脚本编辑器的示例。
6.大数据处理
单据分录有大量数据时(如超10w),建议开启分批处理模式,提升页面加载速度。
分批处理模式开启后,每次内存只加载5000条数据,当前操作只对这一批次进行处理,当翻到下一批次(5001~10000)时会提醒先保存前一批的数据,否则前一批的改动会丢失。
开启前要评估插件中有没有使用全量数据的逻辑,如果有需要改造,因为开启后每次内存只加载5000条数据。在插件的loadData里加上添加上下文变量
this.getModel().putContextVariable("MODEL_INIT_LOADSPLITPAGE",true);开启
注意事项
1.单据体进行排序、过滤后,不允许进行【上移】、【下移】操作
2.注意二开插件中对行改变的兼容
分录跨页数据处理模式
本文2024-09-23 00:20:16发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-138823.html