Это действительно не так сложно :) Вы можете легко преобразовать ИК в псевдотабличную форму. И хотя всегда есть более стильные и элегантные решения, в них обычно используется множество javascript и / или плагинов. Они хороши, но не всегда то, что вы хотите или нужно, конечно.
Так как манипулировать вашим выводом? Используйте APEX_ITEM api !
Быстрый пример. У меня есть ir построен на emp. Я добавил флажок и текстовое поле.
select empno, ename, deptno,
apex_item.checkbox(1, empno) empno_selected,
apex_item.text(2, ename, 10, 10) ename_edit
from emp
Не забудьте: в атрибутах столбца установите Display text as
на Standard Report Column
. Если вы этого не сделаете, вывод будет в виде простого текста. Поскольку apex_item
генерирует HTML-код, вам, разумеется, не нужен простой текст :)
Теперь, чтобы иметь возможность выполнять DML на основе действий, которые вы выполняете в этих сгенерированных полях, вам потребуется процесс. Позвольте мне начать с указания на то, что сгенерированные элементы хранятся в переменных приложения, , а именно в массивах в APEX_APPLICATION .
Обратите внимание на поведение флажков: их значения хранятся в массиве только у отмеченных блоков!
В качестве примера я сделал маленькую On Submit process
(также добавив кнопку SUBMIT
в форму, чтобы фактически выполнить отправку ...)
for i in 1..apex_application.g_f01.count
loop
insert into empselected(empno, selectiondate, ename_changed)
values(apex_application.g_f01(i), sysdate, apex_application.g_f02(i));
end loop;
Это зацикливает записи с установленными флажками и вставляет их в некоторую таблицу. Например, я поставил галочку в поле «KING» и отредактировал текстовое поле. Смотрите запись № 2 (1 из предыдущего действия;))
Хотя это еще не все. Вам все еще не хватает функциональности табличной формы, ее процессов и таких вещей, как оптимистическая блокировка. Если вы хотите остаться с табличными формами, вы также можете, например, проверить эту ссылку . Здесь также были некоторые вопросы о написании ваших собственных процессов mru и т. Д., как этот;)