ImageVerifierCode 换一换
格式:DOC , 页数:52 ,大小:1.71MB ,
资源ID:1624955      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-1624955.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(DEP扩展脚本编写指南.doc)为本站会员(99****p)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

DEP扩展脚本编写指南.doc

1、动态扩展平台扩展脚本编写指南EAS产品部技术架构部 贺召军 导读阐述基于动态扩展平台 DEP开发的扩展脚本编写指南和相关注意事项,通过本规范指导开发工作。适用读者实施人员、现场二次开发人员、研发中心客户化开发人员。适用范围金蝶 EASV7.0SP1。简介 .3指定作用域 .3变量 .4函数 .4使用扩展脚本 .5第一章 上下文 .51.1 插件上下文(pluginCtx ) .51.1.1 获取服务端上下文 .61.1.2 获取客户端上下文 .71.1.3 获取界面控件 .71.2 方法上下文(methodCtx) .81.2.1 获取方法参数 .81.2.2 获取方法返回值 .81.2.3

2、设置方法返回值 .81.2.4 方法上下文常用方法 .81.3 快速插入上下文脚本 .9第二章 调用业务方法 .92.1 调用方式 .102.1.1 客户端调用业务方法方式 .112.1.2 服务器端调用业务方法方式 .132.2 快速插入业务方法调用 .13第三章 自定义异常 .143.1 定义自定义异常 .143.2 脚本中调用自定义异常 .143.2.1 服务器端调用异常方式 .143.2.2 客户端异常调用方式 .153.3 快速插入自定义异常调用 .15第四章 自定义基础资料或单据 .164.1 获取自定义基础资料和单据远程接口 .164.2 传入参数 .174.3 返回值类型 .1

3、84.4 示例脚本 .19第五章 给常用控件添加事件 .205.1 F7 .205.2 CheckBox.215.3 ComboBox .215.4 Button.215.5 TextFiled.215.6 Tree .235.7 TabledPane.235.8 Table .23第六章 使用函数库 .246.1 定义函数库 .246.2 使用函数库 .26第七章 打点提示 快速编写脚本 .277.1 环境准备 .277.2 使用打点提示 .29第八章 调试脚本 .298.1 调试准备 .298.1.1 客户端调试 .298.1.2 服务器端调试 .308.2 进行调试 .318.2.1 变

4、量查看 .328.2.2 使用脚本控制台 .328.3 监听事件方法内部调试 .338.4 调试完成 .33第九章 常见问题 .349.1 在脚本里添加里添加了监听器,在代码里删除监听器的时候的报中断错误 .349.2 扩展脚本不能调用当前类的 private 方法,不能用 super 来调用父类方法 .359.3 扩展脚本中不能使用强制类型转换 .35附录一 关于 Rhino.37Rhino 语法简介 .37历史简介 .37JavaScript 中的 “Java“ .38Rhino 和 java 语言的具体区别 .39数组 .39联合数组 .39通过属性进行循环 .40正则表达式 .40函数

5、显式声明 .41添加方法 .42添加更多的方法 .42使用原型 .43无类编码 .43基于类的语言与基于原型的语言的比较 .44附录二 案例脚本 .45简介扩展脚本运行引擎为 Rhino,基于 javascript 语法,运行期解释执行。jvm 中的类的方法和属性均可应用于脚本中,调用方式类似于代码调试。比如下面一段脚本:/客户端设置编码规则脚本/定义引入变量var easNames = JavaImporter();/引入指定包easNames.importPackage(P.kingdee.eas.base.codingrule); /使用引入作用域with(easNames) /从上下文

6、中获取编辑界面编辑对象var editData = pluginCtx.getDataObject();/取得控件var bizOrgUnit = pluginCtx.getKDBizPromptBox(“prmtSaleOrgUnit“).getValue();/远程方法调用获取编码var number = CodingRuleManagerFactory.getRemoteInstance().getNumber(editData, bizOrgUnit.getId();/设置 TextField 编码pluginCtx.getKDTextField(“txtNumber“).setTex

7、t(number); 指定作用域在示例代码中var easNames = JavaImporter();easNames.importPackage(P.kingdee.eas.base.codingrule);和 java 中 import 类似,这里使用 JavaImporter()的 importPackage 引入包com.kingdee.eas.base.codingrule,CodingRuleManagerFactory 属于该包中的内容,但其处在with(easNames) 中,所以不需要指定其全路径,即可调用 getRemoteInstance()方法,如果需要引入其它包,则

8、增加 easNames.importPackage(Packages.包路径);即可。如果没使用with 指定作用域,则必须使用全名称(包名 +类名) 。注意:当引入的不同包路径下有重复的类名称情况下,在 with(easNames)作用域中,该类名在引用时也需要指定其全路径。变量使用 var 声明变量,声明时无具体类型运行期确定类型。例如 var editData = pluginCtx.getDataObject();声明 editData 为编辑界面的编辑对象。变量的定义声明遵循javascript 语法。函数使用 function 关键字开始函数的声明,在函数声明中看不到类型,包含参数

9、和返回值,如下所示/创建值对象function createNewData(entityBosType, entityPK)var objectValue = new com.kingdee.eas.ep.DataBaseCustomInfo();objectValue.setBOSType(entityBosType);objectValue.setPK(new com.kingdee.bos.metadata.MetaDataPK(entityPK);return objectValue;然后就可以调用了定义的函数了var bizInterface = com.kingdee.bos.BO

10、SObjectFactory.createRemoteCommonBOSObject(new com.kingdee.bos.metadata.MetaDataPK(entityPK);bizInterface.addnew(createNewData(entityBosType, entityPK); /新增在 javaScript 中没有类的概念,接口实现也使用关键字 function 声明。比如给一些控件增加监听器:/F7 控件增加值改变监听pluginCtx.getKDBizPromptBox(“prmtHROrg“).addDataChangeListener(function (e

11、vent)com.kingdee.eas.util.client.MsgBox.showInfo (“DATA CHANGED:“ +event.getOldValue() + “$“ + event.getNewValue(););/KDTable 增加表格编辑事件监听pluginCtx.getKDTable(“kdtEntrys“).addKDTEditListener(function(event,methodName)if(methodName = “editStopped“)com.kingdee.eas.util.client.MsgBox.showInfo(“$EditStopp

12、ed“););使用扩展脚本扩展定义:针对扩展点编写扩展脚本。扩展点:能够支持扩展脚本的公用业务方法,需要改变其执行效果预期的地方。在实体或 ui 里扩展定义可编写扩展脚本,选择某个叶子节点即可编写针对该业务方法的前置脚本和后置脚本。前置脚本在业务方法被调用前被执行,后置脚本在业务方法返回后被执行。脚本中可以使用业务方法的参数,也可以设置业务方法的返回值。第一章 上下文扩展脚本中封装了两种上下文,插件上下文(pluginCtx)和方法上下文(methodCtx ) 。这两种上下文为系统内置,无需额外的声明或获取。pluginCtx 主要存放当前执行环境的相关信息,比如服务端的 Context,客

13、户端的界面控件、界面状态、编辑对象等。methodCtx 存放当前操作的相关信息,包含方法参数和方法返回值。1.1 插件上下文( pluginCtx)客户端和服务端的插件上下文存储的内容不一样,实现方式上,其分别对应于两个java 类,com.kingdee.eas.ep.app.BeanParam 和 com.kingdee.eas.ep.client.UIParam。这两个类中的方法均可以在脚本中直接使用。上下文都存在 get 和 put 方法。脚本中直接使用 get(key)获取值,put(key,value)设置值。1.1.1 获取服务端上下文服务端通过 pluginCtx.getCo

14、ntext()获取服务端上下文,比如:/服务端更新单据状态var imp = JavaImporter(); imp.importPackage(P.kingdee.eas.util.app); with(imp)/获取服务端上下文var ctx = pluginCtx.getContext();/获取方法参数var billId = methodCtx.getParamValue(0); var sql = “update T_SD_SALEORDER SET FBASESTATUS = “ + status + “ WHERE FID = “+billId+“;/执行 sql,使用服务器端

15、上下文DbUtil.execute(ctx, sql); 服务器端上下文常见用法描述 服务器端上下文用法获取当前用户 com.kingdee.eas.util.app.ContextUtil.getCurrentUserInfo(pluginCtx.getContext();获取 client 端 IP com.kingdee.eas.util.app.ContextUtil. getClientIP(pluginCtx.getContext();获取 client 端名称 com.kingdee.eas.util.app.ContextUtil.getClientName(pluginCtx

16、.getContext();获取当前 CU com.kingdee.eas.util.app.ContextUtil. getCurrentCtrlUnit(pluginCtx.getContext();获取当前财务组织(公司) com.kingdee.eas.util.app.ContextUtil. getCurrentFIUnit(pluginCtx.getContext();获取当前行政组织 com.kingdee.eas.util.app.ContextUtil.getCurrentAdminUnit(pluginCtx.getContext();获取当前组织 com.kingdee

17、.eas.util.app.ContextUtil. getCurrentHRUnit (pluginCtx.getContext();获取当前数据库类型 com.kingdee.eas.util.app.ContextUtil. getDbType (pluginCtx.getContext();获取当前组织单元 com.kingdee.eas.util.app.ContextUtil.getCurrentOrgUnit(pluginCtx.getContext();1.1.2 获取客户端上下文客户端插件上下文封装了部分常用的内容,具体如下:描述 获取客户端上下文获取界面上下文 java.u

18、til.Map getUIContext()获取组织上下文 com.kingdee.bos.Context getMainOrgContext()获取界面状态,比如新增、编辑java.lang.String getOprtState()获取当前编辑对象,编辑界面的 editDatacom.kingdee.bos.dao.IObjectValue getDataObject()获取界面绑定 com.kingdee.bos.appframework.databinding.DataBinder getDataBinder()获取规则处理 com.kingdee.eas.framework.clie

19、nt.UILifeCycleHander getLifeCycleHander()获取当前界面实例 com.kingdee.bos.ui.face.IUIObject getUI()获取组织 pluginCtx.getUIContext().get(“sysContext“).getCurrentFIUnit()获取界面状态 pluginCtx.getUI().getOprtState();获取界面 Action pluginCtx.getUI().getActionManager().getAction(“actionName“)直接通过 pluginCtx 调用即可,比如 pluginCt

20、x.getUI 即可获取当前界面实例。1.1.3 获取界面控件界面的控件可以通过 get + 控件类型 + ( + 控件名 +)的方式获得,比如获取单据分录的表格可以这样 pluginCtx.getKDTable(“kdtEntries“)。控件 示例f7 控件 pluginCtx.getKDBizPromptBox(“name“);容器控件 pluginCtx.getKDContainer(“name“);textField 控件 pluginCtx.getKDTextField(“name“);KDTextArea 控件 pluginCtx.getKDTextArea (“name“);K

21、DPasswordField 控件 pluginCtx.getKDPasswordField (“name“);KDFormattedTextField 控件 pluginCtx.getKDFormattedTextField (“name“); KDDateTimeField 控件 pluginCtx.getKDDateTimeField (“name“);KDCheckBox 控件 pluginCtx.getKDCheckBox(“name“);KDRadioButton 控件 pluginCtx.getKDRadioButton (“name“);KDMenu 控件 pluginCtx.getKDMenu(“name“);KDMenuItem 控件 pluginCtx.getKDMenuItem(“name“);KDTree 控件 pluginCtx.getKDTree(“name“);KDTreeView 控件 pluginCtx.getKDTreeView(“name“);KDList 控件 pluginCtx.getKDList(“name“);KDTimePicker 控件 pluginCtx.getKDTimePicker(“name“);KDDatePicker 控件 plugi

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。