EAS DEP 开发实操练习指导
一、 实操练习指导说明
本文档用于描述《EAS DEP 开发》课程相关的实操练习案例场景及指导。学员请按照案
例场景说明完成所要求的开发练习,并将结果发送到邮箱:duihua_liu@kingdee.com。请在
完成线上的理论考试后,按照本文档的要求完成实操练习,经审核通过后,可以在线申请
DEP 开发特训营的合格证书。
二、 DEP 开发练习说明
1. DEP 基础开发
1.1.1 新建方案
1) 新建 DEP 方案
新建 DEP 方案取名”课程练习方案”。
1.1.2 导入元数据
1) 导入采购入库单
将供应链模块的采购入库单导入新建的 DEP 方案。
1.1.3 字段设置
1) 可用性
将采购入库单编辑界面表头的”业务日期”字段设置为-不可见。
2) 显示名称
将采购入库单编辑界面表头的”币别”字段的名称设置为-”币别 DEP”。
1.1.4 新增字段
1) 数字字段
在采购入库单编辑界面表头添加 3 个数字类型字段:”单据” ”数量” ”总和”。
2) 文本字段
在采购入库单编辑界面表头添加文本类型字段:”币别编码”。
3)
F7 字段
在采购入库单编辑界面表头添加 F7 类型字段:”供应商”。
1.1.5 个性化布局方案
1) 创建个性化布局方案
为采购入库单编辑界面创建个性化布局方案:”采购入库方案 A”。
2) 个性化布局方案设置
在”采购入库方案 A”中,将”付款方式”字段的名称设置为-” 付款方式个性化”。
在”采购入库方案 A”中,为”币别 DEP”字段设置更新事件,将其编码属性带到”币别编码”
字段。
在”采购入库方案 A”中,为”单据” ”数量”字段设置更新事件,设置计算公式:总和=单
据*数量,使得总和能自动计算。
2. DEP 脚本开发案例
1.2.1 控件属性脚本
1) 设置可见性
表头控件隐藏:
pluginCtx.getKDTextField("txtDescription").setVisible(false);
分录列隐藏:
pluginCtx.getKDTable("kdtEntries").getColumn("mat").getStyleAttributes().setHid
ed(true);
注意:这段脚本可以写在 onLoad 扩展点的后置脚本,但不能保证控件最终状态如脚本所写,
因为部分业务代码可能会重新设置控件的状态。
2) 设置可用性
表头控件锁定:
pluginCtx.getKDBizPromptBox("prmtMat").setEnabled(false);
分录列锁定:
pluginCtx.getKDTable("kdtEntries").getColumn("amount").getStyleAttributes().set
Locked(true);
注意:这段脚本可以写在 onLoad 扩展点的后置脚本,但不能保证控件最终状态如脚本所写,
因为部分业务代码可能会重新设置控件的状态。
1.2.2 必录逻辑脚本
1) 设置必录属性脚本
可在 onload()方法添加扩展脚本
pluginCtx.getKDTextField("txtDescription").setRequired(true);
2) 特殊条件必录脚本
根据条件决定必录,特殊条件判断,以及自定义提示。可在保存值、保存、提交扩展节点添
加以下前置脚本实现。
//根据条件决定必录
if(pluginCtx.getKDTextField("txtstatus").getText().startsWith("0101")){
//状态为 0101 时,NBA 字段为必录
var value=pluginCtx.getKDBizPromptBox("prmtNBA").getValue();
if(value==null){
com.kingdee.eas.util.client.MsgBox.showInfo("NBA 字段不能为空!");
com.kingdee.eas.util.SysUtil.abort();
}
}
1.2.3 监听脚本
1) 字段带出脚本
选择职员后,将职员名称带出
//F7 控件增加值改变监听
pluginCtx.getKDBizPromptBox("prmtPerson").addDataChangeListener(function (event)
{
//获取职员 F7 信息
var personInfo=pluginCtx.getKDBizPromptBox("prmtPerson ").getValue();
var name=personInfo.get("name"));//获取职员名称
//将职员名称赋值到名称控件。
pluginCtx.getKDTextField("txtName").setStringValue(name);
});
1.2.4 调用系统 API
1) 查询 F7 对象
设置默认值
可在界面的 onload 扩展点后置脚本中添加过滤,参考实现。
//如果是新增界面,则设置默认值
if(pluginCtx.getOprtState().equals("ADDNEW")){
var id="EadXbj&HCHIz ";
//根据 id 获取 F7 值对象
var fkfsInterface = com.kingdee.bos.BOSObjectFactory.createRemoteCommonBOSObject
(new com.kingdee.bos.metadata.MetaDataPK("com.kingdee.eas.custom.app.Currency"));
var fkfsOPK =
new
com.kingdee.bos.dao.ormapping.ObjectUuidPK(com.kingdee.bos.util.BOSUuid.read(id));
var fkfsOBJ = fkfsInterface.getValue(fkfsOPK);
pluginCtx.getKDBizPromptBox("prmtcurrency").setValue(fkfsOBJ);
}
三、 实操练习结果提交说明
1. 截图
每个操作点完成后,请截取相关操作结果截图,如,新建 DEP 方案完成后,请截取对应
的方案管理界面截图,附在题后保存后提供。
2. 开发包
导出并提供对应的 DEP 方案。