powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / LOV как в Forms для Interactive Grid
5 сообщений из 5, страница 1 из 1
LOV как в Forms для Interactive Grid
    #39505956
S-V-E
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Собственно, в APEX 5.1.2.00.09 необходим именно такой ЛОВ с таким же поведением как в Forms: чтобы показывал произвольное количество столбцов и возвращал значения в элементы грида текущей строки.

Popup LOV не подходит. К тому же заметил, что грид с большим объемом данных и несколькими такими элементами заметно тормозит. Видимо это обусловлено спецификой работы Popup LOV, когда для вывода отображаемого значения в грид он делает отдельный подзапрос (видно в отладчике). Но утверждать не берусь, потому что в Апексе я новичок.

Было бы замечательно найти готовый плагин с подобным функционалом. Может быть кто знает такой и поделится? Мои собственные поиски привели только к Super LOV. Однако с гридом он не дружит (возвращает только первую пару полей как Popup LOV), да и тормоза те же (наверняка из-за того, что он основан та том же Popup LOV).

Поэтому логичным кажется написание собственного плагина. Совсем-совсем простого, ибо, как я уже писал - в Апексе я новичок, так же как в HTML/CSS/JavaScript. Кнопочку в ячейке грида я уже нарисовал :). По ее нажатию хочу показывать модальную страницу с гридом. Регионов с гридами на странице будет столько, сколько будет нужно ЛОВов. Регионы будут с условным отображением, чтобы показывался тот, чье имя соответствует значению свойства в моем элементе. После выбора записи в "модальном" гриде она записывается в некий промежуточный объект (созданный, например, с помощью jQuery), а потом из объекта садится в элементы основного грида.

Такая вот задумка, которая по крайней мере должна помочь против тормозов. Буду рад прочитать ваши идеи. Возможно есть другие способы решения описанных здесь задач и проблем.
...
Рейтинг: 0 / 0
LOV как в Forms для Interactive Grid
    #39506629
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S-V-E,

Не знаю, про какие тормоза вы говорите, всё работает быстро.
Если вас устраивает Popup Lov и плагины modal lov, разберитесь, почему тормозит.
Для этого тщательно изучите такие вещи как: apex debug, планы запросов, пагинация, без них обсуждать ваш случай смысла нет.

Если коробочные items не устраивают, тогда используйте отдельную страницу с регионом, page mode: modal и взаимодействие через dynamic actions на обоих страницах, изучите стандартные возможности DA, какие есть, для осуществления такого взаимодействия.

Написание / исправление плагинов - вопрос не для новичка, и здесь вам придётся разбираться самостоятельно.
...
Рейтинг: 0 / 0
LOV как в Forms для Interactive Grid
    #39509189
S-V-E
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SvDevЕсли коробочные items не устраивают, тогда используйте отдельную страницу с регионом, page mode: modal и взаимодействие через dynamic actions на обоих страницах, изучите стандартные возможности DA, какие есть, для осуществления такого взаимодействия.

Собственно, так и делаю. На странице диалога использую DA Close Dialog с указанием возвращаемых элементов (Items to Return) и читаю их значения в DA Dialog Closed на основной странице. Но дело в том, что на этой странице может быть несколько гридов и значения нужно записывать в тот грид, который вызвал диалог. Как это определить? Как определить владельца диалога?

Диалог открываю с помощью JS-функции apex.navigation.dialog . Я решил передавать в ее параметр pTriggeringElement значение Static ID грида, чтобы потом из диалога его же вернуть и в DA Dialog Closed по нему строить условие. Но проблема в том, что я не знаю как прочитать параметр pTriggeringElement в странице диалога.

Короче, мне нужно, чтобы диалог вернул Static ID грида. Хотя может есть какой-то более простой способ решения?
...
Рейтинг: 0 / 0
LOV как в Forms для Interactive Grid
    #39509314
shurikt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SvDevS-V-E,

Не знаю, про какие тормоза вы говорите, всё работает быстро.


У нас тоже грид тормозит.

Насколько мы поняли Popup LOV выполняет запросы для каждого элемента каждой строчки грида, а у нас таких ЛОВов по 8 штук в строке, т.о. для прорисовки одного грида с 25 строками делается 200 запросов, возвращающих наименования элементов из LOVов. Тут и появляются тормоза. Можно ли изменить такое поведение грида или ЛОВов?
В представлении по которому строится грид наименования уже подтягиваются, нам не надо чтоб ЛОВ их перезапрашивал их при отображении.
...
Рейтинг: 0 / 0
LOV как в Forms для Interactive Grid
    #39529625
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S-V-E,

Если еще актуально,
с момента создания темы на apex-plugins.com / apex.world вышел плагин Modal LOV IG.

Отвечая на изначальный вопрос:

В Popup LOV есть такое известное свойство:
Input Field: Not Enterable, Show Display Value and Store Return Value

Если его выбрать, то апекс подставляет вместо значения столбца, значения из запроса, указанного в поле LOV (List Of Values).
Для этого апекс соединяет эти 2 запроса (автоматически дописывается подзапрос).
Соответственно стоит учитывать при написании запросов, что эти два поля будут соединяться.

Если выбрать другое значения Input Field: Enterable, Show and Store Return Value, то и подзапроса не будет.
Обычно это не вызывает проблем, но если они есть, тогда стоит обратить внимание и на другие поля:

Display Extra Values
Value Required
Show Total Row Count
Индексы, планы запросов.

Касательно apex.navigation.dialog, он не вызывается напрямую (иначе возникнут проблемы с контрольной суммой строки), вызывается, например, через apex_util.prepare_url, куда передается какие-то значения через url (в результате открывается модальное окно), эти же значения можно вернуть обратно. На вызывающей странице, как один из вариантов, если таких на один регион получается несколько DA, можно сделать один общий DA, он может вызвать другие DA c custom event (с помощью $("#region_static_id").triggerHandler("DOJOB"), - DOJOB - custom event ) и у других DA будет javascript condition, соответствующий возвращенному значению, и эти DA могут, как вариант, уже устанавливать значение соответствующего поля IG. (алгоритм приблизительный)

2shurikt,

Не так. Дописываются подзапросы к основному запросу, и этот основной запрос выполняется только один раз на каждую отрисовку страницы.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / LOV как в Forms для Interactive Grid
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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