辅助资料按条件设定默认值【分享】
金蝶云社区-云社区用户4u731234
云社区用户4u731234
4人赞赏了该文章 2,016次浏览 未经作者许可,禁止转载编辑于2016年07月28日 13:13:38

之前写过基础资料按条件设定默认值
配置实现基础资料字段按条件设定默认值【分享】
https://vip.kingdee.com/article/33033

这里来个姊妹篇,辅助资料按条件设定默认值。
原始需求是:
实体服务规则默认国家,英文版本如何实现
https://vip.kingdee.com/article/18430

实现的示例:
【供应商】的“简称”字段,当里面包含“USA”字样时,
“国家” 辅助资料设定默认值为“美国”,否则为“中国”。

效果:
当“简称”字段输入值后,国家默认设置为“中国”,


当“简称”字段输入值包含“USA”字样后,国家默认切换为“美国”

效果看到了,
上相关配置,其实很简单,通过“实体服务规则”配置实现。


看到这里你可能会问,
设置的计算公式=的一长串值是怎么来的,
其是这个和基础资料设置默认值的公式是一样的,是“国家”类型辅助资料里面的“美国”国家内码。
[code] FCountry = 'f98a3ac14f0b4397a332b2353f1fc66c'[/code]
怎么证明是呢?
证明材料, 通过辅助资料类别编码查找 辅助资料 SQL语句

其中的实体服务规则前提条件设定,简称多语言字段包含“USA”字样,
[code]FShortName.find('USA') >=0[/code]

附上查找辅助资料的SQL语句:
[code]/*
通过辅助资料类别编码查找 辅助资料
by wanghl 2016-7-28
*/
declare @FID varchar(50)
select
@FID = FID
from T_BAS_ASSISTANTDATA
where FNUMBER = 'Country'--辅助资料类别编码

select
(select
FNAME
from T_BAS_ASSISTANTDATA_L
where FID = T_BAS_ASSISTANTDATA.FID and FLOCALEID = 2052) '辅助资料类别'
,* from T_BAS_ASSISTANTDATA
where FID = @FID

select
FENTRYID
,(select FDATAVALUE
from T_BAS_ASSISTANTDATAENTRY_L
where FENTRYID = T_BAS_ASSISTANTDATAENTRY.FENTRYID and FLOCALEID = 2052) '辅助资料名称'
,*
from T_BAS_ASSISTANTDATAENTRY
where FID = @FID
[/code]

辅助资料类别的编码可以这样找:
打开【辅助资料列表】,选中左侧导航树国家,点击“编辑分组”,弹出界面,可以看到编码“Country”

完 谢谢