https://apex. /pls/apex/f? p=54506:1:1431153116390:::::,
где:
· apex. – URL сервера
· pls – индикатор того, что нужно использовать mod_plsql картридж
· apex – имя database access descriptor (DAD).
· f? p= – это префикс, используемый Oracle APEX
· 54506– это идентификатор вызываемого приложения
· 1431153116390 – номер сессии
Чтобы запустить приложение, пользователь должен перейти в браузере по следующему URL (для заданного примера): https://apex. /pls/apex/f? p=54506
Запустите свое приложение, используя полученный URL и созданную ранее учетную запись конечного пользователя:

Задание к работе:
1. Доработайте пользовательский интерфейс аналогично рассмотренному примеру, выбирая, возможно, свои варианты оформления.
2. Создайте еще одну рабочую область и экспортируйте в нее свое приложение.
3. В новой рабочей области создайте учетные записи для нескольких конечных пользователей.
4. Покажите результат преподавателю.
Лабораторная работа № 7. Выполнение расчетов в отчетах
Цель работы – изучение технологии программирования расчетов в отчетах.
Задачи:
1) Выполнить расчет годовой зарплаты работников в отчете Работники и разместить результаты в новом столбце.
2) Выполнить расчет числа работников по каждому подразделению в отчете Подразделения и разместить результаты в новом столбце.
1. Расчет годовой зарплаты работников
Для решения задачи:
1) создадим PL/SQL функцию, которая вычисляет зарплату работника;
2) добавим столбец «Зарплата/Год» для отображения результатов этих вычислений в отчете о работниках,
1.1. Вычисление зарплаты работника
1. Перейдите на домашнюю страницу приложения и щелкните по опции SQL Workshop, а затем SQL Commands. Появится окно, в котором Вы можете запускать SQL и PL/SQL код в БД.
2. Введите следующий скрипт:
CREATE OR REPLACE FUNCTION calc_remuneration(
salary IN number, commission_pct IN number) RETURN NUMBER IS
BEGIN
RETURN ((salary*12) + (salary * 12 * nvl(commission_pct,0)));
END;
/
Этот PL/SQL код создает функцию calc_remuneration, принимающую входные (IN) числовые (number) параметры salary (размер месячного оклада) и commission_pct (комиссионный процент) и возвращающую число. Функция вычисляет размер годового вознаграждения работника с учетом процентов.
Обратите внимание на функцию nvl, которая проверяет значение первого параметра на null и в случае, если первый параметр равен null, возвращает значение второго параметра. Это важно, т. к. результатом любых арифметических операций со значением null является null. А в данном случае, используя nvl, мы интерпретируем неопределенное значение комиссионного процента (отсутствие комиссионного процента у работника) как значение = 0.
3. Щелкните по кнопке Run (справа вверху). В окне Results отобразится сообщение «Function created.»
1.2. Добавление столбца с годовой зарплатой
1. Откройте страницу Page Rendering для страницы Работники:
а. В секции Regions щелкните по ссылке Работники.
б. В секции Source проанализируйте имеющийся там автоматически сгенерированный код:
select "EMPLOYEE_ID",
"FIRST_NAME",
"LAST_NAME",
"HIRE_DATE",
"SALARY",
"COMMISSION_PCT"
from "#OWNER#"."EMPLOYEES"
WHERE (DEPARTMENT_ID = :P3_DEPARTMENT_ID or
(DEPARTMENT_ID is null and nvl(:P3_DEPARTMENT_ID,'-1') = '-1'))
Обратите внимание на следующие моменты:
· В запрос включены столбцы, выбранные при создании отчета с помощью мастера.
· #OWNER# – подстановочная строка (substitution string), представляющая имя схемы, с которой ассоциировано приложение и в которой содержатся необходимые таблицы.
2. Замените код запроса на следующий:
SELECT "EMPLOYEE_ID" "Emp_Id",
"FIRST_NAME",
"LAST_NAME",
"HIRE_DATE",
"SALARY",
"COMMISSION_PCT",
calc_remuneration(salary, commission_pct) "Зарплата/Год"
from "#OWNER#"."EMPLOYEES"
WHERE (DEPARTMENT_ID = :P3_DEPARTMENT_ID or
(DEPARTMENT_ID is null and nvl(:P3_DEPARTMENT_ID,'-1') = '-1'))
Обратите внимание на следующие моменты:
· В запрос добавился вызов созданной ранее функции calc_remuneration, которой передаются значения столбцов SALARY и COMMISSION_PCT.
· Для столбца EMPLOYEE_ID и столбца с функцией calc_remuneration установлены синонимы, соответственно, «Emp_Id» и «Зарплата/год».
3. Примените изменения и запустите страницу Работники:

Обратите внимание на следующие моменты:
· Появился новый столбец Зарплата/Год.
· Пропала иконка
со ссылкой на страницу Создать/Редактировать Работника. Это произошло потому, что изменилось название столбца, с которым была ассоциирована ссылка на страницу редактирования записи о работнике (мы установили синоним Emp_Id для столбца EMPLOYEE_ID).
· Столбцы отчета имеют англоязычные названия (кроме Зарплата/Год, которому мы установили русскоязычный синоним в запросе).
Для восстановления в столбце Emp_Id иконки редактирования и ссылки на страницу Создать/Редактировать Работника выполним следующее:
1. На странице определения страницы Работники в секции Regions щелкните по ссылке Работники. Откроется новое окно, в котором выберите опцию Report Attributes.
2. В секции Column Attributes у атрибута Emp_Id щелкните по иконке
слева. Откроется страница редактирования атрибута-столбца Emp_Id.
3. В секции Column Link:
а. В поле Link Text установите текст, представляющий собой html-тэг для отображения необходимой иконки (щелкните по ссылке [Icon 5]);
б. В поле Page из выпадающего списка выберите страницу Создать/Редактировать Работника. Соответствующий номер страницы автоматически установится в поле;
в. В списке параметров ссылки для параметра Item 1 установите следующие значения: в поле Name – P?_EMPLOYEE_ID (напомним, что? – номер страницы в приложении), в поле Value 1 - #Emp_id# (сделать это лучше, щелкнув по иконке
): значение P?_EMPLOYEE_ID – это имя скрытого поля (item) на странице?_Создать/Редактировать Работника, представляющего идентификатор работника; значение #Emp_Id# – это подстановочная строка, вместо которой APEX подставит выбранное пользователем значение столбца Emp_Id (в котором содержится идентификатор работника) из отчета Работники.
4. Щелкните по кнопке Apply Changes в верхней части страницы. Вы вернетесь на страницу Report Attributes. Обратите внимание, что в списке столбцов отчета у столбца Emp_Id появилась пометка Link, которая говорит о том, что с этим столбцом ассоциирована ссылка.
Находясь на странице Report Attributes, русифицируйте заголовки отчета:

2. Расчет числа работников в подразделении
Для решения задачи:
1. Откройте определение страницы Подразделения.
2. В разделе Page Rendering найдите секцию Regions и щелкните по ссылке Подразделения. Найдите секцию Source и замените текст запроса в текстовом поле Region Source на следующий:
SELECT d. department_id "Department ID",
d. department_name "Department Name",
count('x') "Number of Employees",
nvl2(e. employee_id, substr(e. last_name,1,1)||'. '|| e. first_name, '') "Manager Name",
c. country_name "Location"
FROM departments d left join employees e on d. manager_id = e. employee_id
left join locations l on d. location_id = l. location_id
left join countries c on l. country_id = c. country_id
left join employees e2 on d. department_id = e2.department_id
WHERE
instr(upper(d. department_name),upper(nvl(:P2_REPORT_SEARCH, d. department_name))) > 0
GROUP BY d. department_id, d. department_name,
nvl2(e. employee_id, substr(e. last_name,1,1)||'. '|| e. first_name, ''),
c. country_name
Обратите внимание на использование групповой функции count().
3. Щелкните по кнопке Apply Changes и запустите страницу:

Обратите внимание на столбец Число работников.
Задание к работе:
1. В соответствии с семантикой предметной области выполните расчеты, аналогичные приведенным в работе.
2. Покажите результат преподавателю.
[1] Для уточнения названий столбцов таблиц можно воспользоваться средством для просмотра структуры БД – «браузером объектов» (SQL Workshop>ObjectBrowser), открыв его в отдельной вкладке интернет-браузера
[2]См. «Importing Export Files»в руководстве «Oracle Application Express Application Builder User’s Guide».
[3]См. «Installing Export Files» в руководстве «Oracle Application Express Application Builder User’s Guide».
[4]См. «Adding Developer Comments» в руководстве «Oracle Application Express Administration Guide»
[5]Более подробно см. «Managing Application Express Users» в руководстве «Oracle Application Express Administration Guide»
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 |


