EAS二次开发的入门参考

EAS二次开发的入门 ---- 单据创建,以资产验收单为例
1.在进行单据制作前首先导入解决方案
在界面右上角的金蝶BOS的业务建模工具视图下,

在界面左边的业务单元管理的空白处鼠标右键有一个导入解决方案.第一次导入的话需要打开本地服务器server.

名称自己写,别名可以是中文.

点下一步。选中从本地导入,文件目录为kingdeeEAS85下的eas\server文件夹。方案选择一般选1235四个,点下一步选择你创建的数据中心,点完成,在下方然更新解决方案视图下显示正在运行,数据比较多,等着就行了。导入完成后会在控制台输出执行完成。在业务单元管理栏里出现你创建的解决方案名称。
新建单据
可以选中用户自定义,鼠标右键新建一个业务组别

名称自己取,别名可以写中文.这个组别类似于Java的类.在新建的组别新建一个业务单元.业务属性选择业务单据,其他可以默认.也可以根据需要选择.


这里不同的选择可以生成不同样式的单据,一般选择第一个.

上图可以选择你想生成的模板字段,一般情况默认,点击完成,一个基本单据就建好了.
给单据新增字段
单据头新增字段
鼠标放在单据头空白处右键新增字段


字段名称自己定义,最好是驼峰命名法.
字段别名可以是中文,也是字段界面显示的名称
数据来源根据需要选择,这里简单说一下

手工录入的字段类型可以选择多个类型比较常用
基础资料类别也很常用,它可以选择你的字段想要绑定的F7控件,这样在生成单据之后预览的时候,你就可以在字段点击的时候看到基础资料显示的信息了.
固定下拉列表选择的是一个枚举.
了解以上之后,我们以资产验收单为例做一个简单的单据.
需求:


1.导入解决方案,在用户自定义下新建业务组别,在组别下新建业务单元生成单据
2.在单据头新增字段,字符型都选择手工录入的文本,日期选手工录入的日期,枚举都是下拉列表,如果没有可以选择的枚举,就自己新建一个枚举
新建枚举:在界面右上角切到金蝶BOS设计开发工具视图下

一般用户自定义下的单据都会在下图的路径下
在client下右键新建一个枚举,设置对应的至于编号即可.

基础资料的选择一定要留意数据来源,选择的基础数据是否正确,如果没有这个基础资料也可以手动增加,以申请人字段为例,这个一般对应的是person

点击确定就好了.在显示字段的时候一般都选择名称,这个根据你的需要,你想选择显示基础资料的什么信息.

单据体新增字段


在单据分录右键新增字段和单据头新增一样
单据的美化调整,自适应
可以通过拖拽控件位置然后点击规范布局

就调整好了,自适应首先在金蝶BOS设计开发工具下点击单据空白处,在属性的布局设置为KD_Layout

然后选择单个控件进行一一锚定

一般情况下,控件上边都是固定距离,底边不锚定,靠左边边界的左边固定距离,右边边界的右边固定距离,其他的等比缩放.
剩下的功能在java视图下完成

我们写代码时在**ControllerBean里面写

使用快捷键Alt+Shift+S覆盖重写方法,可以选择你要实现的方法
1.createNewData()主要时给字段赋值
/**
* output createNewData method
*/
protected com.kingdee.bos.dao.IObjectValue createNewData()
{
com.kingdee.eas.custom.assertacceptanceform.AssertAcceptInfo objectValue = new com.kingdee.eas.custom.assertacceptanceform.AssertAcceptInfo();
objectValue.setCreator((com.kingdee.eas.base.permission.UserInfo)(SysContext.getSysContext().getCurrentUser()));
try {
// ChangetypeInfo changetypeInfo=ChangetypeFactory.getRemoteInstance().getChangetypeInfo(new ObjectUuidPK("+5uT4cVvR8e1NIuQPPHMtWD1vyw="));
// ChangetypeInfo changetypeInfo =(ChangetypeInfo) ChangetypeFactory.getRemoteInstance().getValue(new ObjectUuidPK("+5uT4cVvR8e1NIuQPPHMtWD1vyw="));
// ChangetypeInfo changetypeInfo=changetypeInfo1.get(0);
// BOSUuid create = BOSUuid.create(changetypeInfo.getBOSType());
//根据id查询不同的info对象
FaAlterModeInfo faAlterModeInfo=FaAlterModeFactory.getRemoteInstance().getFaAlterModeInfo(new ObjectUuidPK("4ff9eebb-0108-1000-e001-0c65c0a813c839B5C1AB"));
FaUseStatusInfo faUseStatusInfo=FaUseStatusFactory.getRemoteInstance().getFaUseStatusInfo(new ObjectUuidPK("5b35cf51-0101-1000-e000-ced1c0a83c7f6E274F2B"));
CurrencyInfo currencyInfo=CurrencyFactory.getRemoteInstance().getCurrencyInfo(new ObjectUuidPK("dfd38d11-00fd-1000-e000-1ebdc0a8100dDEB58FDC"));
//获取当前登录人对象
UserInfo currentUserInfo = SysContext.getSysContext().getCurrentUserInfo();
PersonInfo personInfo = PersonFactory.getRemoteInstance().getPersonInfo(new ObjectUuidPK(currentUserInfo.getPerson().getId().toString()));
// //获取当前登录人的职位
EntityViewInfo viewInfo = new EntityViewInfo();
//查询指定字段
SelectorItemCollection selector = new SelectorItemCollection();
//查询的字段
selector.add(new SelectorItemInfo("position.id"));
selector.add(new SelectorItemInfo("position.number"));
selector.add(new SelectorItemInfo("position.name"));
selector.add(new SelectorItemInfo("position.adminOrgUnit.id"));
selector.add(new SelectorItemInfo("position.adminOrgUnit.number"));
selector.add(new SelectorItemInfo("position.adminOrgUnit.name"));
selector.add(new SelectorItemInfo("id"));
selector.add(new SelectorItemInfo("number"));
selector.add(new SelectorItemInfo("name"));
//查询条件
FilterInfo filterInfo = new FilterInfo();
filterInfo.getFilterItems().add(new FilterItemInfo("person.id",personInfo.getId(),CompareType.EQUALS));
filterInfo.getFilterItems().add(new FilterItemInfo("isPrimary",1,CompareType.EQUALS));
viewInfo.setFilter(filterInfo);
viewInfo.setSelector(selector);
PositionMemberCollection collection = PositionMemberFactory.getRemoteInstance().getPositionMemberCollection(viewInfo);
PositionMemberInfo positionMemberInfo = collection.get(0);
//获取职位对象
PositionInfo position = positionMemberInfo.getPosition();
//获取组织部门
AdminOrgUnitInfo adminOrgUnit = position.getAdminOrgUnit();
//获取币别
EntityViewInfo entityViewInfo=new EntityViewInfo();
//查询结果
SelectorItemCollection selectorrate=new SelectorItemCollection();
//查询指定字段
selectorrate.add(new SelectorItemInfo("*"));
//查询条件
FilterInfo filterrate=new FilterInfo();
filterrate.getFilterItems().add(new FilterItemInfo("exchangeAux.targetCurrency.number",currencyInfo.getNumber(),CompareType.EQUALS));
//添加条件
entityViewInfo.setFilter(filterrate);
//添加查询字段
entityViewInfo.setSelector(selectorrate);
//创建汇率实例
ExchangeRateCollection exchangeRateCollection=ExchangeRateFactory.getRemoteInstance().getExchangeRateCollection(entityViewInfo);
// String rateValue="";
// if(exchangeRateCollection.size()>0){
ExchangeRateInfo exchangeRateInfo = exchangeRateCollection.get(0);
// }
//给申请人职位和申请人部门赋值
//赋值给资产验收单
objectValue.setQueUser(personInfo);
objectValue.setChangeType(faAlterModeInfo);
objectValue.setUseStaus(faUseStatusInfo);
objectValue.setCurrency(currencyInfo);
objectValue.setQueUserPosition(position);
objectValue.setQueUseDepartment(adminOrgUnit);
objectValue.setRate(exchangeRateInfo);
} catch (EASBizException e) {
e.printStackTrace();
} catch (BOSException e) {
e.printStackTrace();
}
return objectValue;
}1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 2.页面加载时的方法onLoad,这个方法的执行顺序在create NewData方法之前
@Override
public void onLoad() throws Exception {
super.onLoad();
this.contAssisetType.setEnabled(false);
//对下拉框选择添加事件
InspectType.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
//处理验收类型选择事件
actionInspectType_actionPerformed(e);
}
/**
* 验收类型选择事件
* @param e
*/
private void actionInspectType_actionPerformed(ActionEvent e) {
//获取验收类型框的值
KDComboBox kdBox=(KDComboBox)e.getSource();
InspectType inspectType=(InspectType) kdBox.getSelectedItem();
String value=inspectType.getValue();
setEnable(value);
}
/**
* 设置资产类别的enable事件
* @param value
*/
private void setEnable(String value) {
if ("1".equals(value)) {
contAssisetType.setEnabled(true);
contFyhpType.setEnabled(false);
} else if("2".equals(value)){
contAssisetType.setEnabled(false);
contFyhpType.setEnabled(true);
}
}
});
//分录添加监听
kdtEntrys.addKDTPropertyChangeListener(kdListener);
//获取分录中的F7控件对象
Object obj=kdtEntrys.getColumn("material").getEditor().getComponent();
if(obj instanceof KDBizPromptBox){
KDBizPromptBox prmtF7=(KDBizPromptBox)obj;
EntityViewInfo entityViewInfo=new EntityViewInfo();
FilterInfo filterInfo=new FilterInfo();
filterInfo.getFilterItems().add(new FilterItemInfo("name","%电脑%",CompareType.LIKE));
entityViewInfo.setFilter(filterInfo);
//F7控件设置实体视图信息
prmtF7.setEntityViewInfo(entityViewInfo);
}
//调用方法实现分录添加默认值
// addKdtEntryDetailPanelListener();
//调用物料F7控件显示树状菜单
// getMaterialF7ForReportFilterUI();
}
// public KDBizPromptBox getMaterialF7ForReportFilterUI() {
// KDBizPromptBox kdPromptBox = new KDBizPromptBox();
// Object obj=kdtEntrys.getColumn("material").getEditor().getComponent();
// if(obj instanceof KDBizPromptBox){
// kdPromptBox=(KDBizPrEAS二次开发的入门参考
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



