Баксараев Андрей
Oracle
FORMS 6i
Вводный курс
1. Исполняемые компоненты
ifrun60.exe -
Выполняет форму в итерактивном
или пакетном режиме RunForm
ifbld60.exe -
Вызывает Дизайнер разработчика Форм
2. Каталоги Forms 6i
..ORAWIN95\BIN - Каталог исполняемых компонентов Forms 6i в Windows 9x
или ..ORANT/BIN для WIN NT/2000
..ORAWIN95\FORMS60 - Каталог вспомогательных компонентов Forms 6i ресурсных файлов и
т.п.
\SQL - Командные файлы SQL структур хранения форм в БД и таблиц примеров.
3. Файл AutoExec.Bat
Содержит путь
к каталогу исполняемых компонентов
4. Регистратор Regedit
Содержит параметры настройки Forms 6i
Папка
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
Параметры:
NLS_LANG -
AMERICAN_AMERICA.CL8MSWIN1251
ORACLE_HOME - Путь к каталогу Orawin95
ORACLE_PATH - Путь к каталогам Исполняемых
компонентов
FORMS60
- Путь к ресурсным файлам Forms 6i
FORMS60_PATH - Путь к пользовательским
формам ,
библиотекам , референсным
объектам…
ORAPLSQLLOADPATH - Путь
к пользовательским библиотекам
UI_ICON
- Путь к пользовательским файлам иконок
Важно!
Общая длина параметра не должна превышать 255 символов : в этом
случае параметр считается отсутствующим
для Forms
5.
Форматы файлов Forms 6i
*.FMB - Файл формы построенного
в Forms Builder
*.FMX -
Файл формы сгенерированного для
выполнения в RunForms
*.PLL - Файл пользовательской библиотеки
*.PLX -
Файл сгенерированной пользовательской библиотеки для
использования
в сессии RunForm
*.MMB -
Файл пользовательского меню построенного в Forms Builder
*.MMX -
Файл меню сгенерированного для выполнения в сеансе RunForm
6. Принципы построения формы в Forms 6i
Структура формы

Форма представляет собой объект Вашего приложения , который выполняет определенную функцию той задачи
под которую Вы проектируете приложение.
Форма отслеживает события, поступающие
из рабочей среды такие как:
активизация / деактивизация формы
аппаратные события (от клавиатуры ,
мыши ,таймера…)
и т.п.
Перехватить эти события и обработать
их по своему алгоритму можно при помощи объявления соответствующих триггеров.
Взаимосвязь формы с таблицами БД Oracle осуществляется с помощью базовых блоков , которые
поддерживают функции редактирования, добавления и удаления записей в таблицах
БД . Один блок связан содной таблицей или представлением…
Форма отслеживает события поисходящие
в блоке такие как:
активизация / деактивизация блока
добавление / удаление / корректировка
записи в блоке
выполнение запроса
сохранение изменений
и т.п.
Для обработки событий на уровне блока необходимо объявить
соответствующие триггеры с Вашим текстом обработчика события.
Иначе событие будет обработано стандартным образом…
Триггеры на
уровне элемента , блока или формы
оформляются в виде PL SQL блоков , программных единиц (процедур ,
функций , пакетов)
Если программные единицы повторяются в нескольких формах ,
то имеет смысл вынести их в пользовательские библиотеки…
Базовые и небазовые (не связанные с таблицей БД) блоки размещаются на
графических представлениях окон – канвах, которые принадлежат одному из окон.
На канвах кроме блоков можно разместить статический текст,
рисунки графические объекты и т.п.

При запуске формы на выполнение в сеансе RunForm в первую очередь происходит соединение
с базой данных : создается так
называемая сессия.
Номер сессии
доступен любой форме сеанса RunForm , в процедурах и триггерах БД …
Обмен данных между формами осуществляется с помощью списков
параметров и глобальных переменных.
Глобальные переменные
после объявления их в одной из форм
становятся доступными всем формам и живут до окончания сессии RunForm или до ее
уничтожения.
Объявить глобальную переменную можно в любом месте любого PL SQL блока:
:global.my_global:=’USER1’;
:global.other_gl:=’Форма’;
Форме доступны системные
переменные в которых хранится состояние текущей сессии :
:system.form_status
- состояние формы
:system.current_block
- имя текущего блока
:system.message_level
- уровень скрытия
сообщений Формы и т.д.
К форме может быть
подключено меню для осуществления навигации между формами , выполнения
каких либо действий. Объекты меню и
формы (за исключением программных
единиц) доступны друг другу. Форма может динамически подключать разные
модули меню …

Окно сессии RunForm является корневым окном Вашего приложения и содержит
в себе окна всех открытых форм . Окно сессии RunForm имеет имя FORMS_MDI_WINDOW и если есть необходимость
программно изменить его характеристики , например максимизировать его, то
примените стандартную процедуру изменения свойств окна :
Set_Window_Property(FORMS_MDI_WINDOW,WINDOW_STATE,MAXIMIZE);
Для изменения заголовка окна сессии RunForm:
Set_Window_Property(FORMS_MDI_WINDOW,TITLE,’Ведение состава отделов’);
6. Использование Forms Builder для
построения форм, меню и библиотек
Основные компоненты Forms Builder
Навигатор
объектов
позволяет Вам оперативно
перемещаться между :
формами
меню
библиотеками
и т.д.
создавать,копировать,редактировать одновременно несколько форм , меню и их компонентов
Окно
свойств объектов
отображает перечень свойств и их
значений присущих запрашиваемому объекту
Меню
Forms Builder позволяет открыть , создать
, удалить объект из дерева компонентов
с помощью меню или палитры инструментов навигатора объектов. Через меню определяются и параметры среды
разработчика, текущий шрифт, размещение объектов на канвах , вызываются
подсказки и т.п. Используя палитру инструментов или меню Вы можете сохранить,
запустить на
выполнение форму, сгенерировать Ваше меню …

Редактор
Канвы
С помощью редактора канвы Вы можете
придать форме необходимый внешний вид,
разместив блоки , статические тексты и графические объекты. Для этого используется палитра инструментов;
Толщина и стиль линий графических объектов изменяется через меню Format ;
Расположение объектов канвы выравнивается через меню Arrange;

Редактор
PL SQL

С помощью редактора PL SQL Вы можете создать тело процедуры
, функции или обработчика события в
триггере…
В этом примере создан обработчик
события PRE-FORM : перед запуском формы максимизировать RunTime окно и
заменить его титул.
Редактор
меню

С помощью редактора меню Вы можете построить модуль меню с
необходимой иерархией.
Cохраните
его в виде файла меню *.MMB
и сгенерируйте в RunTime *.MMX - файл , который можно подключать к форме…
