重复数据判断
关键API
- WfForm.bindDetailFieldChangeEvent - 监听值变更事件
- WfForm.getBrowserShowName - 获取显示名称
- WfForm.changeFieldValue - 修改列的值
//列属性-编号
var __FIELD_CODE="field8488";
//列属性-名称
var __FIELD_NAME="field8556";
//明细表标识
var __DETAIL="detail_1";
jQuery(document).ready(function(){
//绑定事件-监听-明细表编辑后
WfForm.bindDetailFieldChangeEvent(__FIELD_CODE,function(id,rowIndex,value){
//判断是否存在重复的数据
if( _existsSameCode(value)){
var name = WfForm.getBrowserShowName( __FIELD_NAME+"_"+rowIndex);
Dialog.alert('已经存在是['+name+'('+value+')]的选项');
var fieldMark = __FIELD_NAME+"_"+rowIndex;
//修改文本框、多行文本、选择框等字段类型
WfForm.changeFieldValue(fieldMark, {value:""});
}
});
});
/**
* 判断数据是否已经存在
*/
function _existsSameCode(code){
if(""==code){
//忽略多个空行的情况
return false;
}
//获取明细表所有的行索引
var rowArr = WfForm.getDetailAllRowIndexStr(__DETAIL).split(",");
var count=0;
for(var i=0; i<rowArr.length; i++){
var rowIndex = rowArr[i];
if(rowIndex !== ""){
//获取编号列的值
var fieldMark = __FIELD_CODE+"_"+rowIndex;
var fieldvalue = WfForm.getFieldValue(fieldMark);
if(code==fieldvalue){
count++;
}
}
}
return count>1;
}
实例:办公用品领用
网友评论