美文网首页
泛微实施记录(二)判断明细表数据重复

泛微实施记录(二)判断明细表数据重复

作者: 走码人 | 来源:发表于2022-11-03 17:06 被阅读0次

重复数据判断

关键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;
  }  

实例:办公用品领用

相关文章

网友评论

      本文标题:泛微实施记录(二)判断明细表数据重复

      本文链接:https://www.haomeiwen.com/subject/uheetdtx.html