Особенности использования "Column Link" в отчетах Application Express.
В отчетах Oracle Application Express есть возможность создавать переходы как на другие страницы приложения, так и на произвольные ресурсы сети. Для этого используется настройка "Column Link" поля отчета. Например, для созданного ранее приложения: Очевидно, что максимальное количество передаваемых параметров - 3. Однако, это не совсем так... Количество передаваемых параметров можно увеличить. Это становиться очевидно, если изменить значение в поле "Target" того же блока "Column Link" на "URL". Вот что мы увидим:
Поля, куда вводились имена параметров и их новые значения, стали недоступными для редактирования, но появилось новое поле "URL", где виден тот URL, который будет использоваться на самом деле. Синтаксис данной строки хорошо описан в документации на OTN.
Таким образом, все передаваемые параметры можно писать именно в строке URL. То есть, если мы захотим передать 4 параметра, то строка будет выглядеть следующим образом:
"f?p=&APP_ID.:1:&SESSION.::&DEBUG.::P1_TYPE,P2_TYPE,P3_TYPE,P4_TYPE:#OBJECT_TYPE#,2,3,4",где:
- "&APP_ID." - идентификатор приложения
- "&SESSION." - идентификатор сессии
- "P1_TYPE,P2_TYPE,P3_TYPE,P4_TYPE" - список через запятую тех параметров, которым будет присваиваться новые значения (пробелы не допускаются)
- "#OBJECT_TYPE#,2,3,4" - список новых значений (пробелы не допускаются)
В итоге переменной "P1_TYPE" будет присвоено значение из колонки #OBJECT_TYPE# текущего отчета. Переменной "P2_TYPE" будет присвоено значение "2", "P3_TYPE" - "3", "P4_TYPE" - "4".
Важна очередность перечисления наименований переменных и их значений.
Вот и вся хитрость.
4 комментария:
Что делать, если в передаваемом значении есть запятая?
Да, если запятая или двоеточие - алиас капут. Менять на что-то.
Автору респект - очень помог. Сразу не допрешь, хотя понятно, как значения из страницы в страницу ходят...
Запятую можно протащить, если передаваемое значение заключить в бэкслеши - \123,45\
Как решить проблему.
Линк по клику на Item в виде картинки строки отчета перерисовывает эту же страницу (это понятно), но необходимо по этому клику выполнить событие например разблокировать учетную запись пользователя.
Я не нахожу где и как я могу вызвать эту процедуру.
Помогите пожалуйста.
Отправить комментарий