首页 > 解决方案 > 如何在 Oracle APEX 中动态控制区域显示选择器?

问题描述

我希望根据用户进入该页面所遵循的链接来选择一个特定的区域以在页面加载时突出显示。这是一个包含多个选项的向下钻取报告,因此目标是提供所有选项,但专注于用户选择的选项,以减少用户必须导航到/从基础报告导航到向下钻取的次数.

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

我现在所拥有的与这些示例中显示的类似,现在我只是尝试链接到静态区域显示选择器 (RDS) 选项卡(目标是使所选区域根据哪个链接动态在进纸器页面中单击,但我显然还没有)。

我有一个动态操作设置为在页面加载事件上触发,以及一个执行 JavaScript 代码并在示例中使用 JavaScript 的 True 操作(无论是否有 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" );

标签: javascriptoracle-apexoracle-apex-5.1

解决方案


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

单击链接时,您需要设置该变量的值。

然后,您需要将静态 IDTAB1等添加TAB2到您的区域显示选择器的选项卡中。

然后在页面加载上添加一个 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');
} 

推荐阅读