5

在我们的一个 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 中链接到私人报告是否有任何替代方法?

4

0 回答 0