如何在 Oracle APEX 中动态控制区域显示选择器?

问题描述

我希望根据用户访问该页面所遵循的链接,选择一个特定区域以在页面加载时突出显示。这是一个包含多个选项的向下钻取报告,因此目标是让所有选项都可用,但重点放在用户选择的选项上,以减少用户必须导航到/从基本报告导航到向下钻取的次数.

目前,我正在尝试实施此解决方https://svenweller.wordpress.com.../,在此处的 Oracle 社区讨论中进一步解释:https://community.oracle.com/...,但它对我不起作用。

我现在所拥有的与这些示例中显示的相似,现在我只是尝试链接到静态区域显示选择器 (RDS) 选项卡(目标是让所选区域基于动态在供稿器页面中单击了哪个链接,但我显然还没有)。

我有一个动态操作设置为触发页面加载事件,还有一个 True 操作执行 JavaScript 代码并使用示例中的 JavaScript(无论是否带有 Oracle 线程中建议的 Timeout 函数)。我已经为 RDS 和区域设置了静态 ID,但是当我加载页面时,RDS 仍然认为全部显示(如果全部显示关闭,则为第一个区域)。

有人能帮我理解我做错了什么吗?

谢谢。

let sesstorage = apex.storage.getScopedSessionStorage({
       useAppId:true,usePageId:true});
setTimeout(sesstorage.setItem( "tabs.activeTab","#R3" ) {    apex.region("tabs").widget().aTabs("getTabs")["#R3"].makeActive();},300);

\\version without setTimeout

let sesstorage = apex.storage.getScopedSessionStorage({
       useAppId:true,usePageId:true});
sesstorage.setItem( "tabs.activeTab","#R3" );

解决方法

我过去做过类似的事情。在页面P1_TEST上创建一个隐藏变量,一定要把值设置为不受保护。

您需要在点击链接时设置该变量的值。

然后您需要在区域显示选择器的选项卡中添加静态 ID TAB1TAB2 等。

然后在页面加载时添加 DA:

if (apex.item("P1_TEST").getValue() === "Value1"){
     $(".apex-rds [href='#TAB1']").trigger('click'); 
} else if (apex.item("P1_TEST").getValue() === "Value2"){
     $(".apex-rds [href='#TAB2']").trigger('click');
}