Разработка Web-приложений в Oracle Forms

Структура Oracle Forms

Показывать лекцию целиком

Цель лекции: понимание структуры Forms Developer, объектной зависимости и основных компонентов интерфейса.

Несмотря на то что все версии Forms отличаются друг от друга различными возможностями, нововведениями и улучшенными методами разработки, концептуально подход к разработке приложения не изменился. Если еще вчера на вашем компьютере стоял Forms 6i, а сегодня вы поставили Forms 10g, то при первом знакомстве с этим продуктом вы не найдете существенных отличий до тех пор, пока не запустите форму или детально не обследуете каждый пункт меню. Независимо от версии, Oracle Forms можно разбить на три части:

  • Oracle Forms Builder – это основная среда для разработки приложения, в которой вы работаете с тремя типами модулей: форма, меню и библиотека. Oracle Designer – набор инструментов визуального моделирования, мастеров и прочего инструментария, позволяющий создавать объекты, устанавливать их свойства и писать программные модули для прикладных программ;
  • Oracle Forms Compiler – используется для генерации файлов программ, чтобы создавать исполняемые файлы. Генерация модуля формы компилирует все ее программные объекты и создает исполняемый файл с расширениями .FMX, .MMX и .PLX;
  • Oracle Forms Runform – используется для запуска уже скомпилированной прикладной программы Oracle Forms.
  • Приятно удивляет и то, что с появлением новых веб-ориентированных версий Forms Developer – Forms 9i и Forms 10g – типы поддерживаемых модулей не изменились, поэтому в Oracle Forms вы по-прежнему можете работать с тремя типами модулей.

  • Библиотеки – это совокупность процедур, функций и пакетов, которые могут вызываться из других модулей прикладной программы.
  • Формы – это совокупность объектов и подпрограмм. Примерами объектов, которые вы можете определять в модуле формы, могут быть окна, элементы текста (поля), переключатели, кнопки, сигналы, списки значений и программные единицы.
  • Меню – это совокупность объекта главного меню и любого количества объектов подменю, а также команд элементов меню, которые вместе образуют меню приложения.
  • В таблице 2.1 приведены спецификации используемых в Oracle Forms модулей.

    Расширения модулей Oracle Forms
    Обозначение Расширение
    .FMB Form Module Binary – двоичный модуль формы
    .FMT Form Module Text – текстовый модуль формы
    .FMX Form Module Executable – исполняемый модуль формы
    .MMB Menu Module Binary – двоичный модуль меню
    .MMT Menu Module Text – текстовый модуль меню
    .MMX Menu Module Executable – исполняемый модуль меню
    .PLL PL/SQL Library Module Binary – двоичный модуль библиотеки PL/SQL
    .PLD PL/SQL Library Module Text – текстовый модуль библиотеки PL/SQL
    .PLX PL/SQL Library Executable – исполняемая библиотека PL/SQL (не содержит исходного текста)

    Примечание: если вы создаете прикладную программу с несколькими модулями, то вы должны предоставлять все файлы .FMX, .MMX и .PLX, необходимые для развертывания во время выполнения.

    Компоненты интерфейса Forms Builder

    К главным компонентам интерфейса построителя форм относят инструменты проектирования приложения (см. Лекцию 6. Инструменты проектирования) и мастера:

  • Объектный Навигатор;
  • Редактор Разметки;
  • Палитра свойств;
  • Редактор PL/SQL;
  • мастер создания блоков данных (Data Block Wizard);
  • мастер разметки (Layout Wizard);
  • мастер создания списков значений (LOV Wizard).
  • Весь представленный набор инструментов позволяет быстро разрабатывать приложения, избавляя разработчика от написания большого количества кода и базовой разметки. Инструменты проектирования используются для создания и управления свойствами объектов, PL/SQL-программ, навигации и поиска.

    Структура меню и панели инструментов построителя форм

    Главное меню (рис 2.1) построителя форм дает вам возможность создавать и модифицировать новые модули, объекты и управлять приложением с помощью встроенных команд. Меню разбито на пункты, каждый из которых содержит ассоциированные с ним команды:

  • File – набор стандартных общепринятых файловых команд, таких как создание (Create), сохранение (Save, Save As), открытие (Open) и команды управления модулем;
  • Edit – команды копирования, вставки, редактирования, настройки и так далее;
  • View – команды управления отображением объектов, панелей инструментов и видов;
  • Layout – набор команд, используемых в Редакторе Разметки;
  • Program – команды компиляции и любые связанные с кодированием операции, включая вызов инструментов для работы с PL/SQL-редактором;
  • Debug – включение поддержки команд отладчика;
  • Tools – набор команд для вызова компонентов интерфейса Forms;
  • Window – набор команд для управления окнами;
  • Help – вызов справочной информации и сведений о продукте.
  • Панель инструментов – это горизонтальная панель (см. рис 2.1), которая содержит набор "горячих" клавиш для вызова наиболее часто используемых команд. Вы можете убрать главную панель инструментов, сняв флаг меню View | Main Toolbar.

    (рис 2.1) Главная панель инструментов (Main Toolbar)

    Объектная модель Oracle Forms

    Приложение Oracle Forms Developer может включать в себя от одного до n модулей, которые, в свою очередь, состоят из других компонентов – объектов. Несмотря на довольно солидное многообразие объектов в Forms, можно выделить три основных объекта (рис 2.2):

  • Блок Данных;
  • Элемент;
  • Холст.
  • (рис 2.2) Схема взаимосвязи между основными объектами

    На рис 2.3 представлена иерархическая объектная модель модуля Forms, которая отображает объекты модуля и зависимость между ними.

    (рис 2.3) Объектная модель модуля Forms

    Рассмотрим рис 2.3 более подробно. Модуль Oracle Forms может состоять из множества блоков, которые могут быть базовыми, то есть базироваться на объектах БД (View, Table, Synonym), или небазовыми. Блоки, в свою очередь, состоят из одного или более элементов, которые также могут быть базовыми или небазовыми. Элементы блоков данных, а также элементы графики, такие как линии, кадры и фигуры, располагаются на холсте. Холсты размещаются в окнах, причем с одним окном может быть ассоциировано несколько холстов. В пределах одного модуля существует три уровня триггеров: триггер уровня формы, триггер уровня блока и триггер уровня элемента. В форме может быть сколько угодно холстов, окон, элементов, блоков и программных единиц.

    Генерация модулей

    Генерация модулей – это процесс превращения двоичного файла (.FMB, .MMB, .PLL) в исполняемый файл – .FMX, .MMX, .PLX. В Oracle Forms существует несколько способов генерации исполняемых файлов:

  • Генерация с помощью утилиты Forms Compiler.
  • Генерация модуля из Form Builder.
  • Генерация из командной строки.
  • (рис 2.4) Oracle Forms Compiler

    Генерация модулей с помощью утилиты Forms Compiler

    Утилиту Forms Compiler можно найти по следующему пути – показан внешний вид 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.

    Вернуться к учебному плану