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

Oracle Apex交互式网格:选中/未选中行执行不同流程的实现咨询

在Oracle Apex交互式网格中根据行选中状态执行不同流程

下面分前端JavaScript和后端PL/SQL两种场景,实现"有选中行执行指定流程,无选中行执行另一流程"的逻辑:


一、前端JavaScript实现(客户端触发,无需提交页面)

适合按钮点击、网格事件触发的轻量操作,直接在页面动态动作中配置:

1. 获取交互式网格选中行

添加「执行JavaScript代码」的动态动作,替换ig_static_id为你的交互式网格静态ID:

var igWidget = apex.region("ig_static_id").widget();
var igGridModel = igWidget.interactiveGrid("getViews", "grid").model;
var selectedRows = igGridModel.getSelectedRecords();

2. 分支执行逻辑

在同一JavaScript代码块中,根据选中行数量判断并执行对应流程:

if (selectedRows.length > 0) {
    // 有行选中时,调用指定Ajax流程(需提前在共享组件创建)
    apex.server.process("FLOW_FOR_SELECTED_ROWS", {
        x01: "optional_param" // 传递自定义参数
    }, {
        success: function(response) {
            // 成功回调:比如刷新网格、提示消息
            igWidget.interactiveGrid("refresh");
            apex.message.showPageSuccess("选中行流程执行完成");
        }
    });
} else {
    // 无行选中时,调用另一Ajax流程
    apex.server.process("FLOW_FOR_NO_SELECTED_ROWS", {
        x01: "optional_param"
    }, {
        success: function(response) {
            apex.message.showPageSuccess("无选中行流程执行完成");
        }
    });
}

二、后端PL/SQL实现(服务器端触发,适合复杂业务逻辑)

如果需要执行数据库操作、调用存储过程等,可通过页面流程实现:

1. 创建PL/SQL流程步骤

在页面流程中新增「PL/SQL代码」类型的步骤,替换ig_static_id为你的网格静态ID:

DECLARE
    l_selected APEX_APPLICATION_GLOBAL.VC_ARR2;
BEGIN
    -- 获取交互式网格选中行ID集合
    l_selected := APEX_IG.GET_SELECTED_ROWS(
        p_page_id => :APP_PAGE_ID,
        p_region_id => APEX_UTIL.GET_REGION_ID('ig_static_id')
    );
    
    IF l_selected.COUNT > 0 THEN
        -- 有选中行时执行的业务逻辑
        -- 示例:调用存储过程、执行DML
        EXECUTE YOUR_SELECTED_PROC();
    ELSE
        -- 无选中行时执行的业务逻辑
        EXECUTE YOUR_UNSELECTED_PROC();
    END IF;
END;

2. 绑定按钮触发流程

将页面按钮的「动作」设置为「提交页面」,并指定触发上述PL/SQL流程。


注意事项

  • 交互式网格的静态ID可在区域属性的「高级」标签下查看。
  • 前端Ajax流程需在「共享组件 > Ajax回调」中创建,对应apex.server.process中的流程名称。
  • 若需要获取选中行的具体数据,前端可通过selectedRows遍历获取,后端可通过l_selected集合关联查询。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 20:17:22