Apex - Может ли табличная форма с функцией MRU иметь функциональность фильтрации, такую ​​как интерактивный отчет?

StackOverflow https://stackoverflow.com/questions/8316420

Вопрос

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

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

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

Мысли? Я в некотором роде ...

Это было полезно?

Решение

Это действительно не так уж и сложно :) Вы можете легко превратить IR в псевдо-тубелянную форму. И хотя всегда есть более стильные и элегантные решения, они обычно связаны с большим количеством 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;

Это пройдет за записями с тикающими флажками и вставит их в какую -то таблицу. Например, я отметил коробку с королем и отредактировал Textfield. См. Запись NR 2 (1 из предыдущего действия;))edit example ir output of edit

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

Другие советы

Это возможно, используя ту же табличную форму.

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top