【泛微E9】流程打分表实现

需求描述:流程表单固定带出129行明细,前6项只要有两项打分为-10(-10为固定分值),总分即为0。

实现方法:给明细表隐藏字段【自定义序号】赋值,通过字段联动带出129行明细。

PS:在完成该流程,测试效果时,出现了每次新建该流程,都会出现随机空白行的情况,空白行位置不固定。

问题原因:因为字段联动的数据源是外部数据源(虽然该外部数据源就是E9的库,但是只要选了数据源,就会受到外部数据源最大连接数的限制。库是同一个,但是调用的方法不一样。一个是直接连接,一个是通过数据源建立连接),受最大连接数量限制,数据源最大连接数不够导致流程明细出现随机空白行。

解决方法:将数据源的最大连接数改为100。

// 遍历明细行的写法
var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");
var arrScore = [];
console.log(rowArr);

for(var i=0; i<rowArr.length; i++){   
    var rowIndex = rowArr[i];
    //console.log(rowIndex);   
 
    if(rowIndex !== ""){
        var fielda = "field12742_"+rowIndex;    //遍历明细行字段
        var xhz = i+1;
        WfForm.changeFieldValue(fielda, {value:xhz});  //给明细字段赋值
    }
}

jQuery(document).ready(function(){
  WfForm.bindDetailFieldChangeEvent("field12748",function(id,rowIndex,value){
    console.log(value);
    if(rowIndex<6){
      //var getScore = +WfForm.getFieldValue("field12748");
    	//console.log(getScore);
    	arrScore.push(+value); 
    	console.log(arrScore);
    }  
    checkScores();
  });
    
  
  function checkScores(){
    var count = 0; // 用于计数小于 0 的数字  

    for (let i = 0; i < arrScore.length; i++) {  
        if (arrScore[i] < 0) {  
            count++; // 增加小于 0 的数字的计数  
            console.log(count);
            if (count >= 2) {  
                // 一旦找到两个小于 0 的数字,总分即为0
                WfForm.changeFieldValue("field12747", {value:"0"});
                break;
            }  
        }  
    } 
  }
    
});
posted @ 2024-09-29 22:44  K89  阅读(26)  评论(0编辑  收藏  举报