【泛微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;
}
}
}
}
});