Нужно получить идентификатор отчета IR в URL Javascript, который открывает окно браузера в Oracle Apex 5.1 - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь перенести свое приложение с Apex 4.2 на Apex 5.1

Я постараюсь описать полный вариант использования:

У меня есть страница отчета со ссылкой на каждыйзапись, которая открывает диалоговое окно, в котором пользователи могут редактировать или взаимодействовать с записью.

В этом диалоговом окне имеются кнопки «Предыдущая / Следующая», позволяющие пользователям перемещаться по записям.

Когда фильтр включенВ отчете диалоговое окно должно учитывать это при следующем / предыдущем поведении.

Например, если фильтр отчета выбирает только одну строку, тогда диалоговое окно кнопки «Следующая / Предыдущая» отключены, поскольку больше нетстроки, показанные в отчете для навигации.

В Apex 4.1 мы делали это, передавая идентификатор интерактивного отчета (в Javascript через URL), который затем использовался процессом страницы для запроса ПриложенияЭкспресс-представления в бэкэнде для идентификации текущих установленных фильтров и использования этой информации для генерации предложения WHERE, которое затем передается в tПроцесс «Получить следующий или предыдущий первичный ключ».

Сейчас в Apex 5 мы не можем этого сделать, потому что мы не знаем идентификатор IR, а также мы не уверены, сможем ли мы запроситьметаданные обрабатываются таким же образом.

Я был бы рад узнать, как лучше всего добиться такого же поведения в Apex 5.

v_url = 'f?p=' + pAPP_ID + ':' + pPageNo + ':' + pAPP_SESSION + '::::' + pKeyColumn + ',' + pIRReportID + ',' + pModeColumn + ':' + pKeyValue + ',' + $v('apexir_REPORT_ID') + ',' + pMode;

Заранее спасибо за помощь.

1 Ответ

0 голосов
/ 23 октября 2018

Я не знаю, зачем вам нужен идентификатор интерактивного отчета на другой странице.Нужна ли эта работа на многих страницах или только на этой?Если это только в этом, вы можете установить статический идентификатор для этого отчета и использовать определенный идентификатор непосредственно в своем URL (изображение ниже).

enter image description here

Не уверен, но насколько я помню ... в старых версиях apex был разрешен только один интерактивный отчет на страницу.

Таким образом, вы можете получить идентификатор этого отчета на странице из этого скрытого поля "apexir_REPORT_ID".

Однако в APEX5 они допускали более одного интерактивного отчета на страницу, поэтому это поле не могло быть одинаковым для всех интерактивных отчетов на странице ... потому что они должны отличаться для каждого интерактивного отчета.

Из-за этого (только предположим) ... они изменили способ доступа к идентификатору определенного интерактивного отчета на странице.Если вы не зададите статический идентификатор отчета, это скрытое поле будет выглядеть в вашем HTML-коде следующим образом:

enter image description here

Но если вы установите идентификаторскрытое поле будет выглядеть так: enter image description here

В этом случае, чтобы получить это число в атрибуте значения, вы можете сделать это:

$v('YOUR_ID_HERE_report_id')
//or
apex.item('YOUR_ID_HERE_report_id').getValue()

Вы можете найти этот номер в любое время, выбрав

 select region_id from apex_application_page_regions
 where 
 application_id = :APP_ID AND
 page_id = :APP_PAGE_ID AND
 UPPER(region_name) = UPPER(v_region_name);
...