Создание простого приложения часть 2 – Region

Добрый день уважаемые читатели блога Oracle Application Express (Oracle APEX)!

Мы продолжаем цикл статей по созданию мини портала, используемого для хранения данных. Сегодня мы продолжим рассматривать дерево Page Rendering, и остановимся на регионах и их элементах.

И так мы рассмотрели процесс Get Username Cookie в Before Header. Теперь рассмотрим, что представляет из себя Region.

Region – является областью на странице, которая служит в качестве контейнера для содержания информации. Т.е. некий  “ящик” который можно напичкать элементами отображаемыми на странице. Каждая страница может иметь любое количество регионов. При создании региона мы можем управлять его отображением через  определенный шаблон региона. Шаблон управляет видом региона, размером, определяет, есть ли границы или цвет фона, типами шрифтов и т.п. Шаблон также определяет стандарты для любого размещения кнопок, расположенных на позиции в регионе.

Отображение Region

Отображение Region

В нашем регионе в области Body – расположен регион Login. Если через контекстное меню правой кнопкой мыши зайти в редактирование то мы увидим следующее его свойства.

Структура региона и отображение шаблона

Структура региона и отображение шаблона

Как мы видим данный регион использует шаблон Form Region, который в свою очередь отображается на  позиции Page Template Body (3) общего шаблона страницы Login, у которой есть собственные позиции расположения регионов.

Забегу наперед – сама структура шаблона Form Region, отображена следующим образом:

Структура шаблона Form Region

Структура шаблона Form Region

В позицию #BODY# – при динамической генерации страницы, будут вставлены те элементы, которые указаны в в регионе Login – элементы P101_username и т.п.

Т.е. Form Region – шаблон региона Login элементы которого мы в него добавили(кнопки, различные поля и т.п.) Page Template Body (3) – позиция в общем шаблоне Login. Пример самого шаблона именно страницы Login представлен в следующем виде:

Шаблон страницы Login

Шаблон страницы Login

Как видим в шаблоне самой страницы Login есть те позиции(#REGION_POSITION_02#,#BOX_BODY#, #REGION_POSITION_03#), которые выбраны в нашем регионе Login. Привязка страницы к шаблону происходит в поле Page Template самой страницы. Пример – страница Login привязана к шаблону Login.

Привязка страницы к некоторому шаблону

Привязка страницы к некоторому шаблону

Конечно в будущем желательно не путать и называть каким-либо другим образом регионы и страницы.

И так мы познакомились с регионом, теперь необходимо узнать, какие элементы содержит этот регион. В нашем случае, используются три элемента: два текстовых поля, и одна кнопка.

Элементы региона - Region

Элементы региона – Region

Зайдя через контекстное меню в каждый из элементов, выделим вкратце следующее:

В нашем случае это статическое значение – LOGIN, которое будет передано той-же странице в запросе REQUEST. Более подробно о функции – apex.submit().  При выполнении нажатия на кнопку, указывается специальный идентификатор, называемый :request . Соответственно по этому идентификатору распознаётся с какой кнопки произошла отправка данных. Тогда условие на нажатия кнопки можно переписать в эквивалент условию sql expression типа :request = ‘LOGIN’.

Если посмотреть POST-запрос то мы увидим этот идентификатор:

/apex/wwv_flow.accept p_flow_id=666&p_flow_step_id=101&p_instance=15125238531250&p_page_submission_id=7546437450615&p_request=LOGIN&p_arg_names=12375805589100603&p_t01=admin&p_arg_names=12375915881100608&p_t02=admin_lib&p_md5_checksum=&p_page_checksum=CA

В дальнейшем мы более детально разберемся в работе этого идентификатора. Теперь мы уже знаем, что представляет из себя регион и какие элементы входят в него. В следующих статьях мы поговорим уже о Page Processing и о очередности выполнения процессов в приложении.
P.s. Если вам понравилась статья то вы можете просмотреть рекламму, а я хоть тогда с чем-то выпью кофе;-) Спс!

Обновил статью: Юрий

6 Comments

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.