СоХабр закрыт.
С 13.05.2019 изменения постов больше не отслеживаются, и новые посты не сохраняются.
Продолжение туториала.
В этой части описаны процессы создания приложения Oracle APEX и создания страниц в приложении.
Предыдущая часть: Туториал по Oracle Application Express. Обзор IDE
Создание приложения
Страницы, создаваемые по умолчанию
Запуск приложения
Создание страниц
Основные компоненты страниц
Визуальные элементы
Невизуальные элементы
Основные свойства элементов
Общие свойства
Свойства страниц
Чтобы создать приложение, нужно зайти в App Builder и нажать кнопку "Create".
В прошлых версиях апекса на первом шаге мастер предлагал выбрать тип приложения (в версиях 4.х, если мне память не изменяет, это были типы "Database application" и "Websheet Application", в версиях 5.х — "Desktop", "Mobile", "Websheet" и "Packaged Application"), в текущей версии все остальные типы задвинули немного в сторону (хотя "Websheet" остался), и нужно выбрать просто "New Application". А "Packaged Application" — это те самые демо-приложения из App Gallery.
Далее запустится мастер создания приложения. На первом шаге нужно выбрать "New Application", на втором — достаточно заполнить поля "Name" ("Название") и "Application ID" (номер приложения). Название нужно просто потому, что это обязательное для заполнения поле, а Application ID
— потому что потом поменять его будет нельзя. Точнее можно (через экспорт/импорт), но это долго и нудобно, лучше сразу задать нужный номер, если автоматически сгенерированный апексом не устраивает. Номер должен быть уникальным. Этот номер используется как часть адреса приложения. Посмотрим на типичный URL апекса:
https://apex.oracle.com/pls/apex/f?p=123456:1:14675052744498:::::
Здесь 123456
— это ID приложения.
На остальные поля в мастере можно пока не обращать внимания, все эти настройки можно будет поменять позже.
После этого нужно нажать "Create Application", апекс создаст приложение и автоматически переместит вас на страницу приложения, где вы увидите
По умолчанию апекс создаст 3 страницы в приложении. Страницы, так же как и приложения, имеют номер и название. Номер точно так же используется в URL для идентификации страницы, он идет сразу за номером приложения и отделяется от него двоеточием. То есть формат такой:
https://apex.oracle.com/pls/apex/f?p=APPLICATION_ID:PAGE_ID:<остальная часть url>
Созданные по умолчанию страницы — это:
Home page (ID страницы: 1)
Это стартовая страница приложения. На нее вы будете попадать по умолчанию после того, как введете логин и пароль в приложении, или если вы укажете URL вашего приложения без указания страницы и всего остального, то есть вот так:
https://apex.oracle.com/pls/apex/f?p=123456
Приложения и страницы имеют также полезное свойство Alias
. Для приложения это свойство настраивается в свойствах приложения ("Application Properties" — "Definition" — "Name" — "Application Alias"), а для страницы — в редакторе страниц в панели свойств справа. Alias
можно использовать в URL страницы вместо номера. Страница логина по умолчанию создается с алиасом LOGIN_DESKTOP
, а домашняя страница — с алиасом HOME
. Если задать приложению алиас MY_APP
, то на страницу логина можно будет зайти по адресу
https://apex.oracle.com/pls/apex/f?p=MY_APP:LOGIN_DESKTOP
Что будет, если приложению 123 сделать алиас 456, а приложению 456 — алиас 123? Ничего не будет, апекс не даст сделать такие алиасы приложениям. Четко в справке это не прописано, но алиас приложения, кажется, должен подчиняться правилам для имен идентификаторов в PL/SQL.
Что будет, если странице 123 сделать алиас 456, а странице 456 — алиас 123? Ничего не будет, страницам такие алиасы давать можно, но они будут проигнорированы. 123 в url откроет страницу с номером 123.
Теперь, когда приложение создано, его уже можно "запустить" (только смотреть там пока не на что). Это не совсем тоже самое, что запуск обычного приложения (как в Windows или в Linux). Приложение апекса рендерится тем же движком, что и сама IDE, так что как только вы создали приложение, оно мгновенно готово к использованию, и любой человек, который введет его адрес в адресную строку, сможет с ним работать. Сам запуск приложения, фактически, — это просто такое название для открытия стартовой страницы (той, которая с номером 1). Запустить приложение можно многими способами:
Эти две кнопки есть почти в любом разделе IDE. Левая содержит номер последней страницы, которую вы открывали в редакторе страниц. Нажав на нее, вы перейдете к редактированию этой страницы, а нажав на правую кнопку, вы запустите эту страницу.
Что случится после запуска? Если запускаемая страница имеет ограниченный доступ, сначала пользователь будет перенаправлен на страницу логина. Если пользователь уже залогинен, или страница с настройках обозначена как общедоступная, то откроется сама эта страница.
По умолчанию страница создается с ограниченным доступом. В свойствах страницы (Редактор страниц — правая панель — группа свойств "Security" — "Authentication") есть две возможные настройки:
Page Requires Authentication
: страница будет доступна только залогиненным пользователям в течении сессии;Page is Public
: общедоступная страница, видна зарегистрированным и незарегистрированным пользователям.Создать страницу можно на странице приложения. Нажмите "Create", после чего запустится мастер создания страниц. Шаги мастера:
После этого страница создана и готова к использованию.
Визуальные элементы — это элементы, которые так или иначе отображаются на экране. Это:
Отчеты и графики можно рассматривать как разновидности регионов (технически это они и есть), но при этом они являются довольно самостоятельными сущностями, со своим поведением, свойствами и прочим.
Это элементы для обеспечения логики работы приложения. Там на самом деле огромное разнообразие элементов, хотя пользователю их и в буквальном смысле не видно. Основные типы:
Основные свойства, характерные для каждого (или почти каждого) типа элементов. Их можно смотреть и изменять в редакторе страниц, там они собраны в группы. Здесь я вкратце опишу их назначение (так что вы будете знать, что где искать), а более подробно расскажу в других статьях.
Identification
: задает название элемента и дополнительные совйства (в зависимости от типа);Appearance
: свойства, отвечающие за внешний вид визуального элемента. Для каждого типа элементов существует набор шаблонов, вы можете выбрать один из них здесь (свойство Template
). Также шаблоны имеют дополнительные настройки (Template Options
— по нажатию на кнопку откроется окно с настройками);Layout
: настройка положения визуального элемента на странице. Элементы располагаются в сетке из 12 колонок, здесь можно указать, как именно они должны располагаться;Source
: у регионов и итемов — источник данных для отображения, у процессов — код процесса;Server-side Condition
: условие, проверяемое на сервере (есть огромный выбор условий, от простых, типа такой-то элемент имеет такое-то значение, до произвольного PL/SQL кода). Элемент будет отображаться на странице, если это условие выполняется, а если нет — то не будет. Причем он будет не скрыт, а просто не отрендерится;Client-side Condition
(у Dynamic Action
): условие, проверяемое на клиенте (без обращения к серверу). DA будет выполнено, если условие выполняется;Read only
: работает так же, как и Server-side Condition
, только управляет не наличием/отсутствием элемента, а возможностью менять значение. Это свойство есть у итемов, регионов и страниц. У итема оно применяется к самому итему, а у регионов/страниц — ко всем итемам внутри соответствующего региона/страницы;Security
: управление доступом к элементу. В принципе, все тоже самое можно сделать и с помощью Server-side Condition
, но лучше разграничить: Server-side Condition
— для логики приложения, Security
— для отображения в зависимости от прав доступа.Configuration
: для включения/выключения Build Option
. Очень неочевидная вещь, но очень полезная: позволяет включать и выключать отдельные фичи приложения, что очень удобно, когда вы разрабатываете параллельно фичи для нескольких разных релизов;Comments
: комментарии для других разработчиков;Help
(у визуальных элементов): справка для конечных пользователей приложения.Свойства, характерные только для страниц:
Navigation
: в этой группе два свойства. Cursor Focus
указывает, передавать ли фокус полю для ввода на странице сразу после заргузки (варианты — либо не передавать, либо передавать первому полю на странице). Warn on Unsaved Changes
не дает пользователю уйти со страницы, если там есть несохраненные данные;JavaScript
: позволяет добавить JavaScript код на страницу. Можно указать путь к файлу или добавить свой код прямо на страницу;CSS
: то же самое для CSS. Подключить файл или добавить на страницу, если нужная какая-то локальная настройка CSS только для этой страницы;Advanced
: позволяет включить или отключить защиту от повторной отправки формы.
комментарии (5)