泛微OA怎么取明细表的数据,并进行判断
需求:
根据明细表里面的资产所属公司,抄送给对应的人员,如下图所示
第一步:选择触发机制,我选择的是提交或者保存流程的时候触发。
WfForm.registerCheckEvent(WfForm.OPER_SAVE+","+WfForm.OPER_SUBMIT,function(callback){
});
第二步:创建一个空数组,用来存放明细表中资产所属公司的值
var ksz=[ ];
第三步:遍历明细表取值,取值的时候进行去重
var cd= WfForm.getDetailRowCount("detail_1");//获取明显表1的长度
for(var rowIndex=0;rowIndex<cd;rowIndex++){
var ssgs=WfForm.getFieldValue("field7908_"+rowIndex);//获取明细表所属公司的值;
if(ksz.indexOf(ssgs)<0){ //这一步判断数组里面是否已经存在,如果不存在就向空数组里面添加数据
ksz.push(ssgs);向空数组里面添加数据
}
第四步:将数组转化为字符串,并且用逗号分隔
zcssgssz=ksz.join(',');
WfForm.changeFieldValue("field13782", {value:zcssgssz});赋值给一个单行文本字段
第五步:在抄送人批次条件那里设置
完整代码:
<script type="text/javascript">
WfForm.registerCheckEvent(WfForm.OPER_SAVE+","+WfForm.OPER_SUBMIT,function(callback){
var zcsjgs=WfForm.getFieldValue("field13764");//获取资产涉及公司的值;
var cd= WfForm.getDetailRowCount("detail_1");//获取明显表1的长度
var ksz=[ ];
for(var rowIndex=0;rowIndex<cd;rowIndex++){
var ssgs=WfForm.getFieldValue("field7908_"+rowIndex);//获取明细表所属公司的值;
if(ksz.indexOf(ssgs)<0){
ksz.push(ssgs);
}
}
zcssgssz=ksz.join(',');
WfForm.changeFieldValue("field13782", {value:zcssgssz});
callback();
});
</script>