编码规则添加的属性值为连接属性,为何获取不到值,如何处理?原创
金蝶云社区-余路生
余路生
2人赞赏了该文章 318次浏览 未经作者许可,禁止转载编辑于2020年05月14日 14:29:06

image.png

image.png
例如,采购申请单上的供应商编码作为属性值,生成编码的时候,却获取不到供应商的编码。
这是因为供应商字段是采购申请单的连接属性, 采购申请单实体,是通过供应商的id来关联,
获取的采购申请单供应商实体,只有id属性有值,其它属性没有值。
这就导致生成编码的时候,供应商的编码获取不到,
那么如何处理呢,这需要二次开发修改。
重写save方法,获取供应商的实体,再重新给editData设置供应商,
这样,从editData获取到的供应商实体,就有值了,
然后获取单据编码,给控件设置编码,如下图所示:
image.png



/*

* 获取编码规则

*/

public static String getAutoCode(Context ctx,

com.kingdee.eas.framework.ObjectBaseInfo objValue)

throws EASBizException, BOSException {

ICodingRuleManager codeRuleMgr = null;

String companyId = null;

if (ctx == null) {

companyId = SysContext.getSysContext().getCurrentOrgUnit().getId()

.toString();

codeRuleMgr = CodingRuleManagerFactory.getRemoteInstance();

} else {

companyId = com.kingdee.eas.base.permission.ContextUtils

.getCurrentCompanyOrg(ctx);

codeRuleMgr = CodingRuleManagerFactory.getLocalInstance(ctx);

}

return codeRuleMgr.getNumber(objValue, companyId);

}


赞 2