我正在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富文本编辑器创建的text + images。
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将继续显示相同的结果。您可以在video of issue
中查看行为我尝试添加DA来刷新页面帖子提交,刷新过程,创建新页面(复制上一页),然后将其用作导航链接,已为每个链接设置了清除缓存,但获得了相同的结果。
任何帮助都非常欢迎。
编辑:
在进一步测试期间,问题已解决。添加更清晰的描述和解决方案:
设置了“设置这些项目值”的导航条目应该用作过滤器,该过滤器将传递P3项目(表单页面项目)值,然后SQL表达式将使用这些值。
缺少的是每次调用导航时清除页面3(表单页面)的缓存,因此只需在导航条目设置的“清除缓存”部分添加页面3即可解决此问题。
答案 0 :(得分:0)
该链接后面没有视频。
无论如何:作为经典报告的来源,您似乎正在使用返回查询的函数体。为什么?通常在动态动态复杂的情况下使用。您编写的查询只是一个简单的简单查询。如果我是你,我会尝试一些简单的
SELECT help_guide_id,
application_id,
page_id,
title,
subtitle,
region,
section,
help_text
FROM 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)
摆脱双引号,如果创建的列名没有双引号(显然是双引号),则无需使用它们,因此它们的名称默认情况下为大写,并且您可以根据需要引用任何方式。
P3_...
项是第3页项(我的意思是,它们都与报告包含在同一页面上),为了刷新查询结果,您可以:
从我的角度来看,基本上是一个非常简单的任务。也许我没有看到明显的东西,但是-这就是我的想法。