powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Модальный диалог выбора
25 сообщений из 111, страница 2 из 5
Модальный диалог выбора
    #39297924
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123если работает, опиши потом полностью при закрытии темы.

1. Создаю ITEM P1_ID_SELECTED (скрытый)
2. Изменяю параметры ID-колонки репорта:
2.1
Код: html
1.
Column Attributes > Column Link > Link Attributes > onClick="$s('P1_ID_SELECTED',#EMPNO#);"


2.2
Код: html
1.
Column Attributes > Column Link > Target = URL


2.3
Код: html
1.
Column Attributes > Column Link > URL = #


3. Ставлю DA на изменение P1_ID_SELECTED
4. В этой DA прописываю TRUE ACTION:
Код: html
1.
2.
Action: Close Dialog
Items to Return: P1_ID_SELECTED



5. В вызывающей странице создаю DA:
Код: html
1.
Event: Close Dialog


True Action:
Код: html
1.
2.
3.
4.
Action: Set Value
Set Type: Dialog Return Item
Return Item: P1_ID_SELECTED
Affected elements: P99_ID
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297995
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
non-apexoidКурдль, вот
Спасибо!
Это красивое решение, но трудно переиспользуемое :(
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298025
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль5. В вызывающей странице создаю DA:
п.5 не нашёл в 4-ке. Дай скрин.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298031
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
КурдльblkangelИли так
Код: javascript
1.
parent.$s($v('PXXX_RETURN_NAME'),#EMPNO#);closePopup();


Код: javascript
1.
parent.$s($x('PXXX_RETURN_NAME').value,#EMPNO#);closePopup();





Ни та, ни другая конструкция не срабатывает.

Срабатывает во эта:

Наверное потому что ClosePopup нет в пятом Апексе, я его написал в надежде что вы его на подмените на свое. Я надеюсь хоть название элементов вы подставляете корректно.
Код: javascript
1.
parent.$s($v('PXXX_RETURN_NAME'),#EMPNO#);closeModal();
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298033
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123п.5 не нашёл в 4-ке. Дай скрин.
Опечатка. Правильно:
Код: html
1.
Event: Dialog Closed
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298040
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,
OK
поздправляю.
У меня с п.1 по п.5 в виде одной JS строки.
У тебя лучше т.к. тоже самое но декларативно.
Удачи!
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298043
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если в 4-ке добавить каким то образом
Курдль
Код: html
1.
Event: Dialog Closed


то в 4-ке тоже можно так вызывать из любой родительской.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298057
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelparent.$s($v('PXXX_RETURN_NAME'),#EMPNO#);closeModal();
[/src]

Не работает и так (корректность введенных элементов еще раз проверил визуально и на факте их корректного обновления).
Но не доверяя своей криворукости, пытаюсь исполнить просто
Код: javascript
1.
onClick="closeModal();"


Не срабатывает...
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298085
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Курдльblkangelparent.$s($v('PXXX_RETURN_NAME'),#EMPNO#);closeModal();
[/src]

Не работает и так (корректность введенных элементов еще раз проверил визуально и на факте их корректного обновления).
Но не доверяя своей криворукости, пытаюсь исполнить просто
Код: javascript
1.
onClick="closeModal();"


Не срабатывает...
если просто в консоле выполнить?
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298086
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Курдльblkangelparent.$s($v('PXXX_RETURN_NAME'),#EMPNO#);closeModal();
[/src]

Не работает и так (корректность введенных элементов еще раз проверил визуально и на факте их корректного обновления).
Но не доверяя своей криворукости, пытаюсь исполнить просто
Код: javascript
1.
onClick="closeModal();"


Не срабатывает...
Что в консоле пишет, какие ошибки?
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298095
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangel,

Это во View Debug -> Errors?
Ничего не пишет. Последняя ошибка 2 дня назад и та с SQL-запросом.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298115
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот интересно, зачем зарос дважды выполнялся, или я не умею читать дебаггер?

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
0.03800	0.00100	

...Execute Statement: select 
       "RESOURCE_CODE",
       "RESOURCE_NAME",
       "RESOURCE_ID",
       count(*) over () as apxws_row_cnt  from ( select  *  from ( SELECT T.RESOURCE_ID, T.RESOURCE_CODE, T.RESOURCE_NAME
  FROM XZ_RESOURCES T
 WHERE T.RESTYPE_ID = 1
)  r
) r where rownum <= to_number(:APXWS_MAX_ROW_CNT)

	4	
6%
0.03900	0.00000	

...Execute Statement: select 
       "RESOURCE_CODE",
       "RESOURCE_NAME",
       "RESOURCE_ID",
       count(*) over () as apxws_row_cnt  from ( select  *  from ( SELECT T.RESOURCE_ID, T.RESOURCE_CODE, T.RESOURCE_NAME
  FROM XZ_RESOURCES T
 WHERE T.RESTYPE_ID = 1
)  r
) r where rownum <= to_number(:APXWS_MAX_ROW_CNT)
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298123
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Курдльblkangel,

Это во View Debug -> Errors?
Ничего не пишет. Последняя ошибка 2 дня назад и та с SQL-запросом.
Нет, это правая кнопка в браузере "Посмотреть код". вкладка Консоль
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298126
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangel,

А, у меня это F12 :)
Тоже нет никаких ошибок, равно как и предупреждений
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298139
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Курдльblkangel,

А, у меня это F12 :)
Тоже нет никаких ошибок, равно как и предупреждений
Ах да, у вас же IE, ну вот откройте модальное окно и выполните там closeModal()
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298202
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelАх да, у вас же IE, ну вот откройте модальное окно и выполните там closeModal()
У меня FireFox, но все браузеры откликаются на F12
Я открыл модальное окно и выполнил там closeModal()
Диалог не закрылся и в консоли не отразилось ни одной ошибки или предупреждения.
Вот код:
Код: javascript
1.
onClick="closeModal();"


Проверено на FF, IE, GC
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298344
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а так
Код: javascript
1.
apex.navigation.dialog.close("close")
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298349
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelа так
Код: javascript
1.
apex.navigation.dialog.close("close")



Да, это срабатывает безотказно.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298350
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Курдльblkangelа так
Код: javascript
1.
apex.navigation.dialog.close("close")



Да, это срабатывает безотказно.
Ну тогда без промежутков это будет так выглядеть
Код: javascript
1.
Column Attributes > Column Link > Link Attributes > onClick="parent.$s($v('PXXX_RETURN_NAME'),#EMPNO#);apex.navigation.dialog.close('close');"
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298352
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelВсе пользователям апекса, для установки значения элементу советую использовать именно $s.
Это встроенная Апексовая АПИ, плюс она вызывает события onChange после присвоения элементу значения. Так же она умеет заполнять правильно такие элементы как select list и popLov $s("PXXX_PAGE_ITEM", idValue, displayValue);

Меня весьма заинтересовало это Ваше сообщение.
Особенно в части, касающейся правильного заполнения select list и popLov.
Мне удалось более-менее правильно заполнить popupLOV и то конструкцией вида:
Код: javascript
1.
onClick="$s('P1_ID_SELECTED',999999, 'новое значение');

где 999999 - ID, которого не существует в таблице.
Я же надеялся запустить
Код: javascript
1.
onClick="$s('P1_ID_SELECTED',#EMPNO#,#EMPNAME#);

но она не срабатывает ни для существующего ID, ни для несуществующего. На Select List не действовала ни одна из этих функций.

Кстати. Может Вы, как большой знаток в JS+APEX, знаете способ насильственной перезагрузки плагина Select2?
Думаю, что многие здесь были бы безмерно рады открытию такого метода.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298357
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelНу тогда без промежутков это будет так выглядеть
Код: javascript
1.
Column Attributes > Column Link > Link Attributes > onClick="parent.$s($v('PXXX_RETURN_NAME'),#EMPNO#);apex.navigation.dialog.close('close');"


Да, это работает!
Спасибо - отличное решение для "модальных селекторов", вызываемых из одной страницы.
Можно еще придумать, как динамически заменять 'PXXX_RETURN_NAME' на 'PYYY_RETURN_NAME' для случаев, когда вызовы модального диалога будут производиться из разных страниц.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298362
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль, если у вас 5-я версия, то я не понял, что мешает сделать страницу с вашим IR с шаблоном Modal Dialog, открывать эту страницу с другой какой угодно страницы по линку (при этом она будет переиспользуемой многократно), страница с IR будет открываться в модальном окне jQuery, и на вызывающих страницах сделать DA 'On Dialog Close', в которых значения элементов со страницы диалога будут передаваться элементам вызывающей страницы, причём все это будет сделано декларативно, без вашего js?
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298363
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
КурдльblkangelВсе пользователям апекса, для установки значения элементу советую использовать именно $s.
Это встроенная Апексовая АПИ, плюс она вызывает события onChange после присвоения элементу значения. Так же она умеет заполнять правильно такие элементы как select list и popLov $s("PXXX_PAGE_ITEM", idValue, displayValue);

Меня весьма заинтересовало это Ваше сообщение.
Особенно в части, касающейся правильного заполнения select list и popLov.
Мне удалось более-менее правильно заполнить popupLOV и то конструкцией вида:
Код: javascript
1.
onClick="$s('P1_ID_SELECTED',999999, 'новое значение');

где 999999 - ID, которого не существует в таблице.
Я же надеялся запустить
Код: javascript
1.
onClick="$s('P1_ID_SELECTED',#EMPNO#,#EMPNAME#);

но она не срабатывает ни для существующего ID, ни для несуществующего. На Select List не действовала ни одна из этих функций.

Кстати. Может Вы, как большой знаток в JS+APEX, знаете способ насильственной перезагрузки плагина Select2?
Думаю, что многие здесь были бы безмерно рады открытию такого метода.

Провел эксперимент, действительно в моей версии пятого апекса $s не работает (может исправят), но работает если использовать полное название функции
1. Для popupLov сработало даже не на существующее значение
apex.item("PXXX_PAGE_ITEM").setValue(999,"Kakoi to bred");
2. Для select list сработало только с имеющимся значением, при этом я обратил внимание, что второй параметр не нужен
apex.item("PXXX_PAGE_ITEM").setValue(1);
Так же есть и третий параметр у этой функции, ссылка на документацию.
https://docs.oracle.com/cd/E59726_01/doc.50/e39149/javascript_api.htm#AEAPI29496
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298364
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
non-apexoidКурдль, если у вас 5-я версия, то я не понял, что мешает сделать страницу с вашим IR с шаблоном Modal Dialog, открывать эту страницу с другой какой угодно страницы по линку (при этом она будет переиспользуемой многократно), страница с IR будет открываться в модальном окне jQuery, и на вызывающих страницах сделать DA 'On Dialog Close', в которых значения элементов со страницы диалога будут передаваться элементам вызывающей страницы, причём все это будет сделано декларативно, без вашего js?
А возвращаться то чего будет декларативно?
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298367
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
non-apexoid,
Ну дак он вы с п.п.1-5 так и описал. Только получение самого диалога не дал.
Так?
...
Рейтинг: 0 / 0
25 сообщений из 111, страница 2 из 5
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Модальный диалог выбора
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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