Oracle Apex 5.1自定义主数据

时间:2017-01-24 08:58:19

标签: oracle oracle-apex oracle-apex-5

Oracle Apex 5.1自定义主数据详细信息 我创建了一个包含两个区域的页面, 1. dept(某些文本字段,deptno,dname) 2. emp(交互式网格,ename,deptno) 一个提交按钮 流程:用户在' dname'上手动输入部门名称文本域 并在网格上添加一些员工行,最后当用户点击提交按钮时,首先创建一个deptno部门(自动增量) 然后用deptno插入网格行,创建第一个区域。 这意味着每个deptno都有一些相应的员工,这两个任务都会创建相同的时间。 (点击提交按钮后) 如果可能,你了解这一点,请给我一个解决方案。

1 个答案:

答案 0 :(得分:0)

在您的页面上创建一个隐藏项目,该项目将包含您的新部门ID,在此示例中名为P1_depno。

使用属性>创建交互式网格时编辑>已启用设置为 交互式网格 - 自动行处理(DML)进程(最有可能命名为 - 保存交互式网格数据)应该已添加到您的页面(如果你没有它,只需创建一个具有上述类型的新进程)。

在此过程之前创建一个新的PL / SQL进程(在我的示例中名为Insert Department),它将使用此代码插入部门:

declare
v_depno number;
begin  

    select deptno_sequence.nextval into :P1_depno from dual; --get the depno from your sequence

    insert into dept (deptno, dname)-- insert the new department
    values (:P1_depno,:P1_dname);
end;

非常重要的是,此流程必须在保存交互式网格数据流程之前运行。 here

现在编辑保存交互式网格数据流程,然后在目标类型选择 PL / SQL代码并添加以下代码:

begin  

    --insert the employees
     case :APEX$ROW_STATUS  
     when 'C' then -- C for Create but you also can check for U (Update) and D (Delete)
         insert into emp ( empno, ename, deptno )  
         values ( :EMPNO, :ENAME, :P1_depno )  
         returning rowid into :ROWID;  
     end case; 

end;