powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Interactive grid отметить строки для редактирования, сохранить в таблице отмеченные
10 сообщений из 10, страница 1 из 1
Interactive grid отметить строки для редактирования, сохранить в таблице отмеченные
    #39597445
VladimirTr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Уважаемые форумчане, прошу вашей помощи.
Версия 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
Interactive grid отметить строки для редактирования, сохранить в таблице отмеченные
    #39597808
dvksqlru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VladimirTrПомогите пожалуйста разобраться, что я делаю не так?
ВСЁ.

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

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

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

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

Предполагаю, что можно сделать с помощью ajax заполнение статусом выделенных строк при нажатии кнопки, потом нажать стандартную сохранить, но не знаю как это технически реализовать, буду благодарен за пример кода заполнения поля значением у выделенной строки в interactive grid.
...
Рейтинг: 0 / 0
Interactive grid отметить строки для редактирования, сохранить в таблице отмеченные
    #39597949
Казалось бы, весь мир использует официальный 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
Interactive grid отметить строки для редактирования, сохранить в таблице отмеченные
    #39597955
dvksqlru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VladimirTrКонечно, хотелось бы обойтись без велосипедов.
Хотелось бы услышать простое правильное на Ваш взгляд решение

Я делал нечто подобное - с IG решил не связываться, а в обычном IR сделал столбец с помощью apex_item.checkbox2. Далее передавал отмеченные ID-хи в модальное окно, где с помощью самописных процедур манипулировал ими.
...
Рейтинг: 0 / 0
Interactive grid отметить строки для редактирования, сохранить в таблице отмеченные
    #39599314
VladimirTr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы!
Удалось сделать с 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
Interactive grid отметить строки для редактирования, сохранить в таблице отмеченные
    #39600325
VladimirTr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые, пожалуйста, подскажите, как сделать подобное с interactive grid? Как отключить "Escape special characters"?
...
Рейтинг: 0 / 0
Interactive grid отметить строки для редактирования, сохранить в таблице отмеченные
    #39602940
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VladimirTr,

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

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

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


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