Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Interactive grid отметить строки для редактирования, сохранить в таблице отмеченные / 10 сообщений из 10, страница 1 из 1
06.02.2018, 14:01
    #39597445
VladimirTr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Interactive grid отметить строки для редактирования, сохранить в таблице отмеченные
Добрый день.
Уважаемые форумчане, прошу вашей помощи.
Версия APEX 5.1



Извиняюсь, что дублирую тему, но по данной теме не смог решить свою проблему, плюс у меня вопрос по сохранению в таблицу, который немного отличается от данной темы
http://www.sql.ru/forum/1075572/ispolzovanie-checkbox2?hl=apex row


Задача у меня следующая:
Имеется редактируемый Interactive Grid построенный на таблице "test" из 2 столбцов "NUM" ,"TXT" .
Где
NUM - Primary key, в гриде имеет
TXT- Varchar2

Есть отдельная кнопка Save НА КОТОРОЙ висит SUBMIT PAGE

Мне хотелось бы реализовать следующее:
1. использовать APEX$ROW_SELECTOR (стандартные галки интерактивного грида) для выборки строк, в которых необходимо произвести update поля TXT значением из item : P7_ITEM при нажатии на кнопку Save
При этом я не собираюсь изменять строку перед сохранением или сабмитом, я просто помечаю галками те строки которые хочу обновлять через PL/sql

2. Сохранить во временной таблице номера NUM выделенных строк, вопрос как выбрать именно те строки, у которых отмечена галка

Пробовал сделать по примеру:
http://www.sql.ru/forum/1075572/ispolzovanie-checkbox2?hl=apex row
Не выходит.


Что я пробовал делать:
процесс DML

PL/SQL

begin
if :APEX$ROW_SELECTOR is not null then
update tester set t=:P7_ITEM where num=:NUM ;
end if;
end;

Execution Scope: all submited rows , пробовал и for created and modified rows

если убрать условие where NUM=:NUM; и поставить условие if :APEX$ROW_SELECTOR is null То update происходит, но у всех записей и то только в том случае, если сделать добавление/уделание/изменение хотя бы одной строки.
С условием IS NOT NULL вообще никакие Update Не происходят, при простановке галок или без.

Помогите пожалуйста разобраться, что я делаю не так?
Заранее спасибо!
...
Рейтинг: 0 / 0
06.02.2018, 22:50
    #39597808
dvksqlru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Interactive grid отметить строки для редактирования, сохранить в таблице отмеченные
VladimirTrПомогите пожалуйста разобраться, что я делаю не так?
ВСЁ.

ИМХО, или ты подстраиваешься под стандартный функционал или пишешь свой. Подстроился под стандарт - живешь припеваючи поплёвывая в потолок, реализовал своё - нажил головняк, и получил патент на свой велосипед.
...
Рейтинг: 0 / 0
07.02.2018, 09:12
    #39597914
VladimirTr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Interactive grid отметить строки для редактирования, сохранить в таблице отмеченные
Конечно, хотелось бы обойтись без велосипедов.
Поставлю тогда вопрос по другому.

К примеру TXT это статус заказа NUM.
В гриде можно тыкать в каждую строку и менять статус, потом нажать сохранить.
Хотелось бы массово изменить статус у нескольких заказов, отмеченных галкой.

Можно ли произвести обновление статуса у нескольких отмеченных заказов стандартным функционалом interactive grid, ну или не сильно изобретая велосипед?
Если нет, то хотелось бы услышать простое правильное на Ваш взгляд решение для подобной задачи.
Подскажите пожалуйста, как это проще всего реализовать, если пользователю нужно видеть в табличной форме список заказов со статусами и иметь возможность менять статус у выделенных или отмеченных или отфильтрованных.

Можно конечно наложить условие where для выборки из таблицы по несколькими item, но когда заказов много и условия для отбора у них разные, то делать выборки довольно неудобно, каждый раз меняя условия, поэтому решение с галками казалось наиболее понятным и простым, выделил все 100 заказов, снял у 5 и обновил статус 95 выделенных , например, нажал обновить.

Предполагаю, что можно сделать с помощью ajax заполнение статусом выделенных строк при нажатии кнопки, потом нажать стандартную сохранить, но не знаю как это технически реализовать, буду благодарен за пример кода заполнения поля значением у выделенной строки в interactive grid.
...
Рейтинг: 0 / 0
07.02.2018, 09:59
    #39597949
Interactive grid отметить строки для редактирования, сохранить в таблице отмеченные
Казалось бы, весь мир использует официальный APEX API (APEX_ITEM.CHECK_BOX), включая довольно продвинутых ребят из сообщества APEX UG. Но тут обсуждает сакральное? Правильно?

На тот случай, если передумаешь и обратишься, решение такое.

В запросе интерактивного грида рисуем колонку
APEX_ITEM.CHECKBOX (p_idx=>1, p_value=>num)
Не забываем задизэблить "Escape special characters" для этой колоночки.

В PL/SQL процесса пишем
...
for i in 1..APEX_APPLICATION.G_F01.COUNT /* массив F01 будет заполнен только чекнутыми строчками */
loop
p_num := APEX_APPLICATION.G_F01(i); /* чекнутые num */
end loop;
...
...
Рейтинг: 0 / 0
07.02.2018, 10:08
    #39597955
dvksqlru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Interactive grid отметить строки для редактирования, сохранить в таблице отмеченные
VladimirTrКонечно, хотелось бы обойтись без велосипедов.
Хотелось бы услышать простое правильное на Ваш взгляд решение

Я делал нечто подобное - с IG решил не связываться, а в обычном IR сделал столбец с помощью apex_item.checkbox2. Далее передавал отмеченные ID-хи в модальное окно, где с помощью самописных процедур манипулировал ими.
...
Рейтинг: 0 / 0
08.02.2018, 18:12
    #39599314
VladimirTr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Interactive grid отметить строки для редактирования, сохранить в таблице отмеченные
Спасибо за ответы!
Удалось сделать с APEX_ITEM.CHECKBOX (p_idx=>1, p_value=>num).

Но удалось сделать в IR , там пока не сделаешь "Не забываем задизэблить "Escape special characters" для этой колоночки." в настройках Security вместо галки отображаешься HTML <input type="checkbox" name="f01" value="48" UNCHECKED />
В Interactive Grid те смог найти "Escape special characters", пожалуйста ткните носом, где это делается в Interactive Grid, интернетом пользовался , так и не нашел.
...
Рейтинг: 0 / 0
11.02.2018, 23:13
    #39600325
VladimirTr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Interactive grid отметить строки для редактирования, сохранить в таблице отмеченные
Уважаемые, пожалуйста, подскажите, как сделать подобное с interactive grid? Как отключить "Escape special characters"?
...
Рейтинг: 0 / 0
16.02.2018, 13:39
    #39602940
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Interactive grid отметить строки для редактирования, сохранить в таблице отмеченные
VladimirTr,

А в чем собственно проблема?

Ваша процедура запустится ровно столько раз, сколько выделено строк. Вам самим не нужно анализировать сколько строк выделено.
...
Рейтинг: 0 / 0
16.02.2018, 13:40
    #39602943
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Interactive grid отметить строки для редактирования, сохранить в таблице отмеченные
VladimirTr,

Единственное, что надо, это заставить ИГ подумать, что произошли какие то изменения.
...
Рейтинг: 0 / 0
16.02.2018, 20:10
    #39603323
VladimirTr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Interactive grid отметить строки для редактирования, сохранить в таблице отмеченные
Да, но если изменений не было, только выделения. Как быть?
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Interactive grid отметить строки для редактирования, сохранить в таблице отмеченные / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]