如何自定义交互式网格的 DML 流程并在保存时提交所有行?

问题描述 投票:0回答:1

我有一个交互式网格,显示来自 以下 SQL 查询:

 select  ID , 
         TESTID,
         MACHINE_ID,
         PROGRAM_ID,
         SAMPLE_ID,
         MEAN,
         SD,
         LOW_LIMIT,
         HIGH_LIMIT,
         TESTUNIT
         FROM HAJJ_SAMPLE_DETAILS 
         where sample_id = :P88_SAMPLE
         and program_id = :P88_PROGRAM
         and machine_id = :P88_MACHINE

我使用动态动作来过滤数据。

然后我需要将数据插入到不同表上的数据库中,我更新了DML流程 像这样:

begin
    case :APEX$ROW_STATUS
    when 'C' then
       INSERT INTO HAJJ_QC_RESULTS (HOSPITAL_NO,TESTID, APPROVED_DATE,
        MACHINE_ID, PROGRAM_ID, SAMPLE_ID, MEAN,SD, LOW_LIMIT, HIGH_LIMIT,
       UNITID) 
VALUES (:P0_HOSPITAL_NO, :TESTID , :P88_SAMPLEDATE, :MACHINE_ID , :PROGRAM_ID ,:SAMPLE_ID ,
         :MEAN , :SD , :LOW_LIMIT , :HIGH_LIMIT , :TESTUNIT )
        returning ID_NO into :ID_NO;
  
    end case;
end;

这是IG的照片:

当我单击“保存”按钮时,它不保存并且不显示消息或错误,

如何将数据从 IG 插入数据库到不同的表中?

oracle-apex
1个回答
0
投票

这是 emp/dept 示例数据集的示例,即使用户没有对任何行进行任何更改,该示例也会将所有记录发布到服务器。该机制是向网格添加一个虚拟列,并在页面加载时在所有行中为其设置一个值。

  • 在 EMP 中的选择上创建交互式网格,包括附加列“DUMMY_CHANGE”
select EMPNO,
       ENAME,
       JOB,
       MGR,
       HIREDATE,
       SAL,
       COMM,
       DEPTNO,
       NULL AS DUMMY_CHANGE
  from EMP
  • 将列“DUMMY_CHANGE”设置为隐藏,源类型“None”,值 protected = No

  • 为交互式网格指定静态 id

    emp

  • 在页面属性 > 页面加载时执行放置以下代码:

let model = apex.region("emp").call("getCurrentView").model;
model.forEach( function( record, index, id ) {
    model.setValue( record, "DUMMY_CHANGE", "X" );
} );
  • 运行页面并观察所有行都被标记为“已编辑”(第一个单元格中的蓝色三角形)。如果页面在调试中运行,您可以看到保存时正在处理每一行。
© www.soinside.com 2019 - 2024. All rights reserved.