控制子功能列的显隐

在子功能grid的激活(activate)事件中写入方法

//启用grid的编辑插件(如果不控制列表编辑可以不写)
    var cellEdit = self.getPlugin('cellEdit');
    cellEdit.enable();
    //获得grid的cloumns
    var headerCt = self.headerCt;
    //获得具体列
    var LCKZZDZTZGN_ZD1 = headerCt.getCmp('LCKZZDZTZGN_ZD1');
    var LCKZZDZTZGN_ZD2 = headerCt.getCmp('LCKZZDZTZGN_ZD2');
    //先恢复列的状态
    LCKZZDZTZGN_ZD1.show();
    LCKZZDZTZGN_ZD2.show();
    var pkValue = self.mainData.LCKZZDZTZGN_WJ;//LCKZZDZTZGN_WJ 子功能的外键
    if(JE.isEmpty(pkValue)){return false};
    //获得当前数据主功能的流程信息
    var resObj = JE.ajax({
        url: JE.getUrlMaps('je.core.wf.taskInfo', 'loadWfInfo'),
        params: {
            tableCode: 'JE_PFCS_LCKZZDZT',//主功能表名
            pkValue: pkValue,
            doTaskName: false,
            emptyPDID:''
        }
    });
    if(resObj.success){
         var obj = resObj.obj;
         self.newWfIf = obj;
         //根据选中的节点信息写逻辑
        if(obj.taskName == '任务2'){
            LCKZZDZTZGN_ZD1.hide();
        }else if(obj.taskName == '任务3'){
            LCKZZDZTZGN_ZD1.hide();
            LCKZZDZTZGN_ZD2.hide();
        }
    }

控制子功能列是否可编辑

  • 1.先在主功能的工作流进行配置

  • 想控制那个节点的,就修改那个节点的

  • 在字段的编辑前(beforeedit)事件写入代码


      //grid对象
      var grid = context.grid;
      //主功能的工作流信息
      var newWfIf = grid.newWfIf;
      if(JE.isNotEmpty(newWfIf)){
          if(newWfIf.taskName == '任务3'){
              return false; //不可编辑
          }else{
              return true; //可编辑
          }
      }else{
          return true;
      }

控制子功能表单字段只读/显隐

第一种方法

  • 在子功能表单添加设置值之后(aftersetvalues)事件

    function(form){
      //获得当前数据主功能的流程信息
      var resObj = JE.ajax({
          url: JE.getUrlMaps('je.core.wf.taskInfo', 'loadWfInfo'),
          params: {
              tableCode: 'JE_PFCS_LCKZZDZT',//主功能表名
              pkValue: form.mainData.LCKZZDZTZGN_WJ,//LCKZZDZTZGN_WJ 子功能的外键
              doTaskName: false,
              emptyPDID:''
          }
      });
      //获得字段对象
      var LCKZZDZTZGN_ZD1 = form.form.findField('LCKZZDZTZGN_ZD1');
      var LCKZZDZTZGN_ZD2 = form.form.findField('LCKZZDZTZGN_ZD2');
      var LCKZZDZTZGN_ZD3 = form.form.findField('LCKZZDZTZGN_ZD3');
      var LCKZZDZTZGN_ZD4 = form.form.findField('LCKZZDZTZGN_ZD4');
      var LCKZZDZTZGN_ZD5 = form.form.findField('LCKZZDZTZGN_ZD5');
      //先还原字段的状态
      LCKZZDZTZGN_ZD2.show();
      LCKZZDZTZGN_ZD5.show();
      if(resObj.success){
          var obj = resObj.obj;
          if(obj.taskName == '任务2'){
              LCKZZDZTZGN_ZD1.setReadOnly(false);//可编辑
              LCKZZDZTZGN_ZD2.hide();//隐藏
          }else if(obj.taskName == '任务3'){
              LCKZZDZTZGN_ZD3.setReadOnly(false);
              LCKZZDZTZGN_ZD4.setReadOnly(false);
              LCKZZDZTZGN_ZD5.hide();
          }
      }
    }

第二种方法

  • 在 开发=》全局脚本库功能添加方法 doWfChildForm(根据主功能流程数据控制子功能表单字段)
/**
*方法注释
*方法参数自行添加
* @param {Object} form
* @param {Object} params
    params={tableCode:'主功能表名',WJcode:'子功能外键'}
* @param {Array} wfDatas
*   taskName 主功能流程节点 ,edit 可编辑的字段code ,readonly 只读字段code  hide隐藏的字段code
*   wfDatas=[
*      {taskName:'任务2',readonly:['LCKZZDZTZGN_ZD1'],hide:['LCKZZDZTZGN_ZD2']},
*      {taskName:'任务3',readonly:['LCKZZDZTZGN_ZD3','LCKZZDZTZGN_ZD4'],hide:['LCKZZDZTZGN_ZD5']},
*   ]
*/
function(form,params,wfDatas){
   //获得主功能流程数据
    if(JE.isEmpty(form) && JE.isEmpty(params)){
        return false;
    }
     //先把隐藏的字段,只读的状态还原
    Ext.each(wfDatas,function(data){
        var hideData = data.hide || [];
        Ext.each(hideData,function(hideD){
            var field = form.form.findField(hideD);
            //如果被隐藏
            if(field.isHidden()){
                field.show();
            }
        });
        //只读还原
        var readonlyData = data.readonly || [];
        Ext.each(readonlyData,function(readonlyD){
            var field = form.form.findField(readonlyD);
            if(field.readOnly != form.readOnly){
                field.setReadOnly(form.readOnly);
            }
        });
        //编辑还原
        var editData = data.edit || [];
        Ext.each(editData,function(editD){
            var field = form.form.findField(editD);
            if(field.readOnly != form.readOnly){
                field.setReadOnly(form.readOnly);
            }
        });
    });
    var pkValue = form.mainData[params.WJcode];
    if(JE.isEmpty(pkValue)){ return false};
    var resObj = JE.ajax({
        url: JE.getUrlMaps('je.core.wf.taskInfo', 'loadWfInfo'),
        params: {
            tableCode: params.tableCode,
            pkValue: form.mainData[params.WJcode],
            doTaskName: false,
            emptyPDID:''
        }
    });
    if(resObj.success && wfDatas.length > 0){
        var obj = resObj.obj;
        //根据节点数据处理
        Ext.each(wfDatas,function(data){
            if(obj.taskName == data.taskName){
                //字段编辑处理
                var edits = data.edit || [];
                Ext.each(edits,function(e){
                    var field = form.form.findField(e);
                    field.setReadOnly(false);
                });
                //字段编辑处理
                var readonlys = data.readonly || [];
                Ext.each(readonlys,function(r){
                    var field = form.form.findField(r);
                    field.setReadOnly(true);
                });
                //字段隐藏处理
                var hides = data.hide || [];
                Ext.each(hides,function(h){
                    var field = form.form.findField(h);
                    field.hide();
                });
                return false;
            }
        });
    }
}
  • 在子功能表单添加设置值之后(aftersetvalues)事件
    function(form){
    JE.callCustomFn('doWfChildForm',form,
          {tableCode: 'JE_PFCS_LCKZZDZT',WJcode:'LCKZZDZTZGN_WJ'},
          [
              {taskName:'任务2',readonly:['LCKZZDZTZGN_ZD1'],hide:['LCKZZDZTZGN_ZD2']},
              {taskName:'任务3',readonly:['LCKZZDZTZGN_ZD3','LCKZZDZTZGN_ZD4'],hide:['LCKZZDZTZGN_ZD5']},
          ]
      );
    }
最后编辑: 呼丽华  文档更新时间: 2024-03-05 11:49   作者:呼丽华