Oracle EBS 基础概念:值集@多层从属值集

参考: https://wenku.baidu.com/view/aa5de31b0066f5335a8121bc.html

需求:客户地址的省/市/ 区可为任意输入值,需要定义一个省/市/ 区的三级对应关系,选择省份后,市栏位只显示对应省份下的市,区栏位同理
在这里插入图片描述

客制地址格式
系统标准的地址格式,诸如客户地址、供应商地址、银行地址之类的默认的格式为:
在这里插入图片描述
默认格式不是很好,想设置为(省、市、区、镇、街道)。
先看一下“地址”弹性域的结构,系统其实有默认的五类“地址”类型可选 择,如:英国、日本等格式
在这里插入图片描述
手工创建一个自已的地址格式
在这里插入图片描述在这里插入图片描述
“ADDRESS_STYLE”快速编码,添加代码为“CN”的行记录,代码要与弹性域结构中定义的值要一致。
在这里插入图片描述
应收职责->设定 -> 系统 ->国别; 选择地址样式。
在这里插入图片描述
设置效果:
在这里插入图片描述
需求:
上述地址的省/市/ 区可为任意输入值,需要定义一个省/市/ 区的三级对应关系,选择省份后,市栏位只显示对应省份下的市,区栏位同理
在这里插入图片描述

从属值集需根据前置独立值集的取值进行相应的值设置,可定义一个省/市的二级对应关系,
很遗憾的,ORACLE 的标准功能是不支持多值集从属的,即市级使用从属值集后,区级的从属值集不能根据从属值集的取值进行相应的值设置。

利用独立值集/从属值集将无能为力。但是这多层次的从属在我们身边太常见了,有什么方法 可以实现这个需求呢?我们可以从值集中下手:


方法1:编码划分区域
行政区域的划分可以按国家统一编码,前两位表示省级代码,中间两位表示市级代码, 末两位表示区级代码
在这里插入图片描述
Step1. 定义一个独立值集:行政区域值集
在这里插入图片描述在这里插入图片描述
Step2: 定义省/市/ 区级使用的表验证值集
Province: 层次为0
在这里插入图片描述在这里插入图片描述

   hierarchy_level = 0
   and flex_value_set_id = 
           (select flex_value_set_id
             from fnd_flex_value_sets
            where flex_value_set_name = 'Regionalism')  

City: 层次为1,且前两位代码为省级栏位选择的值
在这里插入图片描述在这里插入图片描述

    substr(flex_value, 1, 2) = :$FLEX$.Province
and hierarchy_level = 1
and flex_value_set_id =  
        (select flex_value_set_id 
           from fnd_flex_value_sets 
          where flex_value_set_name = 'Regionalism')

District: 层次为2,且前两位代码为省级栏位选择的值,中间两位为市级栏位选择的值
在这里插入图片描述
在这里插入图片描述

    substr(flex_value, 1, 2) = :$FLEX$.Province
and substr(flex_value, 3, 2) = :$FLEX$.City 
and hierarchy_level = 2
and flex_value_set_id =        
        (select flex_value_set_id 
           from fnd_flex_value_sets 
          where flex_value_set_name = 'Regionalism')

Step3: 将值集应用于地址弹性域
在这里插入图片描述Step4: 测试效果
在这里插入图片描述在这里插入图片描述在这里插入图片描述

方法2:编码划分区域
方法1客制的地址格式界面只能显示代码,代码和描述栏位是否可调换一下。
在这里插入图片描述在这里插入图片描述
Province_2: 层次为0
在这里插入图片描述在这里插入图片描述

   hierarchy_level = 0
   and flex_value_set_id = 
           (select flex_value_set_id
             from fnd_flex_value_sets
            where flex_value_set_name = 'Regionalism_2')

City_2: 层次为1,描述(即代码)的前两位为省级栏位选择的值对应的描述的前两位
在这里插入图片描述在这里插入图片描述

substr(description,1,2) = (  select substr(description,1,2)
                                          from FND_FLEX_VALUES_VL
                                         where hierarchy_level = 0
                                           and flex_value_set_id =  
                                                   (select flex_value_set_id 
                                                      from fnd_flex_value_sets 
                                                     where flex_value_set_name = 'Regionalism_2')
                                           and flex_value = :$FLEX$.Province_2)
      and hierarchy_level = 1
      and flex_value_set_id =  
        (select flex_value_set_id 
           from fnd_flex_value_sets 
          where flex_value_set_name = 'Regionalism_2')

District_2: 层次为2,描述(即代码)的前两位为省级栏位选择的值对应的描述的前两位
描述(即代码)的中间两位为市级栏位选择的值对应的描述的中间两位
在这里插入图片描述
在这里插入图片描述

substr(description,1,2) = (  select substr(description,1,2)
                                          from FND_FLEX_VALUES_VL
                                         where hierarchy_level = 0
                                           and flex_value_set_id =  
                                                   (select flex_value_set_id 
                                                      from fnd_flex_value_sets 
                                                     where flex_value_set_name = 'Regionalism_2')
                                           and flex_value = :$FLEX$.Province_2)
                                                                  
       and  substr(description,3,2) = (  select substr(description,3,2)
                                          from FND_FLEX_VALUES_VL
                                         where hierarchy_level = 1
                                           and flex_value_set_id =  
                                                   (select flex_value_set_id 
                                                      from fnd_flex_value_sets 
                                                     where flex_value_set_name = 'Regionalism_2')
                                           and flex_value = :$FLEX$.City_2)
      and hierarchy_level = 2
      and flex_value_set_id =  
        (select flex_value_set_id 
           from fnd_flex_value_sets 
          where flex_value_set_name = 'Regionalism_2')

地址弹性栏位应用新的值集
在这里插入图片描述
测试效果:
在这里插入图片描述


方法3:定义从属关系
在这里插入图片描述在这里插入图片描述
Province_3: 层次为0
在这里插入图片描述在这里插入图片描述

   hierarchy_level = 0
   and flex_value_set_id = 
           (select flex_value_set_id
             from fnd_flex_value_sets
            where flex_value_set_name = 'Regionalism_3')

City_3: 层次为1,描述为省级栏位选择的值
在这里插入图片描述
在这里插入图片描述

    description = :$FLEX$.Province_3
and hierarchy_level = 1
and flex_value_set_id =  
        (select flex_value_set_id 
           from fnd_flex_value_sets 
          where flex_value_set_name = 'Regionalism_3')

District_3: 层次为2,描述为市级栏位选择的值
在这里插入图片描述
在这里插入图片描述

    description = :$FLEX$.City_3
and hierarchy_level = 2
and flex_value_set_id =  
        (select flex_value_set_id 
           from fnd_flex_value_sets 
          where flex_value_set_name = 'Regionalism_3')

地址弹性栏位应用新的值集
在这里插入图片描述
测试效果:
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值