需求:获取组织,新增字段,在列表页展示
这里就不介绍如何新增基础资料和单据了,社区里可以查到。
1.选择F7控件,关联的实体是组织单元。
2.在业务数据源中设置:在自己创建的单据下,引入组织单元,进行实体配置(我这里是通过id来关联的实体,下面说为啥通过id来关联),进行字段配置(这里拉入自己想要的即可)
3.绑定实体:来到列表界面,进行实体的绑定(这里选择名称,这里实体绑定是给列表查询页赋值)
4.编写脚本:这里我默认前端显示的是id,与刚才业务数据源配置实体时,通过id进行关联就对应上了
注意点:
业务数据源:是引入实体,相当于Java中引入实体,创建实体对象那一步;还做了数据库中左右链接表查询的工作。
绑定实体:绑定的是新增页面,text文本框与列表查询页显示的值(我上面绑定的name,所以在列表显示时是name)。相当于Vue文本组件,向后端传id值,并查询数据库中name,返回给列表页显示name的操作。
脚本:
/**
* 判断是不是新增页面
**/
if(pluginCtx.getOprtState().equals("ADDNEW")) {
// 引入包
var easImporter = JavaImporter();
easImporter.importPackage(Packages.com.kingdee.bos.ctrl.extendcontrols);
easImporter.importPackage(Packages.com.kingdee.eas.basedata.scm.common);
easImporter.importPackage(Packages.com.kingdee.bos.util);
easImporter.importPackage(Packages.com.kingdee.eas.basedata.assistant);
with(easImporter){
//通过客户端上下文获取组织名称
var organize = pluginCtx.getUIContext().get("sysContext").getCurrentFIUnit();
com.kingdee.eas.util.client.MsgBox.showInfo(organize);
//通过客户端上下文获取组织id
var id = pluginCtx.getUIContext().get("sysContext").getCurrentFIUnit().get("id");
com.kingdee.eas.util.client.MsgBox.showInfo(id);
//客户端设置F7默认值(组织机构)
var prmtCurrency = pluginCtx.getKDBizPromptBox("prmtOrganize");
var cur = new CurrencyInfo();
cur.setId(BOSUuid.create("8f82686e5bbf45e68095fb5717a8c85f"));//组织的BOSType
cur.setNumber("PRE001");
cur.setName(id);
/*将币别值赋值给控件*/
prmtCurrency.setValue(cur);
/*
获取登录用户
*/
var userName = pluginCtx.getUIContext().get("sysContext").getCurrentUser()
pluginCtx.getKDTextField("txtuserName").setStringValue(userName)
}
}