【问题标题】:Restrict LOV based on multiple LOV's基于多个 LOV 限制 LOV
【发布时间】:2022-01-03 03:53:37
【问题描述】:
  • 我有一个包含城市的城市列:(纽约、迈阿密)。
  • 还有一个包含区域的区域列:(北、南、西、东)。
  • 和商店栏:(商店a,商店b,商店c)

假设我有以下记录

1- (New York, North, Shop a) 
2- (Miami, North, shop c)
3-  (New York, south, Shop b)

我需要创建三个LOV,第一个是城市,第二个是区域,最后一个是商店。如果我从数据库中选择城市 LOV 中的纽约,我需要区域 LOV 中的区域选项为北和南,如果我选择北,我只希望商店 a 出现在商店 LOV 中。

【问题讨论】:

    标签: sql oracle plsql oracle-apex


    【解决方案1】:

    你在哪里有那些“跟踪记录”?在一张桌子上?我猜。

    基本上,您必须创建值列表的级联列表。

    第一个 LoV(例如 P1_CITY 项目)将包含城市:

    select distinct city d, city r
    from your_table
    order by city
    

    第二个(用于P1_AREA 项目)将选择属于所选城市的区域:

    select distinct area d, area r
    from your_table
    where city = :P1_CITY
    order by area
    

    不要忘记为第二个 LoV 设置 Cascading LoV 属性!应该是P1_CITY item。

    商店也是如此:

    select distinct shop d, shop r
    from your_table
    where city = :P1_CITY
      and area = :P1_AREA
    order by shop
    

    通过将级联 LoV 设置为 P1_CITY, P1_AREA

    【讨论】:

    • 是的,在表格中。如果 area 为空(我没有选择区域,我选择了城市),商店 LOV 是否会向我显示与所选城市相关的所有商店?
    • 不,它会返回 nothing。您应该将 WHERE 子句修改为 ... and (area = :P1_AREA or :P1_AREA is null)
    • 好。如果我还有一个 LoV,比如说邻居,查询将是这样的: . . .和 (area =:p1_area 或 :p1_area 为空) 和 (neighbourhood =:p1_ 邻域或 :p1_ 邻域为空) 对吗?
    • 完全一样,是的。
    • 谢谢你,你帮了我很多:)
    猜你喜欢
    • 1970-01-01
    • 2018-07-26
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多