




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
常用DEP脚本集2013修订历史日期版本说明作者审阅2013-03-2910创建和整理袁健、刘立君、杨晓江目 录1.扩展脚本界面说明32.客户端常用脚本42.1.控件必录42.2.控件隐藏(可见)、锁定(可用)42.3.设置最大可输入长度42.4.label文字修改42.5.弹出界面52.6.F7控件设置过滤条件52.7.控件(复选框)添加监听器52.8.F7控件增加监听器62.9.设置F7默认值62.10.客户端调用服务端方法82.11.设置表格列的显示格式92.12.客户端设置编码规则脚本92.13.设置分录列背景色为红色、控件字体属性92.14.建滔替换物料验证102.15.*122.16.客户端抛出异常132.17.设置数字控件精度142.18.KDTable加入监听器142.19.设置Tab健控件焦点顺序162.20.调用界面162.21.用DEP扩展脚本调用套打182.22.计算两个日期类型相隔几天192.23.常见的脚本语法错误实例202.24.设置分录F7列的显示名称213.服务端常用脚本213.1.服务端更新单据状态213.2.服务端检查编码重复223.3.服务端根据物料计划页签检查项目号与跟踪号223.4.传递数组参数231. 扩展脚本界面说明2. 客户端常用脚本2.1. 控件必录new com.kingdee.eas.ep.client.util.NullVerifier(comp0,comp1,table,column0,column1).verify();空值校验器,将需要校验的控件放入即可;NullVerifier()中有3个参数;第一个参数是控件,是数组形式,可以填入多个控件,用英文逗号分隔;第二个参数是分录控件Table;第三个是分录中的列名,也是数组形式,可以填入多个列名,用英文逗号分隔。注意:参数可通过双击【上下文】控件树获得,无需手写。2.2. 控件隐藏(可见)、锁定(可用)表头控件隐藏: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脚本后,业务代码也许又设置了控件的状态。2.3. 设置最大可输入长度pluginCtx.getKDTextField(控件名).setMaxLength(120);注意:这段脚本可以写在onLoad扩展点。2.4. label文字修改表头控件:pluginCtx.getKDLabelContainer(contNumber).setBoundLabelText(编号);分录列名:pluginCtx.getKDTable(detailTable).getHeadRow(0).getCell(batch).setValue(批次);2.5. 弹出界面var uiContext = new mon.client.UIContext(pluginCtx.getUI();var uiName = com.kingdee.eas.test.client.TestListUI$com.kingdee.eas.ep.client.DataBaseCustomListUI; /$后面的为对应的模板界面var uiWindow = com.kingdee.bos.ui.face.UIFactory.createUIFactory(mon.client.UIFactoryName.MODEL).create(uiName, uiContext);uiWindow.show();2.6. F7控件设置过滤条件/可在界面的onload扩展点后置脚本中添加过滤,参考实现:var easImporter = JavaImporter();easImporter.importPackage(P.kingdee.bos.ctrl.extendcontrols);easImporter.importPackage(P.kingdee.bos.metadata.entity);easImporter.importPackage(P.kingdee.bos.metadata.query.util);easImporter.importPackage(P.kingdee.bos.util);with(easImporter) var prmtAssist = pluginCtx.getKDBizPromptBox(prmtassist);/获取F7控件 var filterInfo = new FilterInfo(); var entityViewInfo = new EntityViewInfo();/获取当前财务组织 var company = pluginCtx.getUIContext().get(sysContext).getCurrentFIUnit(); filterInfo.getFilterItems().add(new FilterItemInfo(CU.id,company.get(Id),CompareType.EQUALS); /按财务组织过滤 entityViewInfo.setFilter(filterInfo); prmtAssist.setEntityViewInfo(entityViewInfo);2.7. 控件(复选框)添加监听器pluginCtx.getKDCheckBox(isPersonal).addItemListener(function(event,methodName)if(pluginCtx.getKDCheckBox(isPersonal).getSelected() = com.kingdee.bos.ctrl.swing.ButtonStates.UNSELECTED) pluginCtx.getKDTextField(CsNumber).setEnabled(true); pluginCtx.getKDBizPromptBox(prmtCsAddr).setEditable(true); else pluginCtx.getKDTextField(CsNumber).setEnabled(false); /pluginCtx.getKDTextField(prmtCsAddr).setData(null); pluginCtx.getKDTextField(prmtCsAddr).setEditable(false); );注意:监听器可以在onLoad扩展点。2.8. F7控件增加监听器var easNames = JavaImporter();easNames.importPackage(P.kingdee.bos.ctrl.extendcontrols);easNames.importPackage(P.kingdee.bos);with(easNames)var roadMap = pluginCtx.getKDBizPromptBox(prmtprmtMyRoadMap);roadMap.addPreChangeListener(function() throw new BOSException(路线图不允许为空!););2.9. 设置F7默认值var easImporter = JavaImporter();easImporter.importPackage(P.kingdee.bos.ctrl.extendcontrols);easImporter.importPackage(Pmon);easImporter.importPackage(P.kingdee.bos.util);easImporter.importPackage(P.kingdee.eas.basedata.assistant);with(easImporter)var prmtCurrency =pluginCtx.getKDBizPromptBox(prmtCurrency);var cur = new CurrencyInfo();cur.setId(BOSUuid.create(DEB58FDC);cur.setNumber(1001);cur.setName(BMD);prmtCurrency.setValue(cur);或如下:if(pluginCtx.getOprtState().equals(ADDNEW)var data = .AdminOrgUnitFactory.getRemoteInstance().getAdminOrgUnitCollection(where Number = 02 and Name = 管理单元);if(data.size() 0)pluginCtx.getKDBizPromptBox(prmtToUnit).setData(data.get(0); 注意:Number和Name,根据想默认值改变2.10. 客户端调用服务端方法var easNames = JavaImporter();easNames.importPackage(P.kingdee.bos.ctrl.extendcontrols);easNames.importPackage(P.kingdee.bos);easNames.importPackage(P.kingdee.bos.util);easNames.importPackage(P.kingdee.bos.metadata);easNames.importPackage(P.kingdee.eas.util.client);easNames.importPackage(P.kingdee.bos.framework);with(easNames) /pk为服务端实体的全路径,可通过DEP元数据检查获得 var pk = new MetaDataPK(com.kingdee.eas.scm.sd.sale.app.SaleOrder); /name为被调用实体方法的名称,可通过实体界面获取 var name = java.lang.Boolean updateStatus(com.kingdee.bos.util.BOSUuid billId); /params为方法参数,与被调用方法参数类型一致 var params = BOSUuid.read(2s5eatuISSqb7TuLMfibSMSKQjo=); var result = BOClientTool.callCmethod(pk,name,params); MsgBox.showInfo(Result is: + result); com.kingdee.eas.util.SysUtil.abort();2.11. 设置表格列的显示格式var easNames = JavaImporter();easNames.importPackage(P.kingdee.bos.ctrl.extendcontrols);easNames.importPackage(Pmon.util);easNames.importPackage(Pmon.client.helper);with(easNames)var entry = pluginCtx.getKDTable(kdtEntries);var column = entry.getColumn(qty);var format = PrecisionUtil.getFormatString(10);var editor = FormattedEditorFactory.getBigDecimalCellEditor(10, false);column.setEditor(editor);column.getStyleAttributes().setNumberFormat(format);2.12. 客户端设置编码规则脚本var easNames = JavaImporter();easNames.importPackage(P.kingdee.eas.base.codingrule);with(easNames)var editData = pluginCtx.getDataObject();var bizOrgUnit= pluginCtx.getKDBizPromptBox(prmtSaleOrgUnit).getValue();var number = CodingRuleManagerFactory.getRemoteInstance().getNumber(editData, bizOrgUnit.getId();pluginCtx.getKDTextField(txtNumber).setText(number);2.13. 设置分录列背景色为红色、控件字体属性var easNames = JavaImporter();easNames.importPackage(Pmon.client);with(easNames)var entry = pluginCtx.getKDTable(kdtEntries);var column = entry.getColumn(qty).getStyleAttributes().setBackground(java.awt.Color.RED);var font = new java.awt.Font(SansSerif,java.awt.Font.BOLD,14);pluginCtx.getKDTextField(txtDescription).setFont(font);注意:写在后置脚本2.14. 建滔替换物料验证var easNames = JavaImporter();easNames.importPackage(Packages.javax.swing);easNames.importPackage(Packages.java.awt);easNames.importPackage(Packages.java.event);easNames.importPackage(P.kingdee.bos.ctrl.extendcontrols);easNames.importPackage(P.kingdee.eas.util);easNames.importPackage(Pmon.constants);easNames.importPackage(P.kingdee.bos.ctrl.kdf.table);with(easNames)var editData = pluginCtx.getDataObject();var detailTable = pluginCtx.getKDTable(detailTable);var prmtMaterial = new KDBizPromptBox();prmtMaterial.setQueryInfo(QueryInfoConstants.MATERIAL_INVENTORY_NO_GROUP);var labelMaterial = new JLabel(物料);labelMaterial.setLabelFor(prmtMaterial);var prmtAssitAttribute = new KDBizPromptBox();var labelAssitAttribute = new JLabel(辅助属性);labelAssitAttribute.setLabelFor(prmtAssitAttribute);prmtAssitAttribute.setQueryInfo(com.kingdee.eas.basedata.master.material.app.F7AsstAttrValueQuery);var pane = new JPanel();pane.border = BorderFactory.createEmptyBorder(30,30,10,30);pane.add(labelMaterial);pane.add(prmtMaterial);pane.add(labelAssitAttribute);pane.add(prmtAssitAttribute);var frame = new easNames.JFrame(替换物料);frame.getContentPane().add(pane, BorderLayout.CENTER);frame.addWindowListener(function(event, methodName) if(methodName = windowClosing) frame.setVisible(false);vardetailTable = pluginCtx.getKDTable(detailTable)var selectManager = detailTable.getSelectManager();var selectBlock =selectManager.get();if (selectBlock != null) var rowIndex = selectBlock.getTop();var material = prmtMaterial.getValue();var assitAttr = prmtAssitAttribute.getValue();detailTable.getCell(rowIndex,orderMaterial).setValue(material);detailTable.getCell(rowIndex,orderAssitAttribute).setValue(assitAttr); );frame.pack();frame.setVisible(true);2.15. *var easNames = JavaImporter();var easNames = JavaImporter();easNames.importPackage(P.kingdee.bos.ctrl.extendcontrols);easNames.importPackage(Pmon.constants);with(easNames) var editData = pluginCtx.getDataObject(); var prmtDispatch = pluginCtx.getKDBizPromptBox(prmtprmtDispatchUnit); var queryInfoOrigin = prmtDispatch.getQueryInfo(); if(queryInfoOrigin != null) var queryInfo = queryInfoOrigin.replaceAll(,.); if(QueryInfoConstants.SUPPLIER_COMPANY.equals(queryInfo) editData.put(dispatch_Sup,prmtDispatch.getValue(); else editData.put(dispatch_Org,prmtDispatch.getValue(); var easNames = JavaImporter();easNames.importPackage(P.kingdee.bos.ctrl.extendcontrols);easNames.importPackage(Pmon.constants);with(easNames)var editData = pluginCtx.getDataObject();var prmtDispatch = pluginCtx.getKDBizPromptBox(prmtprmtDispatchUnit);var queryInfoOrigin = prmtDispatch.getQueryInfo();if(queryInfoOrigin != null)var queryInfo = queryInfoOrigin.replaceAll(,.);if(QueryInfoConstants.SUPPLIER_COMPANY.equals(queryInfo)prmtDispatch.setValue(editData.get(dispatch_Sup);elseprmtDispatch.setValue(editData.get(dispatch_Org);var easNames = JavaImporter();easNames.importPackage(P.kingdee.bos.ctrl.extendcontrols);easNames.importPackage(Pmon.constants);easNames.importPackage(P.kingdee.bos);with(easNames)var editData = pluginCtx.getDataObject();var prmtDispatch = pluginCtx.getKDBizPromptBox(prmtprmtDispatchUnit);var queryInfoOrigin = prmtDispatch.getQueryInfo();if(editData.getSourceBillId() = null)throw new BOSException(检斤通知单不允许手工新增!);if(editData.get(dispatch_Sup) != null)prmtDispatch.setQueryInfo(QueryInfoConstants.SUPPLIER_COMPANY);prmtDispatch.setValue(editData.get(dispatch_Sup);elseprmtDispatch.setQueryInfo(com.kingdee.eas.fi.arap.app.AdminOrgUnitQuery);prmtDispatch.setValue(editData.get(dispatch_Org); 2.16. 客户端抛出异常var easNames = JavaImporter();easNames.importPackage(P.kingdee.bos.ctrl.extendcontrols);easNames.importPackage(P.kingdee.bos);with(easNames) var prmtCurrency = pluginCtx.getKDBizPromptBox(prmtCurrency); if(prmtCurrency.getValue() = null) /Scm_DynProException需要预先定义com.kingdee.eas.ep.plugin.ExceptionUtil.throwOnClient(Scm_DynProException,ScmCompany);2.17. 设置数字控件精度var easNames = JavaImporter();easNames.importPackage(P.kingdee.bos.ctrl.extendcontrols);easNames.importPackage(Pmon.util);easNames.importPackage(Pmon.client.helper);with(easNames)var pre = pluginCtx.getKDFormattedTextField(txtPrepayment);pre.setPrecision(10);2.18. KDTable加入监听器var swingNames = JavaImporter();swingNames.importPackage(P.kingdee.bos.ctrl.kdf.table.event);swingNames.importPackage(Pmon.client);var tblMain = pluginCtx.getKDTable(kdtEntries);with (swingNames) tblMain.addKDTEditListener(KDTEditListener(this); function editStarting(e)function editStarted(e)var entry = pluginCtx.getKDTable(kdtEntries);var column = entry.getColumn(qty).getStyleAttributes().setBackground(java.awt.Color.ORANGE);function editValueChanged(e)function editStopping(e)function editStopped(e)function editCanceled(e)或如下:脚本如下:var table = pluginCtx.getKDTable(kdtEntrys);table.addKDTEditListener(function(event,methodName)if(methodName = editStopped) var row = com.kingdee.bos.ctrl.kdf.table.util.KDTableUtil.getSelectedRow(table);var value = row.getCell(person).getValue();var ZDY = value.getEmployeeClassify();var cell = row.getCell(ZDY2);cell.setValue(ZDY);if(methodName = editStopping);2.19. 设置Tab健控件焦点顺序var easNames = JavaImporter();easNames.importPackage(P.kingdee.bos.ctrl.extendcontrols);easNames.importPackage(P.kingdee.bos);easNames.importPackage(P.kingdee.bos.ui);with(easNames)this.setFocusTraversalPolicy(new com.kingdee.bos.ui.UIFocusTraversalPolicy(new java.awt.Component kDDateLastUpdateTime,prmtLastUpdateUser,kDDateCreateTime,prmtCreator,prmtAuditor,txtDescription,pkBizDate,txtNumber,kdtEntrys);2.20. 调用界面var easNames = JavaImporter();easNames.importPackage(Pmon.client);easNames.importPackage(Pmon.util);easNames.importPackage(P.kingdee.bos.ui.face);easNames.importPackage(Pmon.client);with(easNames)var ui = pluginCtx.getUI();var uiContext = new UIContext(ui);/uiContext.put(ui.getMainBizOrgType(), ui.getMainOrgContext().get(/ui.getMainBizOrgType();/uiContext.put(idList, SCMUtils.convertStringToObjectPK(selIDs);uiContext.put(UIContext.ID,6LRL/3PNRXWIB1vd6kgaZMSKQjo=);uiContext.put(lockType, lock);var uiFactory = UIFactory.createUIFactory(mon.client.UIFactoryName.MODEL);var window;window = uiFactory.create(com.kingdee.eas.scm.sd.sale.client.SaleOrderLockUI,uiContext, null);window.show();2.21. 用DEP扩展脚本调用套打var idList = new java.util.ArrayList();var editData = pluginCtx.getDataObject();if (editData != null & !com.kingdee.bos.ctrl.swing.StringUtils.isEmpty(editData.getString(id)idList.add(editData.getString(id);if (idList != null | idList.size() != 0 ) /套打单据的query PKvar queryPK = new com.kingdee.bos.metadata.MetaDataPK(com.kingdee.eas.eqm.app.LaoWuGongQuery);var data = new com.kingdee.eas.framework.util.CommonDataProvider(idList,queryPK);var appHlp = new com.kingdee.bos.ctrl.report.forapp.kdnote.client.KDNoteHelper();/第一个参数是套打模板路径appHlp.printPreview(/bim/ep/CoreBillBaseCustom, data, pluginCtx.getUI();com.kingdee.eas.util.SysUtil.abort();如果是直接打印,则使用 print方法2.22. 计算两个日期类型相隔几天pluginCtx.getKDDatePicker(pkkDDatePicker).addDataChangeListener(function(event)var days = 0;var day = pluginCtx.getKDDatePicker(pkkDDatePicker).getText().toString();var day1 = pluginCtx.getKDDatePicker(pkkDDatePicker1).getText().toString();var df = new java.text.SimpleDateFormat(yyyy-MM-dd);var calender = java.util.Calendar.getInstance();var calender1 = java.util.Calendar.getInstance();calender.setTime(df.parse(day);calender1.setTime(df.parse(day1);while(calender.before(calender1)days+;calender.add(java.util.Calendar.DAY_OF_YEAR, 1);com.kingdee.eas.util.client.MsgBox.showInfo(pluginCtx.getUI(),days););2.23. 常见的脚本语法错误实例以上脚本存在很多问题:创建一个往来客户对象,是不能通过传入其名称,new CoreBaseInfo创建的;这些字段估计是DEP动态添加的,这样取没错,但对象不对;现给出参考脚本:pluginCtx.getKDBizPromptBox(prmtAccountCussent).addDataChangeListener(function(e,methodName)if(equals = methodName)return this = e;else if(dataChanged = methodName)var prmtAccountCussent = pluginCtx.getKDBizPromptBox(prmtAccountCussent);if(prmtAccountCussent.getValue()!=null&!.equals(prmtAccountCussent.getValue()var accountCussentInfo = prmtAccountCussent.getData();var kpdz =accountCussentInfo.get(kpdz);var kpdh =accountCussentInfo.get(kpdh);var khh =accountCussentInfo.get(khh);var khzh =accountCussentInfo.get(khzh);var sh =accountCussentInfo.get(taxRegisterNo);var txtkpdz = pluginCtx.getKDTextField(txtkpdz);txtkpdz.setText(kpdz);var txtkpdh = pluginCtx.getKDTextField(txtkpdh);txtkpdh.setText(kpdh);var txtkhh = pluginCtx.getKDTextField(txtkhh);txtkhh.setText(khh);var txtkhzh = pluginCtx.getKDTextField(txtkhzh);txtkhzh.setText(khzh);var txtsh = pluginCtx.getKDTextField(txtsh);txtsh.setText(sh););2.24. 设置分录F7列的显示名称在【应付单】编辑界面,DEP 界面加载(onLoad)扩展点,写后置脚本:var editor1 = pluginCtx.getKDTable(kdtEntry).getColumn(oppAccount).getEditor();var comp1 = editor1.getComponent();comp1.setDisplayFormat($longName$);var editor2 = pluginCtx.getKDTable(kdtEntry).getColumn(account).getEditor();var comp2 = editor2.getComponent();comp2.setDisplayFormat($longName$);3. 服务端常用脚本3.1. 服务端更新单据状态var imp = JavaImporter(); imp.importPackage(P.kingdee.eas.util.app); with(imp)var ctx = pluginCtx.getContext();var billId = methodCtx.getParamValue(0);var status = 11;var sql = update T_SD_SALEORDER SET FBASESTATUS = + status + WHERE FID = +billId+;DbUtil.execute(ctx, sql);methodCtx.setResultVal
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CI 420-2024颈部除皱注射操作规范
- 2025年环保行业绿色环保技术应用前景研究报告
- 嵊泗县2025浙江舟山市嵊泗县事业单位紧缺专业人才招聘15人笔试历年参考题库附带答案详解
- 山东省2025年山东聊城经济技术开发区事业单位公开招聘教师(16人)笔试历年参考题库附带答案详解
- 姚安县2025云南楚雄州姚安县农业农村局农业紧缺专业技术人才招聘4人笔试历年参考题库附带答案详解
- 呼伦贝尔市2025内蒙古呼伦贝尔市陈巴尔虎旗“就在北疆”“职引未来”高校毕业生退役笔试历年参考题库附带答案详解
- 南昌市2025江西南昌市劳动保障事务代理中心招聘劳务派遣人员1人笔试历年参考题库附带答案详解
- 云南省2025云南文山州丘北县事业单位紧缺岗位第二次招聘(7人)笔试历年参考题库附带答案详解
- 上海市2025上海华东师范大学法学院财务秘书招聘1人笔试历年参考题库附带答案详解
- 2025重庆机电控股集团机电工程技术有限公司招聘市场营销安全员等岗位共11人笔试参考题库附带答案详解
- 农业现代化种植技术培训课件
- 中城汽车(山东)有限公司审计报告
- 大学博士竞赛试题及答案
- 钢结构彩钢瓦施工工艺与技术交底
- 2025版煤矿安全规程宣贯培训课件
- 梁启超家教家风课件
- DB31∕T 1545-2025 卫生健康数据分类分级要求
- 大学生创新创业基础(创新创业课程)完整全套教学课件
- 初中毕业证在哪里查询
- 名词语法讲解
- GB/T 5796.4-2022梯形螺纹第4部分:公差
评论
0/150
提交评论