【车间设置】列表更新行政组织二开指导

栏目:云星瀚知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

【车间设置】列表更新行政组织二开指导

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 案例需求描述【车间设置】模板默认的编码和名称字段已隐藏,改用【行政组织】的编码名称作为基础资料编码和名称。该单在保存时将【行政...
点击下载文档
上一篇:生产日历设置下一篇:项目参数
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息