14.4.3. Улучшение страницы User Information

Отредактируем User Information страницу, добавим список значений для легкого выбора ролей и связанных проектов.

170. Добавляем список значений проектов: выберите Application on the Developer toolbar, на Application home page выберите 5 - User Information, в области Lists of Values нажмите Create,  выберите From Scratch и нажмите Next, в поле Name введите PROJECTS,  выберите Type — Dynamic, нажмите Next.

171. В Query замените код на следующий:

SELECT project_name d, project_id r

FROM it_projects

ORDER BY d

172. Нажмите Create List of Values.

173. Добавляем список значений ролей: в области Lists of Values выберите Create, выберите From Scratch, и нажмите Next, в Name введите ROLES, выберите Type — Static, нажмите Next.

174. Введите

Display Value      Return Value

CEO                 CEO

Manager         Manager

Lead                 Lead

Member         Member

175. Нажмите Create List of Values.

176. Отредактируем атрибуты для P5_PERSON_ROLE: выберите Edit Page for page 5, в области  Items, выберпите P5_PERSON_ROLE, выберите вкладку Name, в списке Display As выберите Radiogroup, выберите вкладку Label, в поле Label введите Role,  выберите вкладку Element, в поле и введите class="instructiontext"

This specifies that the text associated with each radio group option is the same size as other items on the page.

177. Выберите вкладку LOV, в списке Named LOV выберите ROLES, нажмите Apply Changes.

To edit display attributes for P5_ASSIGNED_PROJECT:

178.  В области Items выберите P5_ASSIGNED_PROJECT, выбери вкладку Name, в поле Display As выберите Select List, выберите вкладку LOV, в списке LOV выберите PROJECTS, в поле Display Null выберите Yes, в поле Null display value введите - Нет -,  нажмите Apply Changes.

179. Меняем поля: в области  Items выберите Edit All,

180. Для P5_PERSON_NAME: Prompt -введите Name, Width — 60,

181. Для P5_PERSON_EMAIL: Prompt - Email Address, Width –  60.

182. Для P5_USERNAME: Sequence — 35, Width - 60.

183. Для P5_PERSON_ROLE: Width - 7.

184. Для P5_ASSIGNED_PROJECT  введите 50 для Sequence, нажмите Apply Changes.

185. Нажмите Edit Page  в верхнем правом углу, чтобы вернуться Page Definition

for Page 5.

186. Добавим Audit Report region: в окне реадктирования Page 5, в области  Regions, выберите Create, выберите Report  и нажмите Next, выберите SQL Report  и нажмите Next, в поле Title введите Audit Report, в списке и выберитеt Hide and Show Region, нажмите Next.

187. В Enter SQL Query or PL/SQL function returning SQL Query, введите код

SELECT CREATED_ON, CREATED_BY,

MODIFIED_ON, MODIFIED_BY

FROM IT_PEOPLE

WHERE PERSON_ID = :P5_PERSON_ID

188. Нажмите Create Region.

189. В области Regions выберите Report что рядом с Audit Report, выберите вкладку Layout and Pagination, в списке Report Template - выберите default: vertical report, look 1 (include null columns), в списке Pagination Scheme  выберите No Pagination Selected, в Enable Partial Page Refresh  выберите No, Number of Rows введите 15, Maximum Row Count — 500, нажмите Apply Changes.

14.4.3.1. Создание проверки

The Form on a Table with Report Wizard created not null validations for Name, Email, Role and Username. You must manually create another

validation to ensure that Leads and Members have an assigned project while the CEO

and Managers do not. As a best practice, it is generally best to use built-in validation

types because they are faster. However, for this compound type of validation, you will

write a PL/SQL validation.

190. Добавляем проверку корректности людей назначенных на проекты: в области Validations нажмите Create, уровень выберите Item level validation, и нажмите Next, для Item выберите User Information: 50. P5_ASSIGNED_PROJECT (Assigned Project) и нажмите Next, в Validation Method выберите PL/SQL и нажмите Next. выберите PL/SQL Expression и нажмите Next, в Sequence введите 60, Validation Name — PROJECT_MAND_FOR_LEADER_AND_MEMBER, нажмите Next, в поле Validation - введите

(:P5_PERSON_ROLE IN ('CEO','Manager') AND

:P5_ASSIGNED_PROJECT = '%'||'null%') OR

(:P5_PERSON_ROLE IN ('Lead','Member') AND

:P5_ASSIGNED_PROJECT != '%'||'null%')

Oracle Application Express passes nulls as %null%. It also replaces %null% with a null when it processes data. Therefore, to keep it in the validation, you need to break the string apart so that it is not recognized and replaced.

191. В поле Error Message - введите

Leads и Members должны иметь связанные с ними проекты, CEO и Managers не могут иметь связанных проектов.

192. Нажмите Next, нажмите Create.