You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据页面项值隐藏Interactive Report的‘保存报表’选项?

在Oracle APEX交互式报表(IR)中根据页面项值隐藏“保存报表”选项

你已经在交互式网格(IG)里实现了根据页面项值隐藏报表保存相关操作的功能,但交互式报表(IR)的API和IG不一样,没法直接套用IG的代码。下面是适配IR的具体实现方案:

你的IG实现代码(供参考)

function(config) {
  config.initActions = function( actions ) {
    $(() => {
      if ( $v("P0_READONLY_USER") === "Y" ) {
        apex.region("todo").widget().interactiveGrid("getActions").hide("save-report");
        apex.region("todo").widget().interactiveGrid("getActions").hide("show-save-report-as-dialog");
        apex.region("todo").widget().interactiveGrid("getActions").hide("show-edit-report-dialog");
      }
    });
  }
  return config;
}

IR的实现步骤及代码

IR的操作菜单由apex.actions管理,需要在报表的JavaScript初始化代码中配置:

  1. 打开目标交互式报表的属性面板,找到「JavaScript初始化代码」配置项
  2. 填入以下代码(记得把YOUR_IR_STATIC_ID替换成你的IR实际静态ID):
function(config) {
    config.initActions = function(actions) {
        $(() => {
            if ($v("P0_READONLY_USER") === "Y") {
                // 隐藏IR中保存/编辑报表的相关操作
                actions.hide("saveReport");
                actions.hide("saveReportAs");
                actions.hide("editReport");
            }
        });
    };
    return config;
}

关键差异说明

  • IR的操作项ID和IG不同:saveReport对应「保存报表」,saveReportAs对应「另存为报表」,editReport对应「编辑报表」
  • IR无需通过region获取widget,直接在initActions回调里使用actions对象调用hide()方法即可隐藏操作
  • 依旧用$v("P0_READONLY_USER")获取页面项的值来判断是否触发隐藏逻辑

内容的提问来源于stack exchange,提问作者Adeel Aslam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 00:32:29