问题12:如何修改F7 字段所关联的基础档案
在一般情况下,在BIM 视图对单据新增F7 字段时,就可以关联到想要的基础档案或其它视图。但是,当需要关联一些不存在业务单元(即*.bizunit 文件)的基础档案时(如:自定义核算项目)。此时就只能通过以下步骤来处理:
1.在BIM 里加一个F7 字段,关联物料或其他可以选到的基础资料。保存后先别发布;
2.切换到BOS 透视图,打到对应的.relation 文件,修改supplierEntity,原来是指定物料的实体,改成自定义核算项目的实体;
3.打开XXXEditUI.ui,修改F7 字段的queryInfo,原来是指向物料的query,改成自定义核算项目的query
问题15:如何通过IObjectPK pk获取实体对象
IObjectPK 是一个表示实体对象id 的对象,在日常开发工作中,经常需要通过它来获取实体对象。以下是通过IObjectPK 获取实体对象代码的模版:
I*Info i*Info = *Factory.getLocalInstance(ctx);
*Info info = i*Info.get*Info(pk);
以下示例,通过IObjectPK 获取成本对象实体:CostObjectInfo
ICostObject iCostInfo = CostObjectFactory.getLocalInstance(ctx);
CostObjectInfo coi = iCostInfo.getCostObjectInfo(pk);
问题16:如何通过实体对象的id获取实体对象
//如下代码,通过应收单的id 号,获取应收单表体实体
String entityID = “=dsfarlewkrjewrojafad”;
BOSUuid uid = BOSUuid.create(entityID);
IObjectPK opk = new ObjectUuidPK(uid);
OtherBillentryInfo obi = OtherBillentryFactory.getRemoteInstance().getOtherBillentryInfo(opk);
问题 23:如何获取当前用户
1、在UI 扩展类中,获取当前用户可通过工具类SysContext
如:SysContext.getSysContext().getCurrentUserInfo()
2、在ControlerBean 的扩展类中,获取当前用户可通过工具类ContextUtil
如:ContextUtil.getCurrentUserInfo(ctx)
关于 SysContext 和ContextUtil 这两个工具类中方法的介绍: 这两个类是 EAS 的全局工具类,用于获取当前用户信息,当前组织单元信息、客户端IP、客户端名字等信息。SysContext 用于客户端,如UI 扩展类中;而ContextUtil 用于服务端,如ControllerBean 扩展类中。
24:标准产品如何扩展类以便重写方法
- 对于客户端的UI类,无论是listUI,还是EditUI,都可以在通过追加后缀名CTEx的方式来扩展。如要重写标准产品采购订单的保存方法: com.kingdee.eas.scm.sm.pur.client.PurorderEditUI,在实际二次开发中,发布之后只会生成com.kingdee.eas.scm.sm.pur.client.AbstractPurorderEditUI,如果要重写保存的方法,则可以在com.kingdee.eas.scm.sm.pur.client包下新建PurorderEditUICTEx,此类继承PurorderEditUI类即可,然后在PurorderEditUICTEx重写保存方法。
- 服务端的扩展,主要是对bean的扩展,有两种方法
方法1.
1、在bim里面找到对应的业务单据XXX,打开“业务单元->功能”,新建一功能,然后发布。
2、切换到java视图,可以找到刚才的业务单据的XXXControllerBeanEx。
3、在XXXControllerBeanEx中覆盖对应的方法即可。
方法2.
新建一扩展类如:TestControllerBeanEx,然后在文本打开实体元数据,增加一扩展属性
<rs key="entityObject[com.kingdee.eas.custom.app.Test].extendedProperty.controllerBeanEx">
<lang locale="en_US" value="com.kingdee.eas.custom.app.TestControllerBeanEx" />
<lang locale="zh_CN" value="com.kingdee.eas.custom.app.TestControllerBeanEx" />
<lang locale="zh_TW" value="com.kingdee.eas.custom.app.TestControllerBeanEx" />
</rs>
注意上面的写法[com.kingdee.eas.custom.app.Test]中的"Test"是TestControllerBeanEx的controllerBeanEx前面的Test,可以参考该实体文件的其他的属性<rs ....> ... </rs>
备注
客户端的扩展针对行业版提供的是PIEx,为了不影响产品的后续维护,针对客户的客户端UI扩展务必使用后缀CTEx。