Лабораторная работа №3. Создание исходного приложения
Цель работы – получение навыков создания простейших приложений.
Задачи:
Создать простейшее приложение для отчета по таблице DEPARTMENTS.
Дополнить приложение отчетом и формой для таблицы EMPLOYEES.
Очевидно, что непосредственно работать с таблицами для просмотра данных возможно, но затруднительно, особенно для конечного пользователя. Для организации эргономичного интерфейса с целью удобного отображения информации из БД используют отчеты, которые, наряду с другими элементами интерфейса (они будут рассматриваться далее), создаются в рамках приложения пользователя (можно сказать, что это аналог понятия БД в СУБД Access). Такие приложения включают, в общем случае, разное количество форм представления требуемой пользователю информации.
Создание простейшего приложения
Разработка приложения
Для создания приложения активизируют Application Builder. Затем:
Щелкните по кнопке Create>. Появится мастер создания приложения (Create an Application).
Выберите Desktop и нажмите Next>.
На шаге Name:
Schema – выберите схему БД, содержащую объекты, с которыми будет работать приложение.
Name – введите имя торговой корпорации, соответствующее Вашей фамилии в транслитерации (в рассмотренном примере имя приложения - КГТУ).
Application – оставьте автоматически сгенерированное значение (это уникальный идентификатор приложения, с которым работает система и который помогает пользователю сориентироваться).
Выберите тему Theme – 21 (Scarlet) и щелкните Next>.
Далее добавьте страницы в приложение. Для этого:
На шаге Pages:
Удалите страницу Home, нажав на Удаление.
Установите следующее в секции Add Page:
Select Page Type – оставьте значение по умолчанию – Blank.
Page Name – введите Главная. Созданная страница является логической «верхушкой» всех создаваемых далее элементов интерфейса.
Щелкните по кнопке Add Page. Созданная страница появилась в списке страниц приложения в верхней секции.
Затем добавьте страницу с отчетом о подразделениях, основанном на таблице DEPARTMENTS. Для этого в секции Add Page установите следующее:
Select Page Type – выберите Report.
Parent Page– выберите Главная (это необходимо для определения иерархии страниц в приложении).
Page Source – оставьте значение Table.
Table Name – выберите DEPARTMENTS. В списке отображаются все таблицы и представления схемы, с которой ассоциировано приложение.
Report Type – выберите Classic.
Щелкните Add Page. Страницы, перечисленные в секции Create an Application, отображают иерархию страниц в приложении.
Далее измените имя страницы, установленное по умолчанию – Departments, – на Подразделения:
Щелкните по значку у страницы Departments.
В секции New Page Definition измените Page Name на Подразделения.
Щелкните Apply Changes.
В секции Pages щелкните Next>.
После добавления страницы необходимо определить некоторые параметры приложения:
На шаге Shared Components в опции Copy Shared Components from Another Application: оставьте No и щелкните Next>.
На шаге Attributes:
Authentication Scheme оставьте Application Express Accounts.
Language – выберите Russian (ru).
Date Format – выберите маску DD-MON-YYYY, щелкните Next>.
На шаге Confirm проверьте введенные данные и щелкните Create Application.
Две созданные страницы – Главная и Подразделения – по умолчанию отображаются в виде иконок на странице приложения в Application Builder. Обратите внимание, что Oracle APEX автоматически добавил в приложение страницу Login Page.
Таким образом, создано приложение с именем КГТУ, содержащее служебную страницу Главная и страницу с данными из таблицы Departments в виде отчета на странице Подразделения, т.е. первая задача решена.
Разработка навигации по приложению
Для доступа к странице Подразделения отобразим соответствующую ссылку на странице приложения:
На странице приложения нажмите Shared Components:
В разделе Navigation выберите Lists.
Нажмите Create>.
На шаге Source в Create List выберите значение From Scratch. Нажмите Next>.
На шаге Name and Type в опции Name напишите – Navigation, остальные параметры оставьте без изменения, нажмите Next>.
На шаге Query or Static Values в опции List Entry Label напишите –Подразделения, а в опции Target Page ID or custom URL – нажмите на значок и выберите страницу Подразделения. Нажмите Next>.
На шаге Confirm в опции Create List Regions? – выберите значение Create List Region on current page. Появятся дополнительные поля. В поле Region Position выберите - Page Template Body, в опции Region Template выберите – Report List. Нажмите Create List.
Чтобы просмотреть приложение, необходимо запустить его. Тогда APEX на основе данных, сохраненных в БД, динамически визуализирует приложение в виде HTML страниц. Для запуска приложения можно щелкнуть по иконке Run на домашней странице приложения (вкладка Application Builder). После авторизации появится главная страница приложения вида:
Также обратите внимание на панель инструментов разработчика внизу страницы. Данные ссылки появляются, когда приложение запускается в среде разработки.
Перейдите по ссылке Подразделения. Появится страница Подразделения вида:
Видно, что полученный отчет отображает все данные исходной таблицы. Ему соответствует запрос в виде скрипта:
select
"DEPARTMENT_ID",
"DEPARTMENT_NAME",
"MANAGER_ID",
"LOCATION_ID"
from "DEPARTMENTS"
where
(
instr(upper("DEPARTMENT_NAME"),upper(nvl(:P2_REPORT_SEARCH,"DEPARTMENT_NAME"))) > 0
)
Чтобы «добраться» до этого текста, надо сделать следующее:
Откройте определение страницы Подразделения в списке страниц на вкладке, соответствующей идентификатору Вашего приложения. Для выполнения последующих действий при необходимости следует поменять вид интерфейса, нажав на иконку Component view наверху страницы.
В разделе Page Rendering найдите секцию Regions и щелкните по ссылке Подразделения. Откроется окно Identification. Найдите секцию Source – в ней находится представленный текст запроса.
Обратите внимание, что приложение содержит элементы и свойства, которые позволяют быстро выполнять определенные задачи:
Строка навигации отображает иерархию и путь страницы в виде ссылок, по которым можно перемещаться.
Сортировка – чтобы отсортировать данные по столбцу, нужно щелкнуть по заголовку этого столбца.
Search – для поиска записей, содержащих определенные данные, необходимо ввести эти данные (строку поиска) в поле поиска и нажать кнопку Go. Поиск не чувствителен к регистру.
Display – поле со списком позволяет выбрать число записей, которое будет отображаться на странице. Для обновления необходимо нажать кнопку Go.
Spread Sheet – щелчок по этой ссылке вызывает диалог сохранения данных в CSV файле.
Next и Previous – эти ссылки позволяют перемещаться между подмножествами данных (если все записи целиком не помещаются на одной странице, они разбиваются в соответствии со значением параметра Display).
Список подмножеств записей – позволяет выбрать, какое из подмножеств отобразить на странице.
Можно запускать также и отдельные страницы приложения. Для этого нужно нажать на View Report (иконка)и в списке страниц выбрать опцию Run напротив нужной страницы.
В полученном отчете для обозначения названий столбцов используется латиница, что является его недостатком. Технология русификации интерфейса рассматривается далее.
Созданный отчет лишь отображает данные из БД и применим для той информации, которая носит условно-постоянный характер. На практике часто возникает необходимость вносить изменения в отчет и, следовательно, в исходные таблицы. Для этого используется особый вид отчетов – отчеты с формой. 2. Создание отчета и формы для таблицы EMPLOYEES
2.1. Разработка отчета и формы
Для создания отчета о работниках и формы для его редактирования:
Перейдите на домашнюю страницу приложения в Application Builder.
Щелкните по кнопке Create Page>.
На шаге Create a Page:
Выберите Form, затем Form on a Table with Report. Эта опция создает две страницы: отчет и форму, основанные на одной таблице.
На шаге Report Page:
Implementation – выберите Classic.
Breadcrumb – выберите Breadcrumb. Появятся дополнительные свойства Parent Entry и Entry Name.
В Parent Entry выберите ссылку на страницу Главная.
В полях Entry Name, Page Name и Region Title измените значение на Работники, щелкните Next>.
На шаге Data Source:
В поле Table/View Owner оставьте значение по умолчанию.
В поле Table/View Name выберите EMPLOYEES(table)и щелкните Next >.
На шаге Tabs в Tab Options оставьте опцию Do not use tabs и щелкните Next >.
На шаге Report Columns необходимо сформировать список столбцов, которые появятся на странице отчета (напомним, что в предыдущем случае отчет содержал все столбцы исходной таблицы):
В списке Select Column(s) показаны все имеющиеся данные, в правом списке – те, которые следует отображать. С помощью стрелок «>»и «<» сформируйте требуемый список:
EMPLOYEE_ID
FIRST_NAME
LAST_NAME
HIRE_DATE
SALARY
COMMISSION_PCT
Выбранные столбцы появятся на странице отчета. Щелкните Next>.
В Edit Link Image оставьте иконку, выбранную по умолчанию, и щелкните Next>.
На шаге Form Page:
В полях Page Name, Region Title введите Создать/Редактировать Работника. Щелкните Next>.
В поле Primary Key Type выберите Select Primary Key Column(s), а затем в поле Primary Key Column 1 выберите EMPLOYEE_ID и щелкните Next >.
В Source for Primary Key Column 1 выберите Existing sequence, а в появившемся внизу поле Sequence выберите EMPLOYEES_SEQ (EMPLOYEES_SEQ – это объект БД «сиквенс» (последовательность), предназначенный для генерации уникальных числовых значений, которые используются в качестве значений суррогатных идентификаторов). Щелкните Next>.
В списке Select Column(s) выберите все столбцы и щелкните Next>. Эти столбцы появятся в форме Создать/Редактировать Работника.
В следующем блоке оставьте все как есть (значения Yes для операций Insert, Update и Delete) и щелкните Next>. Это позволит пользователям добавлять, изменять и удалять записи о работниках.
На шаге Confirm проверьте выбранные атрибуты страниц формы и отчета и щелкните по кнопке Create.
Запустите созданную страницу. Отобразится отчет Работники:
Обратите внимание на следующие моменты:
Выбранная иконка редактирования появляется в каждой записи. Иконка представляет собой ссылку, щелчок по которой приводит к переходу на страницу формы Создать/Редактировать Работника, в которой можно изменить запись о работнике.
В правом верхнем углу мастером была создана кнопка Create (не видна на рисунке), щелчок по которой также приводит к переходу на страницу формы Создать/Редактировать Работника, на которой можно создать запись о новом работнике в таблице EMPLOYEES.
Отчет Работники включает в себя выбранные столбцы. Oracle APEX на основе этого выбора создал соответствующий SQL-запрос, который возвращает эти данные.
Для того чтобы просмотреть форму для редактирования, которая была создана вместе с отчетом, щелкните по иконке редактирования в какой-либо записи отчета Работники. Появится форма Создать/Редактировать Работника:
Обратите внимание на следующие моменты:
Форма содержит кнопки Cancel, Delete и Apply Changes.
Обязательные столбцы (на которые в БД наложено ограничение целостности Not Null) выделены цветом.
Рядом с полем Hire Date отображается иконка календаря , т.к. тип данных соответствующего столбца – DATE. Щелчок по этой иконке приводит к появлению окна с календарем.
Названия полей формы отображаются на латинице. Технология их русификации рассмотрена в следующей работе.
2.2. Русификация заголовков и форматирование полей в отчете
Установите для каждого столбца страницы Работники в поле Heading русскоязычные названия:
В Column Alignment установите right для столбцов SALARY, COMMISSION_PCT и значение center для всех столбцов в Heading Alignment.
Для того чтобы отредактировать формат столбца SALARY:
Щелкните по иконке слева от него.
На странице редактирования атрибута-столбца SALARY найдите секцию Column Attributes и в поле Number/Date Format выберите из списка 5,234.10. Соответствующая форматная маска будет подставлена в данное поле.
Щелкните по кнопке Apply Changes.
Примените изменения.
Запустите страницу отчета Работники (показан фрагмент отчета):
Обратите внимание на следующие моменты:
Все столбцы отчета имеют русскоязычные заголовки.
Столбец Оклад/Месяц отображается в денежном формате.
Если сейчас запустить приложение, то можно обнаружить, что нет возможности просмотреть отчет о работниках, т.к. на Главной странице нет никакой ссылки на страницу Работники. На самом деле перейти к любой странице можно, введя ее полный адрес в адресной строке браузера, например, адрес Главной страницы может выглядеть следующим образом: https://apex.oracle.com/pls/apex/f?p=58430:1:10680797661828. В этой ссылке особый интерес представляет строка f?p=58430:1:10680797661828, в которой 58430 – это уникальный идентификатор приложения в APEX, 1 – это номер страницы в приложении, а 10680797661828 – идентификатор сессии, автоматически генерируемый APEX. Заменив номер страницы в ссылке, можно перейти к соответствующей странице.
По описанной выше технологии русифицируйте заголовки в отчете Подразделения.
Добавление на Главной странице ссылки на отчет Работники
Поскольку навигационные средства для нашего приложения уже начали разрабатываться в разделе 1.2, технология добавления ссылки на отчет Работники отличается от той, которая рассматривалась в упомянутом разделе:
На странице приложения нажмите Shared Components:
В разделе Navigation щелкните по ссылке Lists. Откроется страница с элементами списка Lists. Перейдите на страницу List Details. В окне List выберите значение Navigation. Появится только одна ссылка – на страницу Подразделение.
На странице List Details щелкните по кнопке Create List Entry>. Отобразится страница создания/редактирования элемента списка (Create/Edit).
На странице Create/Edit введите следующее:
Sequence – 20.
List Entry Label – Работники.
Page – выберите страницу Работники.
Щелкните Create and Create Another.
Запустите Главную страницу:
Обратите внимание, что теперь на Главной странице есть ссылка на страницу Работники.
Протестируйте ссылки на Главной странице.
Задание к работе:
В своей рабочей области создайте приложение с именем, соответствующим своей фамилии в транслитерации.
Для таблицы с условно-постоянной информацией создайте отчет.
Для таблицы с переменной информацией создайте отчет с формой для редактирования.
Включите в стартовую страницу своего приложения ссылки на оба отчета.
Русифицируйте названия полей в обоих отчетах.
Покажите результат преподавателю.
|