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

Oracle APEX基于Interactive Grid列值勾选复选框按支票号插入记录咨询

Oracle APEX Interactive Grid 选中记录插入实现方案

1. 调整Interactive Grid列配置

首先确保IG的复选框列通过apex_item.checkbox2生成,直接把需要用到的支票号作为复选框的返回值即可,不需要将支票号单独设为apex_item项。你的IG查询语句参考如下结构调整:

SELECT 
  apex_item.checkbox2(p_idx => 1, p_value => CHEQUE_NUMBER) AS select_flag,
  CHEQUE_NUMBER,
  -- 其他需要展示的业务列
  ...
FROM 你的IG源表 -- 这里关联Interactive Report对应的数据源表,带出你需要的支票号即可

这里p_idx => 1对应你用到的APEX_APPLICATION.G_f01数组,完全匹配你现有查询的取值逻辑。

补充说明:如果你用的是IG原生行选择功能,没有自定义apex_item.checkbox2列,可以通过APEX$ROW_SELECTOR内置列获取选中行的主键,再通过主键关联查询到对应支票号即可,无需额外新增复选框列。

2. 新增PL/SQL插入处理进程

在触发插入操作的按钮对应的提交处理环节,新建一个PL/SQL类型的进程,逻辑如下:

DECLARE
  v_user_mail VARCHAR2(200);
  v_amt NUMBER;
BEGIN
  -- 遍历所有选中的复选框记录
  FOR i IN 1..APEX_APPLICATION.G_f01.COUNT LOOP
    -- 复用你原有逻辑查询所需字段
    SELECT a.APPROVER_MAIL_ID,b.CHEQUE_AMOUNT 
    INTO v_user_mail,v_amt
    FROM PDC_STATUS_HISTORY a, PDC_CHEQUE_RANGES b
    WHERE APPROVAL_LEVEL=2 
      AND a.RECEIPT_NUMBER=b.RECEIPT_NUMBER 
      AND CHEQUE_NUMBER=APEX_APPLICATION.G_f01(i);
    
    -- 替换为你实际的目标表插入逻辑
    INSERT INTO 你的目标表(邮箱字段, 金额字段, 支票号字段, 其他业务字段)
    VALUES(v_user_mail, v_amt, APEX_APPLICATION.G_f01(i), 其他字段值);
  END LOOP;
  COMMIT;
EXCEPTION
  WHEN OTHERS THEN
    ROLLBACK;
    RAISE_APPLICATION_ERROR(-20001, '记录插入失败:'||SQLERRM);
END;

3. 配置进程触发条件

将上述PL/SQL进程的执行条件设置为对应插入按钮点击时触发即可,无需额外其他配置。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 17:36:03