powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Модальный диалог выбора
111 сообщений из 111, показаны все 5 страниц
Модальный диалог выбора
    #39297522
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!
Хотелось бы сделать эффективный модальный "селектор".
С моим поверхностным знанием JS что-нибудь, да получится, но уж точно не эффективное (будет совершать лишние сабмиты, обращения к БД и т.п.) :)

Итак, прецеденты:
1. На родительской странице жмакаешь кнопку "Выбрать клиента"
2. Открывается модальный диалог "Выбор клиента" с интерактивным репортом.
3. Находишь интересующую тебя запись и клацаешь на ней (или пиктограмме).
4. Модальный диалог закрывается, на родительской форме заполняется поле "Клиент"

Как я понимаю, это достигается комбинацией DA и JS и я даже могу предположить некоторые варианты.
Но хотелось бы воспользоваться выверенным решением лучших практиков.
Заранее благодарен.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297529
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль, вот
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297537
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,

Ладно, опишу своё решение, а вы покритикуете:

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


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. Вуаля!
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297538
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я в свое время как то занимался вопросом передачи данных между модальным и родительским окном. В конце концов пришел к выводу, что самое оптимальное ничего не передавать, надо просто их присваивать Так как в модальном окне доступны все элементы.
В вашем IR достаточно выполнить простейший скрипт назовем его closePopup(this);
Ну и сам JS:

Код: javascript
1.
2.
3.
function closePopup (aThis) {
parent.$s("PXXX_PAGE_ITEM",aThis.value);
}


Все пользователям апекса, для установки значения элементу советую использовать именно $s.
Это встроенная Апексовая АПИ, плюс она вызывает события onChange после присвоения элементу значения. Так же она умеет заполнять правильно такие элементы как select list и popLov $s("PXXX_PAGE_ITEM", idValue, displayValue);

P.S. DA=JS, разница только в том, JS ты пишешь код вручную, DA Апекс это делает за тебя.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297540
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
non-apexoidКурдль, вот
О, спасибо!
Пока писал своё решение - прислали помощь!
Оч. приятно! :)
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297542
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelЯ в свое время как то занимался вопросом передачи данных между модальным и родительским окном. В конце концов пришел к выводу, что самое оптимальное ничего не передавать, надо просто их присваивать Так как в модальном окне доступны все элементы.
В вашем IR достаточно выполнить простейший скрипт назовем его closePopup(this);
Ну и сам JS:

Код: javascript
1.
2.
3.
function closePopup (aThis) {
parent.$s("PXXX_PAGE_ITEM",aThis.value);
}



Спасибо! Вроде я пришел к похожему решению (см. выше). Значит расту над собой! :)
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297544
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
КурдльblkangelЯ в свое время как то занимался вопросом передачи данных между модальным и родительским окном. В конце концов пришел к выводу, что самое оптимальное ничего не передавать, надо просто их присваивать Так как в модальном окне доступны все элементы.
В вашем IR достаточно выполнить простейший скрипт назовем его closePopup(this);
Ну и сам JS:

Код: javascript
1.
2.
3.
function closePopup (aThis) {
parent.$s("PXXX_PAGE_ITEM",aThis.value);
}



Спасибо! Вроде я пришел к похожему решению (см. выше). Значит расту над собой! :)
Вы как раз занимаетесь передачей данных между окнами и добавили лишние элементы для этого, и сделали промежуточные действия.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297601
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,
а зачем ещё одну тему открыл?
Вот решение.
19543332
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297603
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
красивым будет решение когда в DA появится Refresh или все события для родительской формы.
То что ты привёл выше 19587486 банально забудешь завтра же. А надо простое чтобы помнил всегда и везде.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297605
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Курдль,
а зачем ещё одну тему открыл?
Вот решение.
19543332
эту строку написать в урл колонки таблицы модального окна.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297678
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelВы как раз занимаетесь передачей данных между окнами и добавили лишние элементы для этого, и сделали промежуточные действия.
Я понимаю, что jQuery. модальный диалог и "вызывающее окно" - по сути одна и та же страница. Но стараюсь держаться ближе к APEX, чтобы мое приложение было понятнее тем, кто будет его развивать далее, да и мне самому.

Я не понял до конца, как применить Ваше решение в моём случае.
Сразу прописать в свойствах атрибута IR закрытие модального диалога и запись выбранного значения в ITEM вызывающей страницы?
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297709
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльНо стараюсь держаться ближе к APEX
+1
не люблю диалоги (которые внешне снаружи) внутри базовой страницы.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297794
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
КурдльblkangelВы как раз занимаетесь передачей данных между окнами и добавили лишние элементы для этого, и сделали промежуточные действия.
Я понимаю, что jQuery. модальный диалог и "вызывающее окно" - по сути одна и та же страница. Но стараюсь держаться ближе к APEX, чтобы мое приложение было понятнее тем, кто будет его развивать далее, да и мне самому.

Я не понял до конца, как применить Ваше решение в моём случае.
Сразу прописать в свойствах атрибута IR закрытие модального диалога и запись выбранного значения в ITEM вызывающей страницы?

Код: javascript
1.
Column Attributes > Column Link > Link Attributes > onClick="parent.$s('PXXX_PARENT_PAGE_ITEM',#EMPNO#);closePopup();"


Последующие пункты не нужны.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297808
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangel
Код: javascript
1.
Column Attributes > Column Link > Link Attributes > onClick="parent.$s('PXXX_PARENT_PAGE_ITEM',#EMPNO#);closePopup();"


Последующие пункты не нужны.

Спасибо! Но мне кажется, что здесь есть один изъян :(
Что, если этот "модальный селектор" вызывается разными страницами?
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297819
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Курдльblkangel
Код: javascript
1.
Column Attributes > Column Link > Link Attributes > onClick="parent.$s('PXXX_PARENT_PAGE_ITEM',#EMPNO#);closePopup();"


Последующие пункты не нужны.

Спасибо! Но мне кажется, что здесь есть один изъян :(
Что, если этот "модальный селектор" вызывается разными страницами?
передавайте в модальный селектор ID элемента в который надо вернуть значение.

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


где PXXX_RETURN_NAME - скрытый элемент, значение которого передалось с родительской стороны.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297820
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Или так
Код: javascript
1.
parent.$s($v('PXXX_RETURN_NAME'),#EMPNO#);closePopup();
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297830
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль, уточните, пожалуйста, какую версию Apex вы используете?
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297839
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelИли так
Код: javascript
1.
parent.$s($v('PXXX_RETURN_NAME'),#EMPNO#);closePopup();


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





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

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

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



Правда диалог не закрывает, а только вносит выбранные данные в PXXX_RETURN_NAME
Курдль, уточните, пожалуйста, какую версию Apex вы используете?
5.0.1
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297858
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,
пробый все варианты. Потом FAQ напиши.
Я тебе дал из рабочего варианта у заказчика.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297874
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Курдль,
пробуй все варианты. Потом FAQ напиши.
Я тебе дал из рабочего варианта у заказчика.

Спасибо!
А твоё решение позволяет вызывать диалог из разных страниц?

Вот это решение тоже работает и вполне меня устраивает:
Код: javascript
1.
$s('PXXX_RETURN_NAME',#EMPNO#);


Только оно требует промежуточного ITEM на модальной странице.
Но иного способа обеспечить вызов диалога из разных страниц я не вижу.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297881
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelВсе пользователям апекса, для установки значения элементу советую использовать именно $s.
Это встроенная Апексовая АПИ, плюс она вызывает события onChange после присвоения элементу значения. Так же она умеет заполнять правильно такие элементы как select list и popLov
Код: javascript
1.
$s("PXXX_PAGE_ITEM", idValue, displayValue);



А что такое displayValue?
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297888
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльВот это решение тоже работает и вполне меня устраивает:
да. У меня там конкретный айтемс на родительской. Из разных не подходит.
Я жду 5-ку.
Разве в 5-ке нет ничего для этого?
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297892
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльВот это решение тоже работает и вполне меня устраивает:
если работает, опиши потом полностью при закрытии темы.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297901
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123КурдльВот это решение тоже работает и вполне меня устраивает:
да. У меня там конкретный айтемс на родительской. Из разных не подходит.
Я жду 5-ку.
Разве в 5-ке нет ничего для этого?
Я на 5-ке и не знаю, что ты имеешь в виду. На 4-ке вроде ж вообще модальных диалогов не было?..

DA под названием Dialog Closed на 4-ке была?
Я ее пользую на вызывающей странице, чтобы заполнить те поля, что были инициализированы в модальном диалоге.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39297909
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльНа 4-ке вроде ж вообще модальных диалогов не было?..
всё верно.
Я шёл как велит Оракл.
Т.е. это отдельная страница с шаблоном Popup
и вызовом
Код: sql
1.
javascript:popupURL('f?p=&APP_ID.:1:&SESSION.::&DEBUG.');


- заказчик не жалуется.
Вот я про 5-ку и спрашиваю.
НИКТО не знает что там изменилось?
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #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
Модальный диалог выбора
    #39298368
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Курдль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
Модальный диалог выбора
    #39298369
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelА возвращаться то чего будет декларативно?
У меня возвращаются данные из промежуточных ITEMs, вписанных в параметр Items To Return TRUE ACTION "Close Dialog".
А эти ITEMs, соответственно, заполняются по onClick на строчке из IR-выбора.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298380
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
КурдльblkangelА возвращаться то чего будет декларативно?
У меня возвращаются данные из промежуточных ITEMs, вписанных в параметр Items To Return TRUE ACTION "Close Dialog".
А эти ITEMs, соответственно, заполняются по onClick на строчке из IR-выбора.

Т.е. заполнение все равно не декларативно, плюс куча айтемов?
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298384
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangel, Значения элементов на вызываемой странице диалога.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298386
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123, и действительно, вы правы. В обсуждении на 3 страницы в общем-то несложного вопроса главного не заметил.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298387
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
non-apexoidblkangel, Значения элементов на вызываемой странице диалога.
Ваш Вариант:
1. Создать скрытые элементы в модальном окне
2. Заполнить не декларативно данными скрытые элементы
3. На каждом родительском окне создать DA.
4. Передать данные из модального окна в родительское.
5. Закрыть модальное окно

Мой вариант.
1. Заполнить не декларативно данными элементы на родительском окне
2. Закрыть модальное окно.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298391
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelКурдльМожно еще придумать, как динамически заменять 'PXXX_RETURN_NAME' на 'PYYY_RETURN_NAME' для случаев, когда вызовы модального диалога будут производиться из разных страниц.

Поясните
Поясняю.
Мы рассмотрели решение, когда клик на строке IR модального диалога вызывает заполнение конкретного ITEM 'PXXX_RETURN_NAME'.
Но хотелось бы добиться заполнения любого ITEM любой вызывающей страницы, без изменения кода вызываемого модального диалога.
Я этого добился некоторым отступлением от декларативного описания и введением ОДНОГО вспомогательного ITEM.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298400
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangel, да, так. Только поменяйте местами п 4 и 5. 4 будет закрытие диалога, причем не крестиком диалога, а DA Close Dialog при выборе значения. 5 - срабатывание DA на закрытие. Код страницы - диалога многократно используемый. Преимущество - использование штатного функционала Apex. Минус - некоторая многословность.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298401
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Курдльblkangelпропущено...


Поясните
Поясняю.
Мы рассмотрели решение, когда клик на строке IR модального диалога вызывает заполнение конкретного ITEM 'PXXX_RETURN_NAME'.
Но хотелось бы добиться заполнения любого ITEM любой вызывающей страницы, без изменения кода вызываемого модального диалога.
Я этого добился некоторым отступлением от декларативного описания и введением ОДНОГО вспомогательного ITEM.

PXXX_RETURN_NAME - Это скрытый элемент модального окна
Значение его это PXXX_RETURN_NAME (ИД элемента родительского окна). Заполнение значения происходит при вызове модального окна, путем передачи параметра.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298403
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,
Кстати, если айтемсов не мнго, то это вполне допустимо. В терминах и концепции веб это обычная переменная для хранения values (значения).
Только допиши пункт 0 про шаблон Диалог появившийся в 5ке дополнительно к шаблону Popup в 4ке.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298404
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поправка
Значение его это PYYY_PARENT_ITEM_ID
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298407
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
non-apexoidblkangel, да, так. Только поменяйте местами п 4 и 5. 4 будет закрытие диалога, причем не крестиком диалога, а DA Close Dialog при выборе значения. 5 - срабатывание DA на закрытие. Код страницы - диалога многократно используемый. Преимущество - использование штатного функционала Apex. Минус - некоторая многословность.

Еще надо проверить передачу многострочных значений и спец символов, есть у меня сомнения по этому поводу.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298416
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelPXXX_RETURN_NAME - Это скрытый элемент модального окна
Значение его это PXXX_RETURN_NAME (ИД элемента родительского окна). Заполнение значения происходит при вызове модального окна, путем передачи параметра.
Вот теперь понял! И понял, почему $v

Для таких, как я, надо писать: "Делай раз..." :)
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298449
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Закругляемся?
Вариант1 - декларативный.
Для 5-ки окно с шаблонм Dialog. Для 4-ки с шаблоном Popup
Курдль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
Модальный диалог выбора
    #39298462
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

5. Event: Dialog Closed
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298468
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangel,

Как передать 2 параметра в вызывающую страницу?
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298471
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Курдльblkangel,

Как передать 2 параметра в вызывающую страницу?
Код: javascript
1.
Column Attributes > Column Link > Link Attributes > onClick="parent.$s($v('PXX1_RETURN_NAME'),#EMPNO#);parent.$s($v('PXX2_RETURN_NAME'),#EMPNAME#);apex.navigation.dialog.close('close');"
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298475
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangel,

Да, прежде чем лезть на форум, я опробовал такую конструкцию.
Результат:
Код: html
1.
 SyntaxError: missing ) after argument list
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298482
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант1 (Курдль) - декларативный.
Для 5-ки окно с шаблонм Dialog. Для 4-ки с шаблоном Popup
Код: sql
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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
1. Создаю ITEM P1_ID_SELECTED (скрытый)
2. Изменяю параметры ID-колонки репорта:
2.1

Column Attributes > Column Link > Link Attributes > onClick="$s('P1_ID_SELECTED',#EMPNO#);"



2.2

Column Attributes > Column Link > Target = URL



2.3

Column Attributes > Column Link > URL = #



3. Ставлю DA на изменение P1_ID_SELECTED
4. В этой DA прописываю TRUE ACTION:

Action: Close Dialog
Items to Return: P1_ID_SELECTED




5. В вызывающей странице создаю DA:

Event: Dialog Closed (для 4-ки такого нет. См. варанты с JS кодом)



True Action:

Action: Set Value
Set Type: Dialog Return Item
Return Item: P1_ID_SELECTED
Affected elements: P99_ID
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298489
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Курдльblkangel,

Да, прежде чем лезть на форум, я опробовал такую конструкцию.
Результат:
Код: html
1.
 SyntaxError: missing ) after argument list


Скорее всего #EMPNO# или #EMPNAME# содержат пробелы, скобки, спец символы и т.д.
Код: javascript
1.
Column Attributes > Column Link > Link Attributes > onClick="parent.$s($v('PXX1_RETURN_NAME'),#EMPNO#);parent.$s($v('PXX2_RETURN_NAME'),\'#EMPNAME#\');apex.navigation.dialog.close('close');"



А вообще аппетит у вас растет, и двумя строчками наверное не ограничется, поэтому перенесите все в функцию. Числовые значение в скобки можно не брать.
Код: javascript
1.
Column Attributes > Column Link > Link Attributes > onClick="setAndClose(#EMPNO#,\'#EMPNAME#\')"


Это в хеадер страницы
Код: javascript
1.
2.
3.
4.
5.
function setAndClose (aItem1, aItem2) {
  parent.$s($v('PXX1_RETURN_NAME'),aItem1);
  parent.$s($v('PXX2_RETURN_NAME'),aItem2);
  apex.navigation.dialog.close('close');
};
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298492
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Исправляюсь, делаю на бумажке все.
Код: javascript
1.
Column Attributes > Column Link > Link Attributes > onClick="parent.$s($v('PXX1_RETURN_NAME'),#EMPNO#);parent.$s($v('PXX2_RETURN_NAME'),'#EMPNAME#');apex.navigation.dialog.close('close');"


Код: javascript
1.
Column Attributes > Column Link > Link Attributes > onClick="setAndClose(#EMPNO#,'#EMPNAME#')"
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298500
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangel,

Да, вот это отлично, спасибо!
Аппетиты у меня не растут, а были изначально сообразны выбранному решению.
А именно: вызывающая форма после успешного выбора из "модельного селектора" должна показать пользователю ENAME, а для внутренней логики использовать EMPNO. Отсюда и 2 параметра.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298506
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдльblkangel,

Да, вот это отлично, спасибо!
Аппетиты у меня не растут, а были изначально сообразны выбранному решению.
А именно: вызывающая форма после успешного выбора из "модельного селектора" должна показать пользователю ENAME, а для внутренней логики использовать EMPNO. Отсюда и 2 параметра.
сам видишь, что тут очень сложно понять грань разумности.
Диалоги разные бывают. Есть карточка клиента, которая меняет 150 параметров при вызове в модальном режиме.
Поэтому всё таки правильнее в диалоге записать в БД, и сделать Refresh(перезапрос) именно того айтемса\региона который нужен.
Второй момент, что диалоговые окна меняются от версии к версии.
И вообще, это уже оффтоп.
Удачи!
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298532
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangel
Код: javascript
1.
Column Attributes > Column Link > Link Attributes > onClick="setAndClose(#EMPNO#,'#EMPNAME#')"



Да, аппетиты растут, извиняюсь! :)
Но для феерического завершения этой ветки, хотелось бы понять, можно ли переиспользовать функцию setAndClose для "транзитной" передачи параметров из вложенной модальной формы "Создать ..."?
Просто установка DA типа "Исполнить JS": setAndClose(PZZZ_EMPNO,'PZZZ_EMPNAME') приводит к ошибке браузера "переменная PZZZ_EMPNO не определена".
Прецедент: когда в модальном селекторе не нашлось требуемой записи и её необходимо создать в новом модальном диалоге 2-го уровня.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298538
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Курдльblkangel
Код: javascript
1.
Column Attributes > Column Link > Link Attributes > onClick="setAndClose(#EMPNO#,'#EMPNAME#')"



Да, аппетиты растут, извиняюсь! :)
Но для феерического завершения этой ветки, хотелось бы понять, можно ли переиспользовать функцию setAndClose для "транзитной" передачи параметров из вложенной модальной формы "Создать ..."?
Просто установка DA типа "Исполнить JS": setAndClose(PZZZ_EMPNO,'PZZZ_EMPNAME') приводит к ошибке браузера "переменная PZZZ_EMPNO не определена".
Прецедент: когда в модальном селекторе не нашлось требуемой записи и её необходимо создать в новом модальном диалоге 2-го уровня.

Не пробовал, думаю да, сколько вложений, столько и приставок parent
Код: javascript
1.
parent.parent.parent.parent  и т.д.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298548
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдльпереиспользовать функцию setAndClose для "транзитной" передачи параметров
в вебе так не делают.
Это передача данных между окнами.
Решается в базовом варианте через REST т.е. урл.
Если решить писать ФУНКЦИИ, то нефиг было айтемсы и декларативно писать.
Надо было через запятую или сюда же МояСуперФункция()
Код: sql
1.
javascript: opener.document.forms['wwv_flow'].P3_ID.value='#ID#'; window.close(); opener.jQuery('#P3_ID').trigger('change');
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298552
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
У мня на 1 окно может быть 12-15 диалогов. Это я на каждый диалог должен функции писать?
Бред.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298556
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну или коротко слоган:
"Если вы в апекс используете функцию JS(свою), значит оракле пока где то недоработал, или вы используете апекс шиворот навыворот." (с)
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298566
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Курдльпереиспользовать функцию setAndClose для "транзитной" передачи параметров
в вебе так не делают.
Это передача данных между окнами.
Передача данных "jQuery - jQuery - вызывающая страница" - это не передача данных между окнами.
Petro123Если решить писать ФУНКЦИИ, то нефиг было айтемсы и декларативно писать.
Я ищу себя :)
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298576
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльПередача данных "jQuery - jQuery - вызывающая страница" - это не передача данных между окнами.
jQuery - это просто набор функций. То что модальный диалог сегодня в этом же окне, а завтра в другом как раз и говорит о инкапсуляции. Т.е. все потроха одного окна не должны волновать другое.
У тебя же в выше примере разные окна? Шаблон для окна Другой страницы?
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298588
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльЯ ищу себя :)
это хорошо)).
Есть ещё такая мысль.
ВИ - бухгалтерия
==============
- ввод нового сотрудника
- в выпадающем списке его нет
- нажимаем кнопу и вызываем диалоговое окно
- вводим нового сотрудника и заполняем кучу всего
- ОК = коммит, а может коммит не пройти и будет райзе. А может райзе не дойти т.к. это веб!
Кроме того проверки могут быть в триггере.
- т.е. по хорошему, всё равно регион или айтем ПРИ модальном окне надо перечитать из СУБД.
----------
Т.к. за НЕцелостность данных и посадить могут.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298598
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Идея транзакционной целостности для меня не нова.

Я после длительного перерыва опять отправлен работать на APEX. Причем уже на 5-й.
Приходится нагонять экстерном. До просветления, когда четко всё понимаешь - еще далеко :(

И я бы не изголялся, если бы простые на первый взгляд приёмы сразу же заработали.
Например, был бы простой способ отрефрешить Select List после добавления новой записи в связанную таблицу.
Без модальных диалогов это всё бы работало по старинке без проблем.
Так как отрефрешить прекрасный Select2? :)
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298600
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Вот зачем писать кучу дерьма воды не по теме, опять загадил всю тему.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298601
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
КурдльPetro123,
Идея транзакционной целостности для меня не нова.

Я после длительного перерыва опять отправлен работать на APEX. Причем уже на 5-й.
Приходится нагонять экстерном. До просветления, когда четко всё понимаешь - еще далеко :(

И я бы не изголялся, если бы простые на первый взгляд приёмы сразу же заработали.
Например, был бы простой способ отрефрешить Select List после добавления новой записи в связанную таблицу.
Без модальных диалогов это всё бы работало по старинке без проблем.
Так как отрефрешить прекрасный Select2? :)

Нельзя инициировать рефреш из БД.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298607
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelНельзя инициировать рефреш из БД.
В каком смысле "из БД"?
Инициатором должно быть событие - напр. закрытие вложенного модального диалога.
Обычный Select List нормально обновляется по Action "Refresh". Однако попытка установить в нем n = ID новой записи проваливается, т.к. следующая после "Refresh" Action пытается совершить Set Value до окончания процедуры обновления данных в списке.
А вот плагин Select2 - вообще не откликается на команду "Refresh".
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298611
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльТак как отрефрешить прекрасный Select2?
про него уже говорили. У меня память хорошая.
Это баг, и скоро будет исправлен.
Если хочешь чтобы тебя понималя программисты, то пиши функцию.
Но в комментах и через слово пиши: "Костыль! Ло рефакторинга! Не работает OnRefresh()".
Тогда тебя поймут все. И я в том числе).
Удачи!
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298613
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelPetro123,
Вот зачем писать кучу дерьма воды не по теме, опять загадил всю тему.
ты не программист, а кодер. Тебе не понять. Не парься.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298618
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123blkangelPetro123,
Вот зачем писать кучу дерьма воды не по теме, опять загадил всю тему.
ты не программист, а кодер. Тебе не понять. Не парься.

Вы надоели гадить уже во всех темах, иногда не успеваешь даже помагать людям, потому что вы гадите на так быстро, что я скролитьне успеваю.
Вы в каждой теме пишите по десять раз "я умею только программировать декларативно, до другого умишком не вышел" И ТАК В КАЖДОЙ ТЕМЕ.

Вас все услышали, не надо повторятся.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39298623
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Даже не смей присваивать высокое звание программиста, ты ТРЕПЛО.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39299756
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangel,

Не подскажешь, как перехватить возвращаемые значения из закрывшегося диалога?
Поясню.
Есть возможность оседлать DA Dialog Closed и в True Actions типа Set Value присваивать значения ITEM-ам вызывающей страницы (по одному на action).
А возможно ли для этой DA создать True Actions типа Execute Javascript Code, в котором сразу вводить, например, в аргументы функции значения, возвращенные закрывшимся диалогом?
Поясню на примере.

Вариант I - долгий.
1. создать DA на event "Dialog Closed"
2. создать в ней True Actions типа Set Value -> Dialog Return Item
3. Returned Item = P2_EMPNO, Affected elements: Item(s) = P1_EMPNO_NEW
4. создать в ней True Actions типа Set Value -> Dialog Return Item
5. Returned Item = P2_ENAME, Affected elements: Item(s) = P1_ENAME_NEW
6. создать в ней True Actions типа Execute Javascript Code:
Код: javascript
1.
MyFunction(P1_EMPNO_NEW, P1_ENAME_NEW);



А хотелось бы:
1. создать DA на event "Dialog Closed"
2. создать в ней True Actions типа Execute Javascript Code:
Код: javascript
1.
MyFunction(P2_EMPNO, P2_ENAME);



Такое возможно?
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39299777
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль2. создать в ней True Actions типа Execute Javascript Code:
Код: javascript
1.
MyFunction(P2_EMPNO, P2_ENAME);


Такое возможно?
ты сам попробуй в консоли запустить свой код и всё поймёшь.
- как минимум, напиши чтобы он компилировался без ошибок в консоли.
Т.е.
Код: sql
1.
P2_EMPNO


JS не понимает что это такое.
Dialog Return - ты хочешь убрать?
Забирать значения в JS?
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39299789
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот тут почитай про кучу сложностей с контекстом этих диалогов.
http://hardlikesoftware.com/weblog/2015/05/22/apex-5-0-dialogs/
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39299814
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, в статье грамотно сказано что диалог не должен знать о родительской, а родитель о нем может знать.
Т.е. можно в событии close на родительской попробовать достучаться до айтемсов диалога.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39299843
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Я сам - адепт ООП и апологет паттернов слабого связывания.
Но ведь в конструкции "Returned Item = P2_EMPNO, Affected elements: Item(s) = P1_EMPNO_NEW"
ты всё равно обращаешься к переменной вызываемой страницы!

Более того, в procession этой страницы типа Close Dialog, - ты явно декларируешь возвращаемые параметры.
Так почему бы не воспользоваться ими напрямую (без промежуточного переписывания)?
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39299888
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльЯ сам - адепт ООП и апологет паттернов слабого связывания.
ты крут! )) Поддерживаю.
КурдльНо ведь в конструкции "Returned Item = P2_EMPNO, Affected elements: Item(s) = P1_EMPNO_NEW"
ты всё равно обращаешься к переменной вызываемой страницы!
Есть слабое связывание, а есть "контекст" который очень важен в JS. Тут всё потоки и асинхронно. В статье как раз про это. Может так перемешаться что будешь потом ошибку искать месяц на продакшене.
Вон, у тебя была ошибка по защите из за того что один код не закончил менять айтемс, а второй проверял контрольную сумму.
2. Контекст - это когда родитель знает того кого родил. А не наоборот.
Очень часто в ЯП используется.
Тут в апекс например, как раз, В КОДЕ РОДИТЕЛЯ В DA забирается из переменной P2 модального в переменную P1 родителя.
Правильно понял где они расположены?

КурдльБолее того, в procession этой страницы типа Close Dialog, - ты явно декларируешь возвращаемые параметры.
Так почему бы не воспользоваться ими напрямую (без промежуточного переписывания)?
упс. У меня нет 5-ки. А 4-ке такого нету. Может завтра 5-ку поставлю гляну. Не знаю.
Ты статью хотя бы гугл переводчиком переведи и прочти. Там вроде толково всё.
3. Там вроде есть и описаны 2 формата модального. В виде страницы и в виде jQuery внедрённого. Есть такое?
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39299892
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльТак почему бы не воспользоваться ими напрямую (без промежуточного переписывания)?
во первых попробуй. Кто мешает. Одно дело правильно архитектурно, но работает. Второе дело что и не работает совсем.
В событии Dialog Close в родителе получи значение айтемс диалогового через $v( или $x( или как там ещё.
...
А все п.п. 6 штук что выше, это ведь в плагине написаны программистом. Как он там их обозначил, такими ты их и видишь. Никакой магии. Зайди в shared - плагины - selec2 и глянь.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39299904
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Спасибо, завтра почитаю!
Но в APEX 5.0 вроде нет никаких подтипов Modal Dialog. Я в доке читал, что это в любом случае jQuery, но всегда реализуется отчуждаемо от страницы вызова.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39327977
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangelColumn Attributes > Column Link > Link Attributes > onClick="setAndClose(#EMPNO#,\'#EMPNAME#\')"

Это в хеадер страницы
Код: javascript
1.
2.
3.
4.
5.
function setAndClose (aItem1, aItem2) {
  parent.$s($v('PXX1_RETURN_NAME'),aItem1);
  parent.$s($v('PXX2_RETURN_NAME'),aItem2);
  apex.navigation.dialog.close('close');
};



Привет! Эта конструкция не работает в APEX 5, когда вызывающая и вызываемая страницы имеют тип Modal Dialog
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39328047
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,
А вызывающая с чего вдруг диалог тип?
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39328078
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльPetro123,
Но в APEX 5.0 вроде нет никаких подтипов Modal Dialog. Я в доке читал, что это в любом случае jQuery, но всегда реализуется отчуждаемо от страницы вызова.
это не понял.
Там разве не 2 типа диалогов?
- в виде региона этой же страницы
- в виде отдельной страницы в терминах апекс?
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39328148
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Курдль,
А вызывающая с чего вдруг диалог тип?
Да типичный же кейс:
1. Списочная форма "человечки" с кнопкой "добавить"
2. Модальная форма "Добавить человечка". На ней, помимо типичных ФИО, например: кнопка "выберите адрес"
3. Модальная форма "Выбор адреса" с IR и сложной логикой выбора.
Petro123это не понял.
Там разве не 2 типа диалогов?
- в виде региона этой же страницы
- в виде отдельной страницы в терминах апекс?

Ты же мне сам давал ссылку почитать, какой охрененный подвиг совершила команда разработки APEX, чтобы сделать модальную форму всегда отчуждаемым элементом типа iFrame, а не тупо Div вызывающей страницы.
Нет в 5.0 никаких регионов типа Modal. Э
Это свойство всей страницы.
Прилагаю скриншоты типов и шаблонов регионов
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39328150
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Курдль,
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39328156
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльДа типичный же кейс:
1. Списочная форма "человечки" с кнопкой "добавить"
2. Модальная форма "Добавить человечка". На ней, помимо типичных ФИО, например: кнопка "выберите адрес"
3. Модальная форма "Выбор адреса" с IR и сложной логикой выбора.
вызов матрёшек из НЕСКОЛЬКИХ ОДНОВРЕМЕННО диалогов в вебе тем более изварт.
Но это мы уже обсуждали. Так что соболезную.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39328158
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вызов матрёшек из НЕСКОЛЬКИХ ОДНОВРЕМЕННО диалогов в вебе тем более изварт.
Но это мы уже обсуждали. Так что соболезную.
Зато Users Friendly Interface!!! :)
Это ж разве матрёшка? Я забил на осторожность и реализовываю цепочки до 8-и вложений :)
Типа "не нашел улицу - открой еще одно вложенное окно и введи! и т.п." :)
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39328159
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльТы же мне сам давал ссылку почитать, какой охрененный подвиг совершила команда разработки APEX, чтобы сделать модальную форму всегда отчуждаемым элементом типа iFrame, а не тупо Div вызывающей страницы.
Нет в 5.0 никаких регионов типа Modal. Э
Это свойство всей страницы.
Прилагаю скриншоты типов и шаблонов регионов
помедленнее)) У меняч нет 5-ки.
- допустим сделали iFrame. Меня это мало интересует.
Значит можно вызвать страничку 156 модально типа так:
API.ShowModalPage(url=f?p=&APP_ID.:156)
Если да - то замечательно. Пошли дальше, что там не выходит у тебя.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39328161
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЗато Users Friendly Interface!!! :)
нравится писать Г.код - пиши.
Соболезную.
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39328165
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльЗато Users Friendly Interface!!! :)
не ври
автор1С:Предприятие использует модальные окна в тех ситуациях, когда от пользователя требуется ввод информации, без которой невозможно дальнейшее выполнение алгоритма. При этом полностью блокируется весь остальной интерфейс программы, а исполнение программного кода останавливается до тех пор, пока пользователь не закроет модальное окно.

С появлением веб-клиента и с переходом 1С:Предприятия на мобильные платформы, модальные окна оказались источником большого количества неудобств и проблем, зачастую неразрешимых.

Как правило "десктопные" браузеры лучше или хуже, но поддерживают модальные окна и открывают их в новом окне браузера как "всплывающее окно":
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39328190
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123помедленнее)) У меняч нет 5-ки.
- допустим сделали iFrame. Меня это мало интересует.
Значит можно вызвать страничку 156 модально типа так:
API.ShowModalPage(url=f?p=&APP_ID.:156)
Если да - то замечательно. Пошли дальше, что там не выходит у тебя.
Я не использую таких конструкций. Канонический подход 5.0 - сначала закрепить за страницей свойство "Modal Dialog", а потом только вызывать из родительской страницы.
Даже так не сработает вообще: .../f&p=111:159:...
И из интерфейса разработчика АРЕХ модальную форму вызвать невозможно.

А не получилось у меня использовать способ blkangel.
Я вернулся к параметрическому способу и всё заработало.

P.S. Про говнокод.
Художника всякий может обидеть :(
Однако, если система, допускающая многократную вложенность, успешно показала себя на МТ, СТ, ИФТ, НТ, ПСИ и ОЭ - зачёт считаю засчитанным! ;)
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39328235
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльКанонический подход 5.0 - сначала закрепить за страницей свойство "Modal Dialog"
так?
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39328236
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Модальный диалог выбора
    #39328238
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КурдльЯ вернулся к параметрическому способу и всё заработало.
если работает, то ОК
КурдльP.S. Про говнокод.
Художника всякий может обидеть :(
Однако, если система, допускающая многократную вложенность, успешно показала себя на МТ, СТ, ИФТ, НТ, ПСИ и ОЭ - зачёт считаю засчитанным! ;)
конечно дело твоё)).
Есть понятие мейнстрим в технологии.
Просто будь в курсе)).
...
Рейтинг: 0 / 0
111 сообщений из 111, показаны все 5 страниц
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Модальный диалог выбора
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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