解答:
① 分录数据不允许重复,重复提示,如物料1,再加物料1提示
② 分录数据锁定,某个字段或者整行不允许修改
③ 分录操作列某操作只能对创建人可见
一、重复数据提示
二、字段锁定
三、操作列操作隐藏
四、插件代码部分如下
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
全部插件代码,附件自行下载
【emoji】
20210323.rar(2.01KB)
推荐阅读