单据体简单使用原创
金蝶云社区-生态
生态
8人赞赏了该文章 2474次浏览 未经作者许可,禁止转载编辑于2021年03月29日 11:17:16

解答:

     ①  分录数据不允许重复,重复提示,如物料1,再加物料1提示

     ②  分录数据锁定,某个字段或者整行不允许修改

     ③  分录操作列某操作只能对创建人可见


一、重复数据提示

image.png

二、字段锁定

image.png

三、操作列操作隐藏

image.png

四、插件代码部分如下

entryGridBindData方法

 @Override
 public void entryGridBindData(EntryGridBindDataEvent e) {
  // TODO Auto-generated method stub
  EntryGridBindDataListener.super.entryGridBindData(e);
  // 单据体已有数据的,可以这方法设置已有数据某些字段不可以编辑,分页改变时触发,初始化数据时触发
  for (RowDataEntity row : e.getRows()) {
   int rowIndex = row.getRowIndex();
   this.getView().setEnable(false, rowIndex, "kdec_textfield6");
  }
 }


addPackageDataListener

 public void entryOperation() {
  EntryGrid entryGrid = this.getControl(KEY_ENTRYENTITY);
  entryGrid.addPackageDataListener(pkEvent -> {
   if (pkEvent.getSource() instanceof OperationColumn
     && "kdec_operationcolumnap".equalsIgnoreCase(((OperationColumn) pkEvent.getSource()).getKey())) {
    List<OperationColItem> operationColItems = (List<OperationColItem>) pkEvent.getFormatValue();
    //创建人之外都不能看到这个单的操作列的删除分录操作
    DynamicObject creator = (DynamicObject) this.getModel().getValue("creator");
    String creatorid = creator.getString("id");
    String userId = RequestContext.get().getUserId();
    if(!StringUtils.equals(userId, creatorid)) {
     operationColItems.get(1).setVisible(false);
    }
   }
  });
 }


beforePropertyChanged

image.png

全部插件代码,附件自行下载

【emoji】

20210323.rar(2.01KB)

赞 8