APEX - Может ли табличная форма с ее функциональностью MRU иметь функции фильтрации, такие как интерактивный отчет? - PullRequest
2 голосов
/ 29 ноября 2011

Что мне действительно нужно, так это табличная форма, которая позволяет мне обновлять несколько строк одновременно, будучи фильтруемой, как интерактивный отчет.Есть ли вероятность, что это возможно даже удаленно?

Я также хотел бы перехватить флажки строк в табличной форме, которые появляются при активации функции «удалить», и использовать их, чтобы выбрать, какие строки будут назначены группе.основанный на общем атрибуте.(т.е. моя таблица содержит детали в моем инвентаре, и мне нужно иметь возможность назначать детали с общими атрибутами группе для обработки)

Возможно, функция группировки, которая создает новую строку в таблице «Группа»с группой в качестве PK и частями, назначенными этой группе в виде списка или чего-то ...?

Мысли?Я в растерянности ...

Ответы [ 2 ]

4 голосов
/ 30 ноября 2011

Это действительно не так сложно :) Вы можете легко преобразовать ИК в псевдотабличную форму. И хотя всегда есть более стильные и элегантные решения, в них обычно используется множество javascript и / или плагинов. Они хороши, но не всегда то, что вы хотите или нужно, конечно.

Так как манипулировать вашим выводом? Используйте APEX_ITEM api !

Быстрый пример. У меня есть ir построен на emp. Я добавил флажок и текстовое поле. example ir

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-код, вам, разумеется, не нужен простой текст :) ir column attributes

Теперь, чтобы иметь возможность выполнять 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 из предыдущего действия;)) edit example ir output of edit

Хотя это еще не все. Вам все еще не хватает функциональности табличной формы, ее процессов и таких вещей, как оптимистическая блокировка. Если вы хотите остаться с табличными формами, вы также можете, например, проверить эту ссылку . Здесь также были некоторые вопросы о написании ваших собственных процессов mru и т. Д., как этот;)

3 голосов
/ 21 сентября 2012

Это возможно при использовании той же табличной формы.

  1. Создание элемента (текстового элемента) в области табличной формы.
  2. Создать кнопку отправки (Создать кнопку, отображаемую среди элементов этого региона)
  3. Изменить предложение where в источнике области табличной формы

Например, вам нужен поиск по имени клиента:

WHERE lower(CUSTOMER_NAME) LIKE '%'||lower(nvl(:PXX_SEARCH,CUSOTOMER_NAME))||'%'

Если вам нужно искать другое поле, добавьте в условие where только другое условие

WHERE (
     lower(CUSTOMER_NAME) LIKE '%'||lower(nvl(:PXX_SEARCH,CUSOTOMER_NAME))||'%'
     or lower(CUSTOMER_address) LIKE '%'||lower(nvl(:PXX_SEARCH,CUSOTOMER_NAME))||'%'
)

Просто и используйте ту же табличную форму.

...