泛微E9开发 根据判断条件,控制字段的编辑/必填属性

1、需求说明

当字段“填报人”和字段“姓名”的值相同时,那么明细表1的“预计完成时间”必填(系统自动变更字段属性),否则“预计完成时间”可编辑不必填。

  1. “填报人” <> “姓名” :预计完成时间可编辑

在这里插入图片描述

  1. “填报人” = “姓名” :预计完成时间必填
    在这里插入图片描述

2、实现方法

代码块

  var tbrField = WfForm.convertFieldNameToId("tbr");
  var xmField = WfForm.convertFieldNameToId("xm"); 
  var yjwcsjDt1 = WfForm.convertFieldNameToId("yjwcsj","detail_1");
  
  function ChangeDetailFieldAttr(fieldName,attr){
    var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");
    for(var i = 0;i<rowArr.length;i++){
      WfForm.changeFieldAttr(fieldName+"_"+rowArr[i],attr);
    }
  }
  
  jQuery(document).ready(function(){    
    
    //值触发
    WfForm.bindFieldChangeEvent(tbrField+','+xmField,function(obj,id,value){
      var tbrValue = WfForm.getFieldValue(tbrField);
      var xmValue = WfForm.getFieldValue(xmField);
      var attr = 2;
      if(tbrValue == xmValue){
        attr = 3;
      }
      ChangeDetailFieldAttr(yjwcsjDt1,attr);
    });
    
    //新增明细行完成后执行
    WfForm.registerAction(WfForm.ACTION_ADDROW+"1", function(index){
      var tbrValue = WfForm.getFieldValue(tbrField);
      var xmValue = WfForm.getFieldValue(xmField);
      if(tbrValue == xmValue){
        WfForm.changeFieldAttr(yjwcsjDt1+"_"+index,3);
      }else{
        WfForm.changeFieldAttr(yjwcsjDt1+"_"+index,2);
      }
    });     
   

3、扩展知识点

1. 注册钩子事件,指定动作完成后触发

支持多次调用注册,按注册的先后顺序依次执行

类型说明
WfForm.ACTION_ADDROW添加明细行,需拼明细表序号
WfForm.ACTION_DELROW删除明细行,需拼明细表序号
1.1 接口名称及参数说明

registerAction: function(actionname, fn)

参数参数类型必须说明
actionnameString 明细行,需拼明细表序号动作类型,详见上表
fnFunction触发事件
1.2 案例

//下标从1开始,明细1添加行触发事件,注册函数入参为新添加行下标
WfForm.registerAction(WfForm.ACTION_ADDROW+“1”, function(index){
alert(“添加行下标是”+index);
}); //下标从1开始,明细1添加行触发事件,注册函数入参为新添加行下标

//下标从1开始,明细2删除行触发事件
WfForm.registerAction(WfForm.ACTION_DELROW+“2”, function(arg){
alert(“删除行下标集合是”+arg.join(“,”));
}); //下标从1开始,明细2删除行触发事件

2. 改变单个字段显示属性(只读/必填等)

changeFieldAttr: function(fieldMark, viewAttr)

2.1 参数说明
参数参数类型必须说明
fieldMarkString字段标示,格式field${字段ID}_${明细行号}
viewAttrint改变字段的状态,1:只读,2:可编辑,3:必填,4:隐藏字段标签及内容,5:隐藏字段所在行(行内单元格不要存在行合并)
2.2 案例

WfForm.changeFieldAttr(“field110”, 1); //字段修改为只读

WfForm.changeFieldAttr(“field110”, 4); //字段标签以及内容都隐藏,效果与显示属性联动隐藏一致,只支持主表字段

  • 24
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值