使用function关键字开始函数的声明,在函数声明中看不到类型,包含参数和返回值
function createNewData(entityBosType,entityPK){
var objectValue=new com.kingdee.eas.ep.DataBaseCustomInfo();
objectValue.setBostType(entityBosType);
objectValue.setPK(new com.kingdee.bos.metadata MetaDataPK(entityPK));
return objectValue;
}
调用定义的函数
var bizInterface
=com.kingdee.bos.BOSObjectFactory.createRemoteCommonBOSObject(
new com.kingdee.bos.metaDataPK MetaDataPK(entityPK);
bizInterface.addNew(createNewData(entityBosType,entityPK));
)
在javaScript中没有类的概念,接口实现也使用关键字function声明。比如给一些控件增加监听器
例:
//f7控件增加值改变监听
pluginCtx.getKDBizPromptBox("prmtHROrg").addDataChangeListener(function(event){
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("停止...");
}
});
插件上下文(pluginCtx)和方法上下文(methodCtx)。
1.pluginCtx主要存放当前执行环境的相关信息,比如服务端的context,客户端的界面控件,界面状态,编辑对象等.
methodNameCtx存放当前操作的相关信息,包含方法参数和方法返回值
服务端通过pluginCtx.getContext()获取服务器上下文
var imp=JavaImporter();//服务端更新单据状态
imp.importPackage(Packages.com.kingdee.eas.util.app);
with(imp){
//获取服务端上下文
var ctx=pluginCtx.getContext();
//获取方法参数
var billId=methodCtx.getParamValue();
var sql="...";
//执行sql,使用服务器端上下文
DbUtil.exectute(ctx,sql);
}