实践案例---DEP实现字段联动更新,一个字段变化带出另一个字段原创
金蝶云社区-郑南通
郑南通
10人赞赏了该文章 474次浏览 未经作者许可,禁止转载编辑于2024年03月15日 09:32:41

【概述】

在产品应用过程中,为了提升用户体验,提高用户满意度,会遇到不同的应用控制需求,比较普遍的需求是,如何通过某字段的变化来联动实现另一字段的变化的控制需求。通过本文的简单介绍,读者可以掌握“如何通过DEP动态扩展平台编写扩展脚本”、“如何实现字段的联动控制需求”等等。

【需求案例】

销售出库单要保证出库的物料的计量单位,由物料携带而来,且不可进行用户修改!

【需求分析】

1.确认控制需求界面

首先为保证出库物料的计量单位,由物料携带而来,且不可进行用户修改,其控制需求界面,应当是销售出库单的新增/编辑界面;

2.确认字段联动的事件监听

物料字段是属于销售出库单分录的标准字段,因此要实现物料字段联动效果,应当把逻辑控制脚本写在分录表格值更新事件监听上;

3.确认DEP扩展点

物料字段的联动更新事件,是写在分录表格控件上,因此只需要加载新增/编辑界面的时候,仅执行一次即可,故脚本扩展点,应当写在onload方法的后置脚本最为合适

【实现方案】

1.通过《应用中心-企业建模-业务对象建模-动态扩展平台-动态扩展平台高级版》,导入销售出库单的动态扩展方案(如已存在扩展方案,就无需重新导入)

image.png

image.png

image.png

2.打开销售出库单编辑界面,单击扩展定义,进入扩展定义界面,使用界面加载的后置脚本

image.png

3.实现出库物料的计量单位,由物料携带而来,且不可进行用户修改的DEP脚本写入后置脚本后,保存

image.png

参考脚本: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);//添加物料更新事件至表格分录中

特别注意:

  • 表格分录名如何确认及获取?

不同单据的编辑界面,其表格分录名不一定相同,通过扩展定义,上下文页签,界面控件,进行展示确认,如下:image.png

  • 计量单位字段如何确认及获取?物料编码也同理!

image.png

4.保存及启用销售出库单的扩展方案

image.png

【实现效果】

1.通过《应用中心-供应链管理-库存管理-出库业务-销售出库新增》或者《应用中心-供应链管理-销售出库-销售出库单新增》等功能菜单打开新增界面,保存单据信息

image.png

2.通过《应用中心-供应链管理-库存管理-出库业务-销售出库维护》或者《应用中心-供应链管理-销售出库-销售出库单维护》等功能菜单打开序时簿列表界面,修改单据信息

image.png

image.png










图标赞 10
10人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0