Баксараев Андрей
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 …