Баксараев Андрей

 

Oracle Forms 6i

Практические занятия

 

Урок 3. Создание формы ведения Наименований отделов.

               Осуществление навигации между блоками в одном и двух окнах.

               Улучшение внешнего вида формы.

 

Пришло время создать следующую форму , которая позволяла бы вести помимо должностных окладов еще и наименования отделов…

 

Откроем форму Lesson2 , используя меню File / Open.

Исправим имя модуля формы Lesson2 на Lesson3.

Сохраните форму под именем Lesson3 , используя меню File / Save

 

Добавим в форму новый базовый блок , связанный с таблицей OTD, пусть он расположется на канве CANVAS2 :

 

 

 

 

 


В навигаторе объектов появился новый блок OTD  и  новая канва CANVAS2.

 

Как и в Уроке 2 , нет необходимости отображать на канве неинформационное поле первичного ключа OTD_ID таблицы OTD , поэтому в его свойствах исключим принадлежность его канве CANVAS2  для этого :

*   Раскройте узел OTD в навигаторе объектов и поместите курсор на поле OTD_ID

*   Через меню Tools / Properties вызовите окно свойств для этого поля

*   Измените свойство Canvas на значение <Null>

 

Поле DOL_ID свяжем с последовательностью DOL_SEQ  с помощью триггера PRE-INSERT , как и в Уроке 2 . Создать триггер можно либо способом Урока 2, либо скопировать его из блока DOL в блок OTD для этого :

*   поместите курсор на триггер PRE-INSERT блока DOL

*   нажмите кнопку Copy (копировать в буфер) навигатора или меню Edit / Copy

*   поместите курсор на пустой узел Triggers блока OTD

*   нажмите кнопку Paste (вставить из буфера) навигатора или меню Edit / Paste

 

Для изменения текста триггера Pre-Insert блока OTD выполните двойной клик мыши на иконке триггера - вызовется редактор PL SQL  тела триггера.

Замените текст триггера на новый , откомпилируйте его и закройте редактор:

 

 

 

Теперь отредактируйте внешний вид канвы Canvas2 , для этого  двойным кликом мыши на иконке Canvas2  навигатора вызовите редактор канвы . Удалите лишний статический текст и рамку . Разместите на канве поле Name по Вашему вкусу, измените размер канвы:

 

  


Запустите  форму  на  выполнение ;  как  и  прежде  Вы  увидите  лишь  окно Должностные оклады . Попробуйте выполнить запрос ( F8 ) .

 

Для перехода в блок Ведения наименований отделов используйте навигационные клавиши Ctrl-Page Down  или Ctrl-Page Up

 

При переходе в блок OTD расположенный на канве Canvas2 произошли следующие события :

*   Навигация перешла из блока Dol  в  блок  Otd

*   Так как блок Otd расположен на канве Canvas2 , то канва стала видима в окне

*   Так как обе канвы расположены в одном окне , то канва Canvas1 из которой ушла

       навигация оказалась под канвой Canvas2 , и ,значит, невидима…

 

Выполните запрос в блоке Отделы ( F8 ) .

Добавьте  новый отдел и сохраните изменения (F10).

Сделайте запрос по имени отдела - найдите отдел с именем Отдел 2 , для этого

*   войдите в режим ввода запроса ( F7 )

*   В поле Отдел  введите текст  %л 2

*   Выполните запрос (F8)

Этот запрос возвратит все имена отделов заканчивающихся на л 2

 

Закройте форму

 

Теперь разнесем канвы по разным окнам , для  этого

*   в навигаторе создадим новое окно Window2 - копию окна Window0.

*   Изменим свойство Title окна Window2 на Наименования отделов

*   Изменим координаты вывода окна X Position и Y Position на 100 и 20

*   Изменим свойство Window канвы Canvas2  на значение Window2

 

 

 

 

Запустите форму на выполнение

Выполните навигацию в блок OTD (комбинация клавиш Ctrl-Page Down)

 

Что изменилось?

 

Попробуйте подвигать окна , выполнить в каждом из них запрос , ввести новые записи…

 

Закройте форму.
 Улучшим внешний вид формы  :

*   Максимизируем окно RunForm

*   Изменим его заголовок на «АСУ Предприятия»

 

 

 

Для этого на уровне формы создайте новый триггер Pre-Form , тело которого будет отрабатывать перед запуском формы на выполнение :

 

 

Запустите форму на выполнение

 

Что изменилось?

Выполните навигацию в блок OTD (комбинация клавиш Ctrl-Page Down)

 

Закройте форму. Сохраните форму используя меню File / Save