金蝶EAS DEP 客户端 脚本原创
金蝶云社区-北方糙汉子
北方糙汉子
42人赞赏了该文章 4,449次浏览 未经作者许可,禁止转载编辑于2022年05月13日 19:18:19
summary-icon摘要由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人打赏
还没有人打赏,快来当第一个打赏的人吧!