【车间设置】列表更新行政组织二开指导
1 案例需求描述
【车间设置】模板默认的编码和名称字段已隐藏,改用【行政组织】的编码名称作为基础资料编码和名称。该单在保存时将【行政组织】编码名称赋值给模板默认的编码和名称。在第三张单据引用【车间设置】,而后修改此【车间设置】对应的【行政组织】时,第三张基础资料【车间设置】字段显示的编码和名称会显示有误。
2 解决方案
在【车间设置】列表添加更新车间名称按钮,按钮逻辑为更新所选数据的编码和名称。
3 实现步骤
1.在车间设置列表元数据添加一个按钮-更新车间名称(根据产品规范建议添加进更多按钮的下拉列表中)。
2.按钮绑定空操作(Donothing)并自定义操作标识。
3.新建二开列表插件-继承AbstractListPlugin。
4.重写afterDoOperation方法(如下)。
@Override public void afterDoOperation(AfterDoOperationEventArgs e) { super.afterDoOperation(e);
5.判断是当前操作。
String operateKey = e.getOperateKey(); if ("你的操作标识".equals(operateKey)) {
6.获取列表勾选的数据。
ListSelectedRowCollection selectedRows = getSelectedRows();
7.获取勾选数据id。
Object[] primaryKeyValues = selectedRows.getPrimaryKeyValues();
8.查询要修改的数据,因为要执行update,所以使用BusinessDataServiceHelper的load。
DynamicObject[] workshopsetups = BusinessDataServiceHelper.load( "mpdm_workshopsetup", "id,workshoporg.number,workshoporg.name", new QFilter[]{new QFilter("id", QCP.in, primaryKeyValues)});
9.循环查询结果。
for (DynamicObject workshopsetup : workshopsetups) {
10.循环已选数据。
selectedRows.forEach(selectedRow -> {
11.从数据库结果和已选数据中取id进行匹配。
Long primaryKeyValue = (Long) selectedRow.getPrimaryKeyValue(); Long id = workshopsetup.getLong("id");
12.匹配上的数据执行--将行政组织的编码和名称赋值给车间设置隐藏的编码和名称上。
if (Objects.equals(primaryKeyValue, id)) { workshopsetup.set("number", workshopsetup.getDynamicObject("workshoporg").getString("number")); workshopsetup.set("name", workshopsetup.getDynamicObject("workshoporg").getString("name")); } }); }
13.执行更新数据操作
SaveServiceHelper.update(workshopsetups);
14.更新页面模型
getView().updateView(); } }
4 开发环境及版本
版本无要求。
5 适用单据范围
车间设置。
【车间设置】列表更新行政组织二开指导
1 案例需求描述【车间设置】模板默认的编码和名称字段已隐藏,改用【行政组织】的编码名称作为基础资料编码和名称。该单在保存时将【行政...
点击下载文档
本文2024-09-23 00:01:43发表“云星瀚知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-xinghan-136832.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章