EAS 扩展类开发
来源:互联网 发布:淘宝助手没有销售属性 编辑:程序博客网 时间:2024/05/16 06:10
eas开发过程中如果没有源码的情况下修改标准产品的功能需要通过扩展类的方式来做,下面具体讲解下:
1.客户端ui界面的扩展类:
该方式比较简单,只需要将扩展类的CTEx结尾即可
2.服务端扩展类(XXXcontrollerBean类)有两种方法:
方法一:
BOS中如何扩展标准产品的功能
如何扩展标准产品的功能:
1. 服务端controllerbean扩展方式:服务端需要进行标准产品的扩展需要修改两处内容:在实体上增加扩展属性并重新发布、新增扩展类并从controlbean实现类继承。
a. 修改实体或facade
需要在实体或facade的元数据中手工添加如下部分内容,添加完成后需要发布此实体元数据
<rs key="entityObject[com.kingdee.eas.scm.sm.pur.app.PurOrder].extendedProperty.controllerBeanEx">
<lang locale="en_US" value="com.kingdee.eas.scm.sm.pur.app.PurOrderControllerBeanEx" />
<lang locale="zh_CN" value="com.kingdee.eas.scm.sm.pur.app.PurOrderControllerBeanEx" />
<lang locale="zh_TW" value="com.kingdee.eas.scm.sm.pur.app.PurOrderControllerBeanEx" />
</rs>
例2:
<resource>
<rs key="entityObject[com.kingdee.eas.scm.sm.pur.app.PurOrder].extendedProperty.controllerBeanEx">
<lang locale="zh_CN" value="com.kingdee.eas.scm.sm.pur.app.PurOrderControllerBeanEx" />
<lang locale="zh_TW" value="com.kingdee.eas.scm.sm.pur.app.PurOrderControllerBeanEx" />
<lang locale="en_US" value="com.kingdee.eas.scm.sm.pur.app.PurOrderControllerBeanEx" />
com.kingdee.eas.scm.sm.pur.app.PurOrderControllerBeanEx是你的扩展类的全路径名称,名称可以任意
如果是需要对实体进行扩展,还可以通过如下方式:在bim工具中找到此实体对应的业务单元,打开并在“业务单元”菜单增加“功能”,增加一个空的功能后进行发布,即可自动生成类似上面的扩展属性部分内容。
b. 新增扩展类
按照第一步配置的扩展类名,从标准产品的ctrollerBean继承,进行相关方法和实现的覆写即可。如果发现父类中某些方法或属性是私有,则可以通过反射并修改访问属性来访问。
2. 客户端UI扩展方式:直接新增类比如VoucherEditUICTEx,从VoucherEditUI实现类继承,覆写其中方法,如果发现父类中某些方法或属性是私有,则可以通过反射并修改访问属性来访问。
注意:*CTEx ,前面的类名必须和标准产品的UI实现类名完全一致,并从此实现类继承过来。
方法二:
1、在 app 下新建 MetaDataFacade.Facade元数据,新增方法 registerExControllerBean(BOSObjectType bostype, String beanName) 。
2、发布,重写 MetaDataFacadeControllerBean 中的 _registerExControllerBean 方法:
protected boolean _registerExControllerBean(Context ctx,BOSObjectType bostype, String beanName) throws BOSException {
if(bostype == null || StringUtils.isEmpty(beanName)){
return false;
}
try {
Class.forName(beanName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
return false;
}
IMetaDataLoader loader = MetaDataLoaderFactory.getLocalMetaDataLoader(ctx);
BusinessObjectInfo biz = loader.getBusinessObject(bostype);
if(biz == null){
return false;
}
biz.setExtendedProperty(ConvertUtils.CONTROLLERBEANEX, beanName);
return true;
}
3、在 client 代码调用,在onLoad方法里面注册:
//注册后台扩展类
MetaDataFacadeFactory.getRemoteInstance().registerExControllerBean(BOSObjectType.create("29F55EA6"), "com.kingdee.eas.scm.sd.sale.app.SaleContractControllerBeanEx");
注:注册后台的扩展类,就是你前台哪里需要用,就在哪里注册
- EAS 扩展类开发
- eas bos 扩展类的创建
- 金蝶EAS BOS开发之扩展表应用
- 金蝶EAS BOS开发之扩展表应用
- EAS开发随记
- EAS开发通用
- EAS开发小工具
- EAS开发小工具
- EAS开发通用
- eas开发webservice
- 金蝶EAS DEP开发入门
- EAS DEP脚本开发 样例
- EAS开发问题解决方案汇总
- EAS BOS开发通用功能
- 解构 金蝶EAS 开发工具
- EAS BOS 开发问题集锦
- EAS BOS webservices 开发 之 形成EAS单据中的问题
- 开发BREW扩展类
- web garden和session
- Linux内核高端内存
- Race For Housing Is On (租房的比赛正在进行)
- 两个故事谈我对TEAM中人员的看法
- linux expect 用法小记
- EAS 扩展类开发
- ext 几个常用的控件
- eclipse 使用技巧备忘录
- Maya 2013 语言切换
- 通过Canvas及File API缩放并上传图片
- Camera 运行流程 与 Preview过程分析
- UVa - 10106 - Product
- NSThread应用
- 您的计算机上的 Office 2003 安装已损坏,安装程序无法继续。请删除或修复 Office 2003 产品并重新运行