实践案例---DEP实现字段联动更新,一个字段变化带出另一个字段
【概述】
在产品应用过程中,为了提升用户体验,提高用户满意度,会遇到不同的应用控制需求,比较普遍的需求是,如何通过某字段的变化来联动实现另一字段的变化的控制需求。通过本文的简单介绍,读者可以掌握“如何通过DEP动态扩展平台编写扩展脚本”、“如何实现字段的联动控制需求”等等。
【需求案例】
销售出库单要保证出库的物料的计量单位,由物料携带而来,且不可进行用户修改!
【需求分析】
1.确认控制需求界面
首先为保证出库物料的计量单位,由物料携带而来,且不可进行用户修改,其控制需求界面,应当是销售出库单的新增/编辑界面;
2.确认字段联动的事件监听
物料字段是属于销售出库单分录的标准字段,因此要实现物料字段联动效果,应当把逻辑控制脚本写在分录表格值更新事件监听上;
3.确认DEP扩展点
物料字段的联动更新事件,是写在分录表格控件上,因此只需要加载新增/编辑界面的时候,仅执行一次即可,故脚本扩展点,应当写在onload方法的后置脚本最为合适
【实现方案】
1.通过《应用中心-企业建模-业务对象建模-动态扩展平台-动态扩展平台高级版》,导入销售出库单的动态扩展方案(如已存在扩展方案,就无需重新导入)
2.打开销售出库单编辑界面,单击扩展定义,进入扩展定义界面,使用界面加载的后置脚本
3.实现出库物料的计量单位,由物料携带而来,且不可进行用户修改的DEP脚本写入后置脚本后,保存
参考脚本:DEP扩展开发参考脚本
//定义物料更新事件 var materialChangeEvent = function(event,methodName){ if(methodName == "equals"){ return this == event;} if(methodName == "editStopping"){//表格分录事件编辑结束时调用 var kdtEntrys = pluginCtx.getKDTable("detailTable"); var rowIndex = kdtEntrys.getSelectManager().getActiveRowIndex();//事件触发时,所在行; var colIndex = kdtEntrys.getSelectManager().getActiveColumnIndex();//事件触发时,所在列; if (kdtEntrys.getColumn("materialNum").getColumnIndex() == colIndex) {//事件触发时,判断触发的列是否是物料编码字段,若是则走ture的逻辑 kdtEntrys.getCell(rowIndex,"unit").getStyleAttributes().setLocked(true);//设置计量单位锁定 } } }; pluginCtx.getKDTable("detailTable").getColumn("unit").getStyleAttributes().setLocked(true);//初始化,加载界面时,默认要设置计量单位锁定 pluginCtx.getKDTable("detailTable").addKDTEditListener(materialChangeEvent);//添加物料更新事件至表格分录中
特别注意:
表格分录名如何确认及获取?
不同单据的编辑界面,其表格分录名不一定相同,通过扩展定义,上下文页签,界面控件,进行展示确认,如下:
计量单位字段如何确认及获取?物料编码也同理!
4.保存及启用销售出库单的扩展方案
【实现效果】
1.通过《应用中心-供应链管理-库存管理-出库业务-销售出库新增》或者《应用中心-供应链管理-销售出库-销售出库单新增》等功能菜单打开新增界面,保存单据信息
2.通过《应用中心-供应链管理-库存管理-出库业务-销售出库维护》或者《应用中心-供应链管理-销售出库-销售出库单维护》等功能菜单打开序时簿列表界面,修改单据信息
实践案例---DEP实现字段联动更新,一个字段变化带出另一个字段
【概述】在产品应用过程中,为了提升用户体验,提高用户满意度,会遇到不同的应用控制需求,比较普遍的需求是,如何通过某字段的变化来联动...
点击下载文档
本文2024-09-16 21:57:56发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-45063.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章