【流程助手&移动bos】流程助手单据界面不同审批节点显示不同的字段
【更新日志】
2021.10.18,优化内容描述
需求:流程助手单据界面怎么根据不同的审批节点显示不同的内容?
方案:移动bos拓展表单脚本控制,详见下面。
1、参考链接拓展开发表单,https://vip.kingdee.com/article/125556599124439296
表单做好之后,设置默认字段的显示、隐藏之类的属性,如果想要控制一个字段在某个节点的时候不显示,那就默认状态是显示,脚本设置隐藏。也可以反着来,根据需求。默认设置见下图
2、编写服务端脚本,函数名为getActDefId,脚本为:
var ctx = context.getBosContext();
//获取方法参数
var assignid = context.getParamAsString(0);
var sql2 = "SELECT FACTDEFID FROM T_WFR_ASSIGN WHERE FASSIGNID = '"+assignid +"'";
var list = context.getDBUtil().executeQueryAsList(sql2);
context.setResult(list);
直接复制不用改
操作见下图
3、【事件】里面编写脚本控制
进入【事件】之后,编写脚本
mbos("entity").bind("afterLoad",function(e){
try{
var assignId = _assignInfo.assignId;
mbos.eas.invokeScript("getActDefId",[assignId],function(data){
var factdefid = data[0].factdefid;
if(factdefid == "XXXXXXXX" || factdefid=="XXXXXXXX"){
}
})
}catch(e){
console.log();
}
})
factdefid是流程节点定义id,获取方式在后面
红色部分需要修改
具体见下图
单据头和分录的开头有区别
单据头:
mbos("entity").bind("afterLoad",function(e){
……..
})
分录:
mbos('entries').bind('afterRendered',function(e){
……..
})
脚本说明:
if(factdefid == "XXXXXXXX" || factdefid=="XXXXXXXX"){
这里写需要控制的字段属性
}
这部分逻辑就是,当流程走到节点XXXXXXXX或者XXXXXXXX的时候,字段怎么怎么。。。。。
显示/隐藏,
mbos(id).show();
mbos(id).hide();
启用/禁用,
mbos(id).enable();
mbos(id).disable();
还有很多类似的控制
特别注意,分录字段需要写成mbos(id,e.index).show();设置其他属性也都要加上e.index
id获取参考下图
例如,
4、脚本中的factdefid的获取需要从待办任务表t_wfr_assign中获取
SELECT * FROM T_WFR_ASSIGN where FPROCDEFNAME_L2 = '流程实例名称'
通过活动定义名称获取活动定义内码(FACTDEFID),就是脚本中的factdefid
流程实例名称获取就是移动bos绑定流程节点时候的流程的名称
【流程助手&移动bos】流程助手单据界面不同审批节点显示不同的字段
本文2024-09-22 20:34:18发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-114491.html