2017-01-24 2 views
0

Oracle Apex 5.1 Пользовательские Мастер Подробности Проблема Я создал страницу с двумя области, 1. Отдел (некоторые текстовое поле, DEPTNO, Dname) 2. EMP (интерактивная сетка, ENAME , deptno) И одна кнопка отправки Поток: имя пользователя вручную вводится в поле 'dname' И добавьте строку сотрудников на сетку и, наконец, когда пользователь нажмет кнопку отправки, сначала создайте отдел с дептно (автоинкремент) А затем вставьте строку сетки с deptno, которая создала первую область. Это означает, что у каждого deptno есть соответствующий сотрудник, и обе задачи будут создавать одинаковые времена. (после нажатия кнопки отправки) Если возможно, и вы это понимаете, пожалуйста, дайте мне решение.Oracle Apex 5.1 Пользовательские Master Детали

ответ

0

На этой странице создайте скрытый элемент, который будет иметь ваш новый идентификатор отдела, названный P1_depno в этом примере.

Когда вы создали Interactive Сетку с Attributes> Edit> Enabled набор для ДаInteractive Grid - Автоматическая обработка строк (DML) процесса (скорее всего, назван - Сохранить Интерактивные сетки данные) должен быть добавлен на вашу страницу (если у вас ее нет, просто создайте новый процесс с указанным выше типом).

До этого процесса создания нового PL/SQL процесс (названный Insert отдел в моем примере), который будет вставлять в отдел используя этот код:

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; 

Очень важно, этот процесс должен выполняться до Сохранить Interactive Grid Data обработать. enter image description here

Теперь редактировать процесс Сохранить Интерактивные сетки данных и на Target Type выбрать 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; 
+0

Cristian_I - Спасибо за ваши комментарии. Мне нужно найти другое решение. , что не нужно менять какой-либо код только графически, мы можем его построить :) –

Смежные вопросы