我如何以编程方式将 Apex 5 报告恢复到默认状态?
How do I programmatically restore an Apex 5 report to default state?
我在 Apex 5 中有一个交互式报告,每次加载页面时,我希望它看起来与我第一次 运行 使用默认设置时显示的完全一样。
问题是,如果用户应用任何过滤器或隐藏列,下次加载页面时,报告会记住该配置。
我尝试使用此处未记录的 APEX_IR.RESET_REPORT 过程:
https://docs.oracle.com/database/121/AEAPI/apex_ir.htm#BABEJAFB
但它要么不起作用,要么只撤销上次更改,或者需要很多 运行 才能真正起作用。
我尝试使用以下代码在页面加载时执行动态操作:
DECLARE
v_region_id APEX_APPLICATION_PAGE_REGIONS.REGION_ID%TYPE;
BEGIN
SELECT region_id INTO v_region_id
FROM APEX_APPLICATION_PAGE_REGIONS
WHERE application_id = :APP_ID
AND page_id = :APP_PAGE_ID
AND static_id = 'Images_Report';
APEX_IR.RESET_REPORT(
P_page_id => :APP_PAGE_ID,
P_region_id => v_region_id,
p_report_id => null
);
END;
我也试过这个代码
DECLARE
v_region_id APEX_APPLICATION_PAGE_REGIONS.REGION_ID%TYPE;
BEGIN
SELECT region_id INTO v_region_id
FROM APEX_APPLICATION_PAGE_REGIONS
WHERE application_id = :APP_ID
AND page_id = :APP_PAGE_ID
AND static_id = 'Images_Report';
APEX_IR.RESET_REPORT(
P_page_id => :APP_PAGE_ID,
P_region_id => v_region_id,
p_report_id => APEX_IR.GET_LAST_VIEWED_REPORT_ID(
p_page_id => :APP_PAGE_ID,
p_region_id => v_region_id
)
);
END;
我希望每次加载页面时报告看起来都处于默认状态(首先 运行)。
相反,报告显示最后状态,即使用户注销、登录并重新启动应用程序也是如此。
在 URL
中将 RIR 作为清除缓存参数发送
URL 看起来像
f?p=102:94:6722612001859::NO:RIR::
https://docs.oracle.com/database/apex-5.1/HTMDB/understanding-url-syntax.htm#HTMDB03019
有关 apex_ir.reset_report 程序的文档说明了这一点
This procedure should only be used in page submit processes.
这可能是您遇到问题的原因
我在 Apex 5 中有一个交互式报告,每次加载页面时,我希望它看起来与我第一次 运行 使用默认设置时显示的完全一样。
问题是,如果用户应用任何过滤器或隐藏列,下次加载页面时,报告会记住该配置。
我尝试使用此处未记录的 APEX_IR.RESET_REPORT 过程:
https://docs.oracle.com/database/121/AEAPI/apex_ir.htm#BABEJAFB
但它要么不起作用,要么只撤销上次更改,或者需要很多 运行 才能真正起作用。
我尝试使用以下代码在页面加载时执行动态操作:
DECLARE
v_region_id APEX_APPLICATION_PAGE_REGIONS.REGION_ID%TYPE;
BEGIN
SELECT region_id INTO v_region_id
FROM APEX_APPLICATION_PAGE_REGIONS
WHERE application_id = :APP_ID
AND page_id = :APP_PAGE_ID
AND static_id = 'Images_Report';
APEX_IR.RESET_REPORT(
P_page_id => :APP_PAGE_ID,
P_region_id => v_region_id,
p_report_id => null
);
END;
我也试过这个代码
DECLARE
v_region_id APEX_APPLICATION_PAGE_REGIONS.REGION_ID%TYPE;
BEGIN
SELECT region_id INTO v_region_id
FROM APEX_APPLICATION_PAGE_REGIONS
WHERE application_id = :APP_ID
AND page_id = :APP_PAGE_ID
AND static_id = 'Images_Report';
APEX_IR.RESET_REPORT(
P_page_id => :APP_PAGE_ID,
P_region_id => v_region_id,
p_report_id => APEX_IR.GET_LAST_VIEWED_REPORT_ID(
p_page_id => :APP_PAGE_ID,
p_region_id => v_region_id
)
);
END;
我希望每次加载页面时报告看起来都处于默认状态(首先 运行)。
相反,报告显示最后状态,即使用户注销、登录并重新启动应用程序也是如此。
在 URL
中将 RIR 作为清除缓存参数发送URL 看起来像
f?p=102:94:6722612001859::NO:RIR::
https://docs.oracle.com/database/apex-5.1/HTMDB/understanding-url-syntax.htm#HTMDB03019
有关 apex_ir.reset_report 程序的文档说明了这一点
This procedure should only be used in page submit processes.
这可能是您遇到问题的原因