Oracle-Apex 分拣穿梭车
Oracle-Apex sorting shuttle
我创建了 "many to many relationship using a shuttle"
当我从 LOV select ROLE_NAME 时,我想在右侧查看 selected 角色的特权,在左侧查看哪个角色没有的特权。
相反,我在右侧看到哪个角色没有的特权,在左侧看到这个角色的特权。
有多种问题导致了此行为。
- 您看到的项目在错误的一边,因为您切换了值列表 "SQL Query" 和 "Source"。 SQL 查询应 return 所有可能的值。 "Source" 是选定的值。
- 航天飞机上有层叠的LOV。这不是层叠的爱所做的。级联 lov 控制可供选择的可用值(例如,如果 lov 1 是 REGIONS,lov 2 是国家,那么您的级联 lov 会将 lov 2 限制为 lov 1 中该地区的国家 - 这不是您的值列表中的情况.你想改变所选角色的selected values.所以你需要在lov上动态操作来刷新穿梭值而不是级联lov.
- 存在提交页面的现有动态操作。这不是必需的。相反,您可以使用带有动作 "Set Value" 的动态动作将穿梭值设置为所选角色的值。
- 您的数据库操作仅执行插入操作。这意味着如果您再次单击 "Save" 以获得已具有权限的角色,您将创建重复的值。
我已经修复了您工作区中名为“shuttle-test - KOEN”的应用程序中的所有问题(除了最后一个问题,页面处理)
还有一件事:页面项在 apex 中的命名约定是
P#page_number#_ITEMNAME。我强烈建议你坚持下去。
Rgds
科恩
您正在选择未分配给 LOV 项目(角色)的权限。所以它在右侧显示了未分配的角色。
如果您从查询中删除 NOT,那么它将在右侧显示分配的角色,在左侧显示要分配的角色
SELECT priv_id
FROM privileges s1
WHERE NOT EXISTS (SELECT 1
FROM roles s2
WHERE s2.fk_priv_id = s1.priv_id
AND s2.fk_role_id = :P_4_LOV
);
应该是
SELECT priv_id
FROM privileges s1
WHERE EXISTS (SELECT 1
FROM roles s2
WHERE s2.fk_priv_id = s1.priv_id
AND s2.fk_role_id = :P_4_LOV
);
我创建了 "many to many relationship using a shuttle" 当我从 LOV select ROLE_NAME 时,我想在右侧查看 selected 角色的特权,在左侧查看哪个角色没有的特权。
相反,我在右侧看到哪个角色没有的特权,在左侧看到这个角色的特权。
有多种问题导致了此行为。
- 您看到的项目在错误的一边,因为您切换了值列表 "SQL Query" 和 "Source"。 SQL 查询应 return 所有可能的值。 "Source" 是选定的值。
- 航天飞机上有层叠的LOV。这不是层叠的爱所做的。级联 lov 控制可供选择的可用值(例如,如果 lov 1 是 REGIONS,lov 2 是国家,那么您的级联 lov 会将 lov 2 限制为 lov 1 中该地区的国家 - 这不是您的值列表中的情况.你想改变所选角色的selected values.所以你需要在lov上动态操作来刷新穿梭值而不是级联lov.
- 存在提交页面的现有动态操作。这不是必需的。相反,您可以使用带有动作 "Set Value" 的动态动作将穿梭值设置为所选角色的值。
- 您的数据库操作仅执行插入操作。这意味着如果您再次单击 "Save" 以获得已具有权限的角色,您将创建重复的值。
我已经修复了您工作区中名为“shuttle-test - KOEN”的应用程序中的所有问题(除了最后一个问题,页面处理)
还有一件事:页面项在 apex 中的命名约定是 P#page_number#_ITEMNAME。我强烈建议你坚持下去。
Rgds 科恩
您正在选择未分配给 LOV 项目(角色)的权限。所以它在右侧显示了未分配的角色。
如果您从查询中删除 NOT,那么它将在右侧显示分配的角色,在左侧显示要分配的角色
SELECT priv_id
FROM privileges s1
WHERE NOT EXISTS (SELECT 1
FROM roles s2
WHERE s2.fk_priv_id = s1.priv_id
AND s2.fk_role_id = :P_4_LOV
);
应该是
SELECT priv_id
FROM privileges s1
WHERE EXISTS (SELECT 1
FROM roles s2
WHERE s2.fk_priv_id = s1.priv_id
AND s2.fk_role_id = :P_4_LOV
);