泛微OA-明细字段控制不允许重复

效果图如下: 

<script>

  
  WfForm.registerCheckEvent(WfForm.OPER_SUBMIT, function(callback){
    //WfForm.OPER_SUBMIT为提交控制;WfForm.OPER_SAVE为保存控制。
      
    var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");
    var tk ='';
    for(var i=0; i<rowArr.length; i++){
    
      var rowIndex = rowArr[i];
      if(rowIndex !== ""){
        var fieldMark = "field19845_"+rowIndex;      //获取明细字段id
        var value1 = WfForm.getFieldValue(fieldMark);//获取明细字段的值
        
        for(var n=i+1;n<rowArr.length;n++){
          var fieldTest ="field19845_"+n;
          var value2 = WfForm.getFieldValue(fieldTest);
          var h1=WfForm.getDetailRowSerailNum(fieldMark);//获取明细字段的行
          var h2=WfForm.getDetailRowSerailNum(fieldTest);
          if(value1==value2){
            //console.log("第"+h1+"行和第"+h2+"行存在重复");
            tk=tk+"第"+h1+"行和第"+h2+"行存在重复\n";
          }
        }
      }
    }  
    if(tk==''){
      callback();//继续提交需调用callback,不调用代表阻断
    }else{
      alert(tk); 
      //WfForm.showMessage(tk); 
    }
    
  })
  
  

</script>

提交方法还可以下列方法B,方法B可随时触发提交,第一种方法需把必填项填完才触发提交。

window.checkCustomize = function(){
    var flag = true; //返回值true:继续流转,flase:阻断提交
    //...
    return flag;
}
  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
OA是一款企业级办公自动化软件,它提供了丰富的功能和模块,其中包括明细表功能。明细表是一种用于存储和展示多行数据的表格形式,常用于处理复杂的业务逻辑和数据关联。 如果你想计算明细表中两个时间字段的时间差,可以按照以下步骤进行操作: 1. 首先,确定明细表中存储时间的字段名称,假设为"startTime"和"endTime"。 2. 在明细表的脚本中,使用JavaScript编写计算时间差的函数。可以使用Date对象来处理时间相关的操作。 3. 在函数中,获取每行数据的"startTime"和"endTime"字段的值,并将它们转换为Date对象。 4. 使用Date对象的getTime()方法获取时间戳,然后计算时间差。 5. 最后,将计算得到的时间差返回或者进行其他操作。 下面是一个示例代码,用于计算明细表中两个时间字段的时间差: ```javascript function calculateTimeDifference() { var rows = $api.getDataList("明细表名称"); // 获取明细表数据 for (var i = 0; i < rows.length; i++) { var startTime = new Date(rows[i].startTime); // 转换为Date对象 var endTime = new Date(rows[i].endTime); // 转换为Date对象 var timeDifference = endTime.getTime() - startTime.getTime(); // 计算时间差,单位为毫秒 // 进行其他操作,比如将时间差保存到另一个字段中 rows[i].timeDifference = timeDifference; } $api.saveDataList("明细表名称", rows); // 保存修改后的明细表数据 } ``` 请注意,以上代码仅为示例,具体的实现方式可能会根据你的具体需求和OA的版本有所不同。你需要根据实际情况进行调整和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值