引用 Oracle APEX 中的隐藏项

Referencing Hidden Item in Oracle APEX

所以我有一个 select 列表和一个隐藏的页面项,我想根据隐藏项的值动态更新 select 列表。

我的select列表代码如下:

if :P26_HIDDEN_ITEM != 'Other'
then
return
q'[SELECT DISTINCT tag d, tag r 
FROM builds
WHERE instr(tag,:p26_env_storage)>0
OR tag = 'tagged']';
else
return
q'[SELECT DISTINCT tag d, tag r 
FROM builds
WHERE tag = 'tagged']';

现在我相信我的代码没有问题,当我将隐藏项目设为任何其他形式的页面项目或什至引用另一个页面项目(例如 select 列表时,查询会按预期运行,但是当 :P26_HIDDEN_ITEM 被隐藏时,查询只运行 else 语句,忽略查询的上半部分。

如果我也改变条件,问题是一样的,它总是直接进入 else 语句。我还知道一个事实:P26_HIDDEN_ITEM 更新,因为我在会话中多次检查过它。

那么有没有办法像这样引用隐藏的项目,或者我需要走不同的路线?

如果有帮助,我正在使用 APEX 4.2.2。

您可以使用简单的基于查询的 LOV 产生相同的效果:

SELECT DISTINCT tag d, tag r 
FROM builds
WHERE (:P26_HIDDEN_ITEM != 'Other'
  AND (instr(tag,:p26_env_storage)>0 OR tag = 'tagged')
OR (NVL(:P26_HIDDEN_ITEM,'Other') = 'Other'
  AND tag = 'tagged');

确保 P26_HIDDEN_ITEM,P26_ENV_STORAGE 列在 级联 LOV 父项中