电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

金蝶EAS-DEP扩展脚本编写示例.doc

金蝶EAS-DEP扩展脚本编写示例.doc_第1页
1/87
金蝶EAS-DEP扩展脚本编写示例.doc_第2页
2/87
金蝶EAS-DEP扩展脚本编写示例.doc_第3页
3/87
DEP扩展脚本编写示例EAS技术支持部BOS支持部颜敬忠导读阐述基于动态扩展平台DEP开发的扩展脚本编写指南和相关注意事项,通过本规范指导开发工作。适用读者实施人员、现场二次开发人员、研发中心客户化开发人员。适用范围主要基于金蝶EASV7.5及上版本。75版本以下可做参考使用简介..................................................................................................................................................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设置方法返回值......................................................................................................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返回值类型..............................................................................................................184.4示例脚本..................................................................................................................19第五章给常用控件添加事件........................................................................................................205.1F7......................................................................................................................................205.2CheckBox.........................................................................................................................215.3ComboBox........................................................................................................................215.4Button...............................................................................................................................215.5TextFiled...........................................................................................................................215.6Tree...................................................................................................................................235.7TabledPane........................................................................................................................235.8Table..................................................................................................................................23第六章使用函数库.......................................................................................................................246.1定义函数库......................................................................................................................246.2使用函数库......................................................................................................................26第七章打点提示——快速编写脚本............................................................................................277.1环境准备...........................................................................................................................277.2使用打点提示...................................................................................................................29第八章调试脚本...........................................................................................................................298.1调试准备..........................................................................................................................298.1.1客户端调试...........................................................................................................298.1.2服务器端调试........................................................................................................308.2进行调试..........................................................................................................................318.2.1变量查看...............................................................................................................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函数显式声明........................................................................................................................41添加方法................................................................................................................................42添加更多的方法....................................................................................................................42使用原型................................................................................................................................43无类编码................................................................................................................................43基于类的语言与基于原型的语言的比较.............................................................................44附录二案例脚本...........................................................................................................................45简介扩展脚本运行引擎为Rhino,基于javascript语法,运行期解释执行。jvm中的类的方法和属性均可应用于脚本中,调用方式类似于代码调试。比如下面一段脚本://客户端设置编码规则脚本//定义引入变量vareasNames=JavaImporter();//引入指定包easNames.importPackage(Packages.com.kingdee.eas.base.codingrule);//使用引入作用域with(easNames){//从上下文中获取编辑界面编辑对象vareditData=pluginCtx.getDataObject();//取得f7控件varbizOrgUnit=pluginCtx.getKDBizPromptBox("prmtSaleOrgUnit").getValue();//远程方法调用获取编码varnumber=CodingRuleManagerFactory.getRemoteInstance().getNumber(editData,bizOrgUnit.getId());//设置TextField编码pluginCtx.getKDTextField("txtNumber").setText(number);}指定作用域在示例代码中vareasNames=JavaImporter();easNames.importPackage(Packages.com.kingdee.eas.base.codingrule);和java中import类似,这里使用JavaImporter()的importPackage引入包com.kingdee.eas.base.codingrule,CodingRuleManagerFactory属于该包中的内容,但其处在with(easNames){…}中,所以不需要指定其全路径,即可调用getRemoteInstance()方法,如果需要引入其它包,则增加easNames.importPackage(Packages.包路径);即可。如果没使用with指定作用域,则必须使用全名称(包名+类名)。注意:当引入的不同包路径下有重复的类名称情况下,在with(easNames){作用域中,该类名在引用时也需要指定其全路径。变量使用var声明变量,声明时无具体类型运行期确定类型。例如vareditData=pluginCtx.getDataObject();声明editData为编辑界面的编辑对象。变量的定义声明遵循javascript语法。函数使用function关键字开始函数的声明,在函数声明中看不到类型,包含参数和返回值,如下所示//创建值对象functioncreateNewData(entityBosType,entityPK){varobjectValue=newcom.kingdee.eas.ep.DataBaseCustomInfo();objectValue.setBOSType(entityBosType);objectValue.setPK(newcom.kingdee.bos.metadata.MetaDataPK(entityPK));returnobjectValue;}然后就可以调用了定义的函数了varbizInterface=com.kingdee.bos.BOSObjectFactory.createRemoteCommonBOSObject(newcom.kingdee.bos.metadata.MetaDataPK(entityPK));bizInterface.addnew(createNewData(entityBosType,entityPK));//新增在javaScript中没有类的概念,接口实现也使用关键字function声明。比如给一些控件增加监听器://F7控件增加值改变监听pluginCtx.getKDBizPromptBox("prmtHROrg").addDataChangeListener(function(event){com.kingdee.eas.util.client.MsgBox.showInfo("DATACHANGED:"+event.getOldValue()+"$$$$"+event.getNewValue());});//KDTable增加表格编辑事件监听pluginCtx.getKDTable("kdtEntrys").addKDTEditListener(function(event,methodName){if(methodName=="editStopped"){com.kingdee.eas.util.client.MsgBox.showInfo("$$$$$EditStopped");}});使用扩展脚本扩展定义:针对扩展点编写扩展脚本。扩展点:能够支持扩展脚本的公用业务方法,需要改变其执行效果预期的地方。在实体或ui里扩展定义可编写扩展脚本,选择某个叶子节点即可编写针对该业务方法的前置脚本和后置脚本。前置脚本在业务方法被调用前被执行,后置脚本在业务方法返回后被执行。脚本中可以使用业务方法的参数,也可以设置业务方法的返回值。第一章上下文扩展脚本中封装了两种上下文,插件上下文(pluginCtx)和方法上下文(methodCtx)。这两种上下文为系统内置,无需额外的声明或获取。pluginCtx主要存放当前执行环境的相关信息,比如服务端的Context,客户端的界面控件、界面状态、编辑对象等。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.getContext()获取服务端上下文,比如://服务端更新单据状态varimp=JavaImporter();imp.importPackage(Packages.com.kingdee.eas.util.app);with(imp){//获取服务端上下文varctx=pluginCtx.getContext();//获取方法参数varbillId=methodCtx.getParamValue(0);varsql="updateT_SD_SALEORDERSETFBASESTATUS="+status+"WHEREFID='"+billId+"'";//执行sql,使用服务器端上下文DbUtil.execute(ctx,sql);}服务器端上下文常见用法描述服务器端上下文用法获取当前用户com.kingdee.eas.util.app.ContextUtil.getCurrentUserInfo(pluginCtx.getContext());获取client端IPcom.kingdee.eas.util.app.ContextUtil.getClientIP(pluginCtx.getContext());获取client端名称com.kingdee.eas.util.app.ContextUtil.getClientName(pluginCtx.getContext());获取当前CUcom.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());获取当前HR组织com.kingdee.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.util.MapgetUIContext()获取组织上下文com.kingdee.bos.ContextgetMainOrgContext()获取界面状态,比如新增、编辑java.lang.StringgetOprtState()获取当前编辑对象,编辑界面的editDatacom.kingdee.bos.dao.IObjectValuegetDataObject()获取界面绑定com.kingdee.bos.appframework.databinding.DataBindergetDataBinder()获取规则处理com.kingdee.eas.framework.client.UILifeCycleHandergetLifeCycleHander()获取当前界面实例com.kingdee.bos.ui.face.IUIObjectgetUI()获取组织pluginCtx.getUIContext().get("sysContext").getCurrentFIUnit()获取界面状态pluginCtx.getUI().getOprtState();获取界面ActionpluginCtx.getUI().getActionManager().getAction("actionName")直接通过pluginCtx调用即可,比如pluginCtx.getUI即可获取当前界面实例。1.1.3界面控件界面的控件可以通过get+控件类型+(+控件名+)的方式获得,比如获取单据分录的表格可以这样pluginCtx.getKDTable("kdtEntries")。控件示例f7控件pluginCtx.getKDBizPromptBox("name");容器控件pluginCtx.getKDContainer("name");textField控件pluginCtx.getKDTextField("name");KDTextArea控件pluginCtx.getKDTextArea("name");KDPasswordField控件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控件pluginCtx.getKDDatePicker("name");KDTabbedPane控件pluginCtx.getKDTabbedPane("name");F7控件介绍KDBizPromptBox控件即F7控件的常用属性:1)displayFormat:显示期格式,String类型,以"$fieldname$"表示填入字段,"$$"表示"$"符.取值示例:"$id$+$name$"。在不可编辑时,焦点和非焦点状态的数据展现都使用displayFormat,忽略eidtFormat。2)editFormat:编辑期格式,其它同displayFormat。3)commitFormat:数据提交格式属性。它是展现格式(上面的displayFormat或editFormat都属于展现格式之一)的序列,用“;”隔开。格式为:<展现格式1>[;<展现格式2>[...]]。如:”$id$;$name$“,又如:”$id$+$name$;$id$+$age$”。以后者为例,在提交数据时生成过滤条件为:(id=001andname="username")or(id=001andage=35)。commitFormat暂不支持非String类型字段。如果设置了非String类型的字段作为匹配字段,将查询不到结果。4)queryInfo:查询对象的PK值,String类型。注意:F7用到的queryInfo中的主对象必须有主键字段。5)entityViewInfo:查询条件,EntityViewInfo类型。6)defaultF7UIName属性:设置F7弹出框的类名,如果Selector为null,那么将使用该类名进行反射创建一个弹出框。如果该类名为null,那么将弹出KDCommonPromptDialog。以上几个属性是比较常用的,其他属性可以在参考资料中查看。另外有几点需要注意:1)defaultF7UIName该属性是设置专用F7,与queryInfo相斥。queryInfo是KDBizPromptBox调用通用F7控件,设置通用F7控件的query。2)entityViewInfo该属性一般由调用代码去控制,该属性与queryInfo一样,只在通用F7中有效。3)实际开发中,调用专用F7除了在元数据UI界面配置defaultF7UIName之外,更多的是用KDBizPromptBox.setSelector(KDPromptSelectors)方法。4)实际开发中,调用专用F7用以下方法比较多。常见的错误,开发人员认为专用F7与通用F7一样,配置queryInfo与entityViewInfo即可,其实是不对的。专用F7如何设置query和entityViewInfo,这都是由专用F7提供,一般专用F7都设置好query。专用F7如何设置过滤条件,下面示例,adminF7.setOuterFilterInfo(outerFilterInfo)KDBizPromptBox的其它属性和方法:1.assistInfoLimit:最大历史记录数,最大常用记录数,默认设置100条,私有变量。2.isHistoryRecordEnabled、isMyCommonUseEnabled:是否开启“我的常用”和“历史记录”。这两个属性是同步的,都由“系统-个性化设置-个人信息-个人参数-开启历史记录功能”控制。3.setRecordName:设置记录文件名(一般不需要设置,采用默认)。默认名:用户userID+控件名(如果setQueryInfo,则会根据根据queryInfo设置),我的常用会在后面加上”MyCommonUse”。该历史记录不会根据组织进行隔离,如果想要实现组织隔离或者其他隔离,则需要开发调用该方法,设置记录文件名(文件名字符串最大长度200)。4.setQueryInfo:设置queryInfo,如果元数据UI未配置,可以在这里进行设置。5.setEntityViewInfo:设置通用查询F7过滤条件,注意专用F7无效。6.queryAgent:通用F7查询器,通用F7才有效。与该相关的方法均对通用F7有效,专用F77.setHasCUDefaultFilter:设置是否CU默认过滤,同样只真对通用F7有效。控件常用脚本控件必录newcom.kingdee.eas.ep.client.util.NullVerifier([comp0,comp1],table,[column0,column1]).verify();空值校验器,将需要校验的控件放入即可;NullVerifier()中有3个参数;第一个参数是控件,是数组形式,可以填入多个控件,用英文逗号分隔;第二个参数是分录控件Table;第三个是分录中的列名,也是数组形式,可以填入多个列名,用英文逗号分隔。注意:参数可通过双击【上下文】控件树获得,无需手写。//NBA字段设为必录newcom.kingdee.eas.ep.client.util.NullVerifier([pluginCtx.getKDBizPromptBox("prmtNBA")]).verify();根据条件决定必录根据条件决定必录,特殊条件判断,以及自定义提示。可在保存值、保存、提交扩展节点添加以下前置脚本实现。//根据条件决定必录if(pluginCtx.getKDTextField("txtstatus").getText().startsWith("0101")){//状态为0101时,NBA字段为必录varvalue=pluginCtx.getKDBizPromptBox("prmtNBA").getValue();if(value==null){com.kingdee.eas.util.client.MsgBox.showInfo("NBA字段不能为空!");com.kingdee.eas.util.SysUtil.abort();}}控件隐藏(可见)、锁定(可用)表头控件隐藏:pluginCtx.getKDTextField("txtDescription").setVisible(false);分录列隐藏:pluginCtx.getKDTable("kdtEntries").getColumn("mat").getStyleAttributes().setHided(true);表头控件锁定:pluginCtx.getKDBizPromptBox("prmtMat").setEnabled(false);分录列锁定:pluginCtx.getKDTable("kdtEntries").getColumn("amount").getStyleAttributes().setLocked(true);注意:这段脚本可以写在onLoad扩展点的后置脚本,但不能保证控件最终状态如脚本所写,因为执行完DEP脚本后,业务代码也许又设置了控件的状态。设置F7控件过滤条件对于表头字段的F7,可在界面的onload扩展点后置脚本中添加过滤,参考实现。//引入包路径vareasImporter=JavaImporter();easImporter.importPackage(Packages.com.kingdee.bos.ctrl.extendcontrols);easImporter.importPackage(Packages.com.kingdee.bos.metadata.entity);easImporter.importPackage(Packages.com.kingdee.bos.metadata.query.util);easImporter.importPackage(Packages.com.kingdee.bos.util);with(easImporter){varfilterInfo=newFilterInfo();varentityViewInfo=newEntityViewInfo();//按名字过滤,name为F7字段中对应的过滤属性,"艾美"为过滤值,CompareType.EQUALS为比较方式-这里为相等。filterInfo.getFilterItems().add(newFilterItemInfo("name","艾美",CompareType.EQUALS));filterInfo.getFilterItems().add(newFilterItemInfo("name","预设",CompareType.EQUALS));//过滤条件关系,这里为名字为艾美或者预设的对象filterInfo.setMaskString("#0or#1");entityViewInfo.setFilter(filterInfo);pluginCtx.getKDBizPromptBox("prmtRPerson").setEntityViewInfo(entityViewInfo);}对于分录的F7控件,可在界面的onload扩展点后置脚本中添加过滤,参考实现//引入包路径vareasImporter=JavaImporter();easImporter.importPackage(Packages.com.kingdee.bos.ctrl.extendcontrols);easImporter.importPackage(Packages.com.kingdee.bos.metadata.entity);easImporter.importPackage(Packages.com.kingdee.bos.metadata.query.util);easImporter.importPackage(Packages.com.kingdee.bos.util);easImporter.importPackage(Packages.com.kingdee.bos.ctrl.kdf.table);with(easImporter){//获取原分录F7的editorvarf7editor=newKDTDefaultCellEditor();f7editor=pluginCtx.getKDTable("kdtEntrys").getColumn("wuliaonumber").getEditor();//获取原分录F7的editor编辑控件varkdF7=newKDBizPromptBox();kdF7=f7editor.getComponent();//设置过滤条件varfilterInfo=newFilterInfo();varentityViewInfo=newEntityViewInfo();//按名字过滤,name为F7字段中对应的过滤属性,"艾美"为过滤值,CompareType.EQUALS为比较方式-这里为相等。filterInfo.getFilterItems().add(newFilterItemInfo("name","艾美",CompareType.EQUALS));filterInfo.getFilterItems().add(newFilterItemInfo("name","预设的对象",CompareType.EQUALS));//过滤条件关系,这里为名字为艾美或者预设的对象filterInfo.setMaskString("#0or#1");entityViewInfo.setFilter(filterInfo);//修改编辑控件的过滤条件kdF7.setEntityViewInfo(entityViewInfo);//为分录F7字段设置新的editorvarnewf7editor=newKDTDefaultCellEditor(kdF7);pluginCtx.getKDTable("kdtEntrys").getColumn("wuliaonumber").setEditor(f7editor);}设置F7默认值可在界面的onload扩展点后置脚本中添加过滤,参考实现。//如果是新增界面,则设置默认值if(pluginCtx.getOprtState().equals("ADDNEW")){varid="EadXbj&HCHIz";//根据id获取F7值对象varfkfsInterface=com.kingdee.bos.BOSObjectFactory.createRemoteCommonBOSObject(newcom.kingdee.bos.metadata.MetaDataPK("com.kingdee.eas.custom.app.Currency"));varfkfsOPK=newcom.kingdee.bos.dao.ormapping.ObjectUuidPK(com.kingdee.bos.util.BOSUuid.read(id));varfkfsOBJ=fkfsInterface.getValue(fkfsOPK);pluginCtx.getKDBizPromptBox("prmtcurrency").setValue(fkfsOBJ);}设置F7的显示名称可在界面的onload扩展点后置脚本中添加过滤,参考实现。1.表头部分的F7设置//直接在F7控件设置即可,$$内填想要显示的属性名pluginCtx.getKDBizPromptBox("prmtCurrency").setDisplayFormat("$number$");2.分录部分的F7设置//需要先通过获取editor,再获取Component,在Component上设置要显示的属性vareditor1=pluginCtx.getKDTable("kdtEntry").getColumn("oppAccount").getEditor();varcomp1=editor1.getComponent();comp1.setDisplayFormat("$longName$");vareditor2=pluginCtx.getKDTable("kdtEntry").getColumn("account").getEditor();varcomp2=editor2.getComponent();comp2.setDisplayFormat("$longName$");设下拉框默认值可在界面的onload扩展点后置脚本中添加过滤,参考实现。//如果是新增界面,则设置下拉框默认值if(pluginCtx.getOprtState()=="ADDNEW"){//获取对应枚举值,com.kingdee.eas.custom.demo.payType为对应枚举类varpayType=com.kingdee.eas.custom.demo.payType.getEnumMap().get("tick");pluginCtx.getKDComboBox("payType").setSelectedItem(payType);}设置日期选择控件格式可在界面的onload扩展点后置脚本中添加过滤,参考实现。1.表头部分的日期设置//直接在日期控件设置即可pluginCtx.getKDDatePicker("pkRTime").setDatePattern("yyyy-MM-ddHH:mm:ss");或者//表头日期控件设置显示时分秒pluginCtx.getKDDatePicker("pkRTime").setTimeEnabled(true);2.分录部分的日期设置//需要先通过设置KDDatePicker,再设置NumberFormat显示格式vareasNames=JavaImporter();easNames.importPackage(Packages.com.kingdee.bos.ctrl.swing);easNames.importPackage(Packages.com.kingdee.bos.ctrl.kdf.table);with(easNames){//定义一个控制到时分秒的DatePickervarkdtEntrys_Rdata_DatePicker=newKDDatePicker();kdtEntrys_Rdata_DatePicker.setName("kdtEntrys_Rdata_DatePicker");kdtEntrys_Rdata_DatePicker.setVisible(true);kdtEntrys_Rdata_DatePicker.setEditable(true);kdtEntrys_Rdata_DatePicker.setTimeEnabled(true);varkdtEntrys_Rdata_CellEditor=newKDTDefaultCellEditor(kdtEntrys_Rdata_DatePicker);varentry=pluginCtx.getKDTable("kdtEntrys");//设置分录日志编辑格式,录入时分秒entry.getColumn("Rdata").setEditor(kdtEntrys_Rdata_CellEditor);//设置分录日期显示格式,显示时分秒entry.getColumn("Rdata").getStyleAttributes().setNumberFormat("yyyy-MM-ddhh:mm:ss");}分录默认新建一行如果我们希望我们的单据在新建的时候,自动新建一行,可以参考下脚本实现。(1)如果分录是标准产品自带的或者是BOS开发的单据,则可以直接调用使用分录控件对象直接调用addRow()即可;如下://可在界面加载添加下列后置脚本:if(pluginCtx.getOprtState().equals("ADDNEW")){pluginCtx.getKDTable("kdtEntrys").addRow();}kdtentrys为实际对应的分录控件名称。(2)如果现场单据的分录为DEP新增的,由于没有对应的分录对象类,直接调用addrow()会报错。这里需要先获取到分录的新增行按钮,然后调用新增行按钮的对应的actionAddnewLine_actionPerformed方法。如//可在界面加载添加下列后置脚本:if(pluginCtx.getOprtState().equals("ADDNEW")){pluginCtx.getKDTable("entryy").getParent().getParent().actionAddnewLine_actionPerformed(null);}这里entryy为时间分录控件的名称,actionAddnewLine_actionPerformed方法参数一般为null即可。分录新增、删除按钮的获取如果我们希望获取到分录的新增删除按钮,以便进行如染发我们的单据隐藏或者禁用分录的新增、删除按钮的操作。例如隐藏分录新增、删除按钮脚本,如下://可在界面加载添加下列后置脚本//隐藏分录新增按钮pluginCtx.getKDTable("kdtEntrys").getParent().getParent().getComponent(0).getComponent(1).setVisible(false);//隐藏分录的插入按钮pluginCtx.getKDTable("kdtEntrys").getParent().getParent().getComponent(0).getComponent(2).setVisible(false);//隐藏分录的移除按钮pluginCtx.getKDTable("kdtEntr...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

金蝶EAS-DEP扩展脚本编写示例.doc

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信