Россия, Москва, Московский Государственный Университет имени Ломоносова М.В., 2002 |
Структура Oracle Forms
Генерация модулей
Генерация модулей – это процесс превращения двоичного файла (.FMB, .MMB, .PLL) в исполняемый файл – .FMX, .MMX, .PLX. В Oracle Forms существует несколько способов генерации исполняемых файлов:
- Генерация с помощью утилиты Forms Compiler.
- Генерация модуля из Form Builder.
- Генерация из командной строки.
Генерация модулей с помощью утилиты Forms Compiler
Утилиту Forms Compiler можно найти по следующему пути – DevSuiteHome_1\BIN\frmcmp.exe. На рис. 2.4 показан внешний вид Forms Compiler.
Утилита имеет довольно простой вид и логически разделена на три части: имя генерируемого модуля, параметры соединения и компиляции. В Forms Compiler вы можете скомпилировать модули форм, меню и библиотек. Для того чтобы скомпилировать форму с помощью Forms Compiler, достаточно выполнить следующее:
- В поле "Файл" укажите имя выполняемого модуля, с указанием полного пути. Это поле является обязательным.
- Заполните поля авторизации: "Ид_пользователя", "Пароль" и "База данных".
- В поле "Модуль имеет тип FORM, MENU или LIBRARY?" требуется указать один из перечисленных типов модуля. Этот параметр необязателен.
Генерация модулей из Form Builder
Генерация формы из Form Builder:
- Форма, которую вы хотите компилировать, должна быть открыта в Forms Builder. Если в Forms Builder открыт более чем один модуль, то сделайте необходимый модуль текущим (активным), выбрав любой содержащийся в нем объект.
- Если вы работаете в Forms 6i, то выберите File | Administration | Compile Module, если же вы используете более поздние версии, то выполните команду меню Program | Compile Module.
- Если генерация прошла успешно, то в статусной строке выводится сообщение "Module Generated Successfully". Oracle Forms записывает файл .FMX в директорию по умолчанию (текущую), давая ему такое же имя, как у формы в Forms Builder.
Чтобы сгенерировать форму автоматически при запуске ее из Forms Builder, выполните следующие действия:
- Для вызова диалогового окна Options выберите Tools | Options.
- Установите предварительную установку Generate Before Run на On (установка по умолчанию).
- Сделайте в Forms Builder форму, которую хотите запустить, активным модулем, затем выберите File | Run.
Oracle Forms безоговорочно генерирует и затем выполняет указанную форму.
Примечание: запуск формы при Generate Before Run, установленной на On, не генерирует никаких меню или библиотек, подсоединенных к этой форме. Генерировать меню и библиотеки вы должны явно командой File | Administration | Generate.
Внимание: очень важно не забывать о таком параметре, как Generate Before Run. Представьте себе случай: вы разработали демонстрационную форму, которую могут запускать один или несколько сотен пользователей. Если параметр включен, то при каждом новом запуске формы все формы, которые были запущены ранее, станут инвалидными.
Генерация модулей меню
Когда вы создаете модуль пользовательского меню, вы подсоединяете его к форме установкой свойства формы Menu Module. Потом, когда вы запустите форму, Oracle Forms автоматически загрузит подсоединенное меню.
Прежде чем вы сможете успешно запустить форму, имеющую подсоединенное меню, вы должны явно сгенерировать исполняемый файл меню .MMX из конструкторского модуля меню .ММВ.
Чтобы сгенерировать меню из Forms Builder:
- Меню, которое вы хотите сгенерировать, должно быть открыто в Forms Builder. Если в Designer открыто более одного модуля, то сделайте нужное меню текущим, выбрав любой объект, который оно содержит.
- Выберите File | Administration | Compile Module.
Oracle Forms записывает файл .ММХ в директорию по умолчанию, давая ему то же имя, что и меню в Forms Builder.
Компиляция библиотек
В отличие от модулей форм и меню модули библиотек не должны явно генерироваться для создания отдельного исполняемого файла. Файл библиотеки .PLL, с которым вы работаете в Forms Builder, включает как исходную программу, необходимую во время проектирования, так и скомпилированную исполняемую программу, необходимую во время выполнения. Применение библиотеки .PLL требуется в случае, если вы захотите использовать Runform Debugger для просмотра исходной программы.
Когда вы в Forms Builder подсоединяете библиотеку к форме, меню или к другой библиотеке, вы подсоединяете версию .PLL этой библиотеки. Чтобы запустить прикладную программу из Forms Builder, вам только нужно убедиться, что подпрограммы и пакеты в библиотеке скомпилированы.
Для того чтобы скомпилировать библиотеку .PLL, выберите эту библиотеку в навигаторе, затем выберите пункт меню File | Compile Selection или File | Compile All.
Чтобы скомпилировать файл библиотеки .PLL с помощью одной только компоненты Generate, используйте опции module_type и compile_all, как показано ниже:
f60gen mylib.pll scott/tiger module_type=library compile_all=yes
Генерация библиотек для исполнения
Когда вы будете готовы развернуть свою прикладную программу, вы можете сгенерировать файл библиотеки .PLX из файла библиотеки .PLL. Файл .PLX не включает компоненты исходной программы, являющейся частью файла .PLL. Вы можете сгенерировать файл .PLX из Designer или из командной строки.
Когда вы в Designer подсоединяете библиотеку к модулю, вы подсоединяете версию .PLL этой библиотеки. Во время исполнения Oracle Forms ищет это имя по путям поиска по умолчанию файл .PLX. Если файл .PLX отсутствует, то Oracle Forms ищет файл .PLL с этим именем.
Чтобы сгенерировать файл библиотеки .PLX из Designer:
- Библиотека, которую вы хотите сгенерировать, должна быть открыта в Designer. Если в Designer открыто более одного модуля, сделайте нужную библиотеку текущим модулем, выбрав любой программный модуль, который она содержит.
- Выберите File | Administration | Compile All. Oracle Forms записывает файл .PLХ в директорию по умолчанию, давая ему то же имя, что и у библиотеки .PLL в Forms Builder.
Чтобы сгенерировать файл библиотеки .PLX из командной строки:
Вызовите компоненту Forms Compiler с опцией module_type:
f60gen mylib.pll scott/tiger module_type=library
Эта команда компилирует все программные модули, находящиеся в нескомпилированном состоянии. Она не перекомпилирует программные модули, успешно скомпилированные в Forms Builder.