在我们的一个 APEX 5 应用程序中,我们使用了一个下拉框,允许用户在同一应用程序中选择目标交互式报告。然后应用程序分支到目标页面,并显示报告。
在 APEX 4 中,这适用于公共和私人报告;我们使用此查询来获取可用报告的列表:
select distinct (sr.report_id || '(' || nvl(sr.report_name,
'Primary') || ')') as display_value,
sr.report_id as return_value
from apex_application_page_ir_rpt sr
where sr.application_id = v('APP_ID')
and ((sr.report_type = 'PRIVATE' and sr.created_by = upper(v('APP_USER'))) or
(sr.report_type = 'PRIMARY_DEFAULT'))
and sr.page_id <> v('APP_PAGE_ID')
order by 1
当用户从下拉列表中选择一个值时,它存储在P35_REPORT_LIST
. 然后我们使用这个值来为我们的分支构造目标 URL:
Declare
url_s varchar2(1000) := 'f?p=175:';
called_page number;
begin
select sr.page_id
into called_page
from apex_040200.apex_application_page_ir_rpt sr
where sr.report_id = :P35_REPORT_LIST;
url_s := URL_s || called_page || ':' || v('APP_SESSION') || ':IR_REPORT_' || :P35_REPORT_LIST ||
':NO::::P1_FILTER_BY_DEFAULT_SEARCH:1';
return url_s;
end;
但是,在 APEX 5 中,这不再有效;我们得到一个 APEXIR_REPORT_DOES_NOT_EXIST 错误。
APEX 5 文档 说:
9.4.17 链接到共享交互式报表
您可以在 URL 的请求值中使用 IR_REPORT_[report_alias] 链接到已保存的主要默认、备用默认和公共报告。
这似乎意味着您不能再链接到私人报告。此外,当您运行查询时
select page_id, interactive_report_id, report_link_example
from apex_application_page_ir_rpt sr
该REPORT_LINK_EXAMPLE
列对于私人报告是空的,这似乎也意味着链接到它们不再有效。
在 APEX 5 中链接到私人报告是否有任何替代方法?