金蝶EAS DEP 客户端 脚本原创
42人赞赏了该文章
4,449次浏览
编辑于2022年05月13日 19:18:19
摘要由AI智能服务提供
本文介绍了金蝶EAS系统中的扩展脚本编程方法,特别是如何通过各种控件(如F7、CheckBox、ComboBox、Button、TextField、Tree、TabbedPane、Table、DatePicker等)添加事件监听及处理逻辑。文章通过JavaScript示例展示了如何为F7控件设置过滤条件、执行SQL语句查询或更新数据库、在F7值改变时触发相应动作、以及在其他常见控件上设置事件监听(如复选框值改变、下拉框选择、按钮点击、文本框输入等),同时说明了如何在树形控件、页签、表格上实现复杂的交互逻辑,包括树选择、页签切换、表格编辑、鼠标事件处理等。整体概述了金蝶EAS系统在UI扩展与控件交互编程方面的详细应用实践。
一、金蝶EAS DEP扩展脚本 表头F7过滤javascript
var easImporter = 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){ //表头f7过滤 var storageid = pluginCtx.getUIContext().get("sysContext").getCurrentStorageUnit().getId().toString(); var filterInfo = new FilterInfo(); var entityViewInfo = new EntityViewInfo(); // 设置过滤条件 filterInfo.getFilterItems().add(new FilterItemInfo("STORAGEORGUNIT.ID",storageid ,CompareType.EQUALS)); // 如:id=001 filterInfo.getFilterItems().add(new FilterItemInfo("isused","1", CompareType.EQUALS)); // 设置过滤条件关系,若是只要一个条件能够省略 // #0 #1为条件条件的前后顺序 filterInfo.setMaskString("#0 and #1"); // 写入过滤对象 entityViewInfo.setFilter(filterInfo); // 将过滤对象写入控件过滤条件中 pluginCtx.getKDBizPromptBox("prmtdevhmld").setEntityViewInfo(entityViewInfo); }
二、金蝶EAS 执行SQL脚本java
--客户端代码执行select var sql = "select * from table" var rowset = com.kingdee.bos.dao.query.SQLExecutorFactory.getRemoteInstance(sql).executeSQL(); var arrLen = rowset.size(); while(rowset.next()){ } --客户端代码执行update var updateSql = "update table set column=' ' where fid=' '"; com.kingdee.eas.cp.base.DbExecuteUtilFacadeFactory.getRemoteInstance().execute(updateSql);
三、给F7添加值改变事件sql
//F7控件增长值改变监听 pluginCtx.getKDBizPromptBox("prmtCompany").addDataChangeListener(function (event){ com.kingdee.eas.util.client.MsgBox.showInfo("F7值改变事件"); });
四、F7属性携带值更新数据库
// 选择职员后,将职员名称带出 // F7控件增长值改变监听 pluginCtx.getKDBizPromptBox("prmtPerson").addDataChangeListener(function (event){ // 获取职员F7信息 var personInfo = pluginCtx.getKDBizPromptBox("prmtPerson ").getValue(); var name = personInfo.get("name"));//获取职员名称 // 将职员名称赋值到名称控件。 pluginCtx.getKDTextField("txtName").setStringValue(name); });
五、F7带出关联F7工具
// 选择付款类型后,根据逻辑将科目F7赋值 // F7控件增长值改变监听 // 付款类型字段监听,当字段改变的时候触发 pluginCtx.getKDBizPromptBox("f7PayBillType").addChangeListener(function(e){ var payBillTypeInfo = pluginCtx.getKDBizPromptBox("f7PayBillType").getValue();//获取付款类型信息 // 获取付款类型ID信息用于对照,这里也能够提取其余信息对照,好比名称,编码等 var id = payBillTypeInfo.get("id"); if(id == "1234"){ // 根据ID查询科目,并变动 var accountViewInfo=com.kingdee.eas.basedata.master.account.AccountViewFactory.getRemoteInstance().getAccountViewCollection("where Id = '//lZ0U0sSfK4Ego95AUafZ2pmCY='"); if(accountViewInfo.size() > 0){ // 改变科目字段 com.kingdee.eas.util.client.MsgBox.showInfo(accountViewInfo.get(0)); pluginCtx.getKDBizPromptBox("prmtOppAccount").setData(accountViewInfo.get(0)); } } });
六、CheckBox(复选框)值改变事件编码
// 获取控件 var chkIsContract= pluginCtx.getKDCheckBox("chkIsContract"); // 添加监听事件 chkIsContract.addChangeListener(function(event){ com.kingdee.eas.util.client.MsgBox.showInfo("复选框值改变事件"); });
七、ComboBox(下拉框)值改变事件code
//选择事件 var bizTypeCombo= pluginCtx.getKDComboBox ("bizTypeCombo"); bizTypeCombo.addItemListener (function(event,method){ com.kingdee.eas.util.client.MsgBox.showInfo("下拉框值改变事件"); });
八、Button(按钮)值改变事件对象
// Button点击事件 var bjButton= pluginCtx.getKDButton ("bjButton"); bjButton.addActionListener (function(event){ com.kingdee.eas.util.client.MsgBox.showInfo("按钮值改变事件"); }); // 例编码重复验证按钮,选择付款类型后,根据逻辑将科目F7赋值 // 为界面按钮添加点击监听 pluginCtx.getKDButton("kDButton").addActionListener(function(event,methodName){ // 获取界面编码 var number = pluginCtx.getKDTextField("txtNumber").getStringValue(); // 拼接sql var sql = "SELECT * FROM T_DEM_PurOrderR WHERE Fnumber = '" + number + "'"; // 获取数据库工具接口 var fMIsqlFacade = com.kingdee.eas.fm.common.FMIsqlFacadeFactory.getRemoteInstance(); var rs = fMIsqlFacade.executeQuery(sql.toString(), null); // 结果判断 if(rs.size() > 0){ com.kingdee.eas.util.client.MsgBox.showInfo("编码已存在"); } });
九、TextFiled (文本框)值改变事件接口
// 获取文本框对象 var textFiled= pluginCtx.getKDTextFiled ("textFiled"); // 添加监听事件 textFiled.addActionListener(function(event){ com.kingdee.eas.util.client.MsgBox.showInfo("文本框值改变事件"); }); // 添加焦点事件 textFiled.addFocusListener(function(event, methodName){ com.kingdee.eas.util.client.MsgBox.showInfo("焦点事件"); // 得到焦点事件 if(methodName == "focusGained"){ com.kingdee.eas.util.client.MsgBox.showInfo("得到焦点事件"); } // 失去焦点事件 if(methodName == "focusLost"){ com.kingdee.eas.util.client.MsgBox.showInfo("失去焦点事件"); } }); // 添加鼠标事件 textFiled.addMouseListener (function(event, methodName){ com.kingdee.eas.util.client.MsgBox.showInfo("鼠标事件"); // 鼠标单击事件 if(methodName == "mouseClicked"){ com.kingdee.eas.util.client.MsgBox.showInfo("鼠标单击事件"); } // 鼠标按下事件 if(methodName == "mousePressed"){ com.kingdee.eas.util.client.MsgBox.showInfo("鼠标按下事件"); } // 鼠标抬起事件 if(methodName == "mouseReleased"){ com.kingdee.eas.util.client.MsgBox.showInfo("鼠标抬起事件"); } // 鼠标滑入事件 if(methodName == "mouseEntered"){ com.kingdee.eas.util.client.MsgBox.showInfo("鼠标滑入事件"); } // 鼠标滑出事件 if(methodName == "mouseExited"){ com.kingdee.eas.util.client.MsgBox.showInfo("鼠标滑出事件"); } });
十、Tree(树形控件)值改变事件事件
//增长tree的选择事件 var accountTree = pluginCtx.getKDTree ("accountTree"); accountTree.addTreeSelectionListener(function(event){ com.kingdee.eas.util.client.MsgBox.showInfo("树形控件值改变事件"); });
十一、TabledPane(页签)改变事件
var tabbedPane = pluginCtx.getTabbedPane("tabbedPane"); // 页签切换事件 tabbedPane.addChangeListener(function(event){ com.kingdee.eas.util.client.MsgBox.showInfo("页签改变事件"); });
十二、Table(表格)编辑事件监听
// KDTable增长表格编辑事件监听 pluginCtx.getKDTable("kdtEntrys").addKDTEditListener(function(event,methodName){ // 开始编辑了 if(methodName == "editStarted"){ com.kingdee.eas.util.client.MsgBox.showInfo("开始编辑了"); } // 中止编辑了 if(methodName == "editStopped"){ com.kingdee.eas.util.client.MsgBox.showInfo("中止编辑了"); } // 开始编辑中 if(methodName == "editStarting"){ com.kingdee.eas.util.client.MsgBox.showInfo("开始编辑中"); } // 中止编辑中 if(methodName == "editStopping"){ com.kingdee.eas.util.client.MsgBox.showInfo("中止编辑中"); } // 编辑值改变 if(methodName == "editValueChanged"){ com.kingdee.eas.util.client.MsgBox.showInfo("编辑值改变"); } }); // KDTable增长鼠标事件监听 pluginCtx.getKDTable("kdtEntrys").addKDTMouseListener(function(event,methodName){ if(event.getClickCount() == 2){ } else if(event.getClickCount() == 1){ } }); // KDTable增长单元格Active事件监听 pluginCtx.getKDTable("kdtEntrys").addKDTActiveCellListener(function(event,methodName){ var table = (com.kingdee.bos.ctrl.kdf.table.KDTable) e.getSource(); var preLine = event.getPrevRowIndex(); var line = event.getRowIndex(); });
1三、DatePicker(日期控件)值改变事件
// DatePicker增长表格编辑事件监听 pluginCtx.getKDDatePicker ("pkDatePicker").addDataChangeListener(function (event){ com.kingdee.eas.util.client.MsgBox.showInfo("日期控件值改变事件"); });
赞 42
42人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!