我正在 APEX 18.2 中构建个人知识库应用程序,并且在使用导航菜单条目传递项目值时报告查询不正确/未正确显示的奇怪问题。
我有一张表作为来源:
HELP_GUIDE(
HELP_GUIDE_ID NUMBER PRIMARY KEY
APPLICATION_ID NUMBER
PAGE_ID NUMBER
TITLE VARCHAR2(255 BYTE)
SUBTITLE VARCHAR2(255 BYTE)
REGION VARCHAR2(255 BYTE)
SECTION VARCHAR2(255 BYTE)
HELP_TEXT CLOB
)
我正在使用下面的 PL/SQL 函数在经典报告中显示 HELP_TEXT 列。该列包含使用 APEX 富文本编辑器创建的文本+图像。
return q'~
select "HELP_GUIDE_ID",
"APPLICATION_ID",
"PAGE_ID",
"TITLE",
"SUBTITLE",
"REGION",
"SECTION",
"HELP_TEXT"
from "#OWNER#"."HELP_GUIDE"
where "APPLICATION_ID"=:P3_APPLICATION_ID
and (TITLE=:P3_TITLE OR :P3_TITLE IS NULL)
and (SUBTITLE=:P3_SUBTITLE OR :P3_SUBTITLE IS NULL)
and (REGION=:P3_REGION OR :P3_REGION IS NULL)
and (SECTION=:P3_SECTION OR :P3_SECTION IS NULL)
~';
我使用导航菜单条目来设置项目值(APPLICATION_ID、TITLE 等),因此我可以过滤页面上显示的内容。但是我没有看到一致的行为。似乎一旦使用了导航条目之一(子项),APEX 将继续显示相同的结果。您可以在问题视频中看到行为
我已经尝试添加 DA 以刷新页面提交后刷新,处理刷新,创建新页面(复制上一页)然后将其用作导航链接,已为每个链接设置了清除缓存但得到相同的结果。
任何帮助都非常受欢迎。
编辑:
在进一步的测试过程中,问题得到了解决。添加更清晰的描述和分辨率:
设置了“设置这些项目值”的导航条目应该充当过滤器,该过滤器将传递 P3 项目(表单页面项目)值,然后 SQL 表达式将使用这些值。
缺少的是每次调用导航时清除第 3 页(表单页面)的缓存,因此只需在导航条目设置的清除缓存部分添加第 3 页即可解决问题。