参考 泛微在线文档 (e-cloudstore.com)

E9前端的所有接口统一封装在全局对象window.WfForm中,大部分操作都可使用WfForm实现。虽然官方不建议使用jquery,但有些需求还是得靠它来实现。

  1. 如何实现明细字段只读、编辑、必填?

以下涉及2个场景:

一个是新增明细行时,实现属性变化;

一个是变动主表字段时,实现属性变化;

<script>
   jQuery(document).ready(function(){
    
    //明细表1,新增行触发事件
    WfForm.registerAction(WfForm.ACTION_ADDROW+"1", function(index){
 
      var origValue = WfForm.getFieldValue("field10821"); //主表字段值
      selectChange(origValue,index);
      
    });     
 
    //绑定主表字段变更事件
    WfForm.bindFieldChangeEvent("field10821", function(obj,id,value){
 
      var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");
      for(var i=0; i<rowArr.length; i++){
          var rowIndex = rowArr[i];
          if(rowIndex !== ""){
              selectChange(value,rowIndex);
          }
      }
          
    });   
    
    //明细行属性变更
      function selectChange(_value,_i){
        var field_poid = "field10815_" + _i;
        var field_itemid = "field10813_" + _i;
        
          if (_value == "1") {
            //清空poid的值,并设置属性为必填
            WfForm.changeSingleField(field_poid , {value:""}, {viewAttr:"3"}); 
            //设置itemid属性为只读
            WfForm.changeFieldAttr(field_itemid, 1);
        }
        else {
            //设置poid属性为编辑
            WfForm.changeFieldAttr(field_poid, 2);
            //清空itemid的值,并设置属性为编辑
            WfForm.changeSingleField(field_itemid, {value:""}, {viewAttr:"2"}); 
          }                
      }    
  });
</script>
  1. 如何实现明细行的列隐藏?

官方API只有控制明细数据行的显示及隐藏,没有给出如何隐藏列。本人实测,可通过以下步骤来实现此功能。

step 1,进入流程表单的模版编辑界面,并进入明细行选择需要隐藏的列

step 2,右键D列,选择列自定义属性,输入自定义的属性值;

注意:设置自定义属性后,D会变为红色,明显的区别于其它列

step 3,在明细行属性变更的方法selectChange中添加如下代码

//明细行属性变更
function selectChange(_value,_i){
    //......
    if (_value == "1") {
        //隐藏poid列
        $(".etc_po").each(function () {
              $(this).hide();
            });
        }
    else {
        //显示poid列
        $(".etc_po").each(function () {
              $(this).show();
            });
        }
    }
    //......                
}

大功告成

Last modification:August 20, 2023
如果觉得我的文章对你有用,请随意赞赏