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

Создание форм. Настройка и запуск

Разбить на страницы
Показывать лекцию целиком

Цель лекции: научить ся создавать элементарные формы, соединяться с базой данных и запускать формы в Web.

Создание формы

Любое приложение Oracle Forms Builder состоит из одного или нескольких модулей форм. Форма (модуль) представляет собой совокупность блоков данных, элементов, холстов и программных единиц, которые определяют структуру и логику создаваемого приложения. Форма является самым верхним уровнем для всех объектов.

Построитель форм предоставляет все возможности для создания информационно-функциональной модели предметной области, для которой разрабатывается приложение.

Создание формы

Создать новую форму в Oracle Forms очень просто, для этого необходимо выполнить следующие действия:

  • Запустите файл …\DevSuiteHome_1\BIN\frmbld.exe, если у вас Forms последней версии (Forms 9i ,10g), или …\BIN\ifbld60.EXE, если у вас Forms 6i.
  • После того как приложение полностью загрузится, вы увидите на экране построитель Форм (рис 3.1).
  • По умолчанию Forms Builder при запуске создает пустой модуль с именем MODULE1Каждому вновь создаваемому модулю присваивается имя по умолчанию, которое состоит из слова MODULEXX, где MODULE – постоянный префикс, а XX – генерируемый номер. . Каждому вновь создаваемому модулю присваивается имя по умолчанию, которое состоит из слова MODULEXX, где MODULE – постоянный префикс, а XX – генерируемый номер.
  • Для того чтобы создать модуль самостоятельно, выберите пункт меню Файл | Новая | Форма. Существует несколько способов создать новую форму:
  • нажатием комбинации клавиш Ctrl+N или Ctrl+Insert ;
  • двойным щелчком левой кнопкой мыши на узле "Формы" ;
  • нажатием кнопки "Создать" на панели инструментов навигатора объектов;
  • выбрав пункт меню Навигатор | Создать.
  • (рис 3.1) Построитель форм (Form Builder)

    Примечание: когда вы создаете форму вручную, она не содержит никаких объектов.

    Запуск формы

    Форма создана и скомпилирована, теперь необходимо ее запустить. В первую очередь обратите внимание на необходимые условия запуска формы:

  • Форма должна содержать минимальный набор объектов:
  • минимум один блок данных;
  • минимум одну канву;
  • минимум один элемент.
  • Соединение с базой данных:
  • фиктивное соединение, с пустой строкой соединения;
  • нормальное соединение, с указанием имени пользователя, пароля и строки соединения.
  • Для того чтобы создать форму с минимальным набором объектов, выполните следующие действия:

  • Находясь в навигаторе объектов, выберите узел "блоки данных" и вызовите всплывающее меню правым щелчком мыши. Выберите пункт "Редактор разметки", после чего появится инструмент "Редактор разметки", а в навигаторе объектов автоматически сгенерируется объект Канва (Canvas).
  • Находясь в Редакторе разметки, найдите и выберите левым щелчком мыши на панели инструментов элемент "Кнопка" и начертите его на канве. После того как вы начертили кнопку, Forms автоматически сгенерировал блок данных.
  • Сохраните форму как Test.fmb командой меню File | Save as.
  • Теперь, когда вы обеспечили минимальный набор элементов, форма готова к запуску. В зависимости от версии Forms и от требований к приложению существует три варианта запуска формы:

  • запуск формы в браузере;
  • запуск формы клиент-сервер в GUI;
  • запуск формы клиент-сервер в терминале.
  • Последние версии Forms веб-ориентированы и предназначены для запуска в веб-навигаторе (браузере); что касается более ранних версий, то они ориентированы на архитектуру клиент-сервер и запускаются в GUI- и терминальном режимах. Исключением являются формы версии Forms 6i, которые могут быть запущены во всех перечисленных режимах.

    Запуск формы в графической среде (GUI) и в командной строке

    В этом разделе будет описано, как запустить ваше приложение в графическом и терминальном режиме. Также мы рассмотрим возможность настройки параметров запуска с помощью утилиты Forms Runtime и параметров командной строки.

    По отношению к СУБД Oracle, Oracle Forms может работать в двух режимах:

  • зависимо – Oracle создает новую сессию для пользователя, прошедшего авторизацию, и большинство действий, выполняемых в форме, имеют отражение в СУБД;
  • независимо – Oracle не создает новой сессии, и все действия, производимые пользователем явно или неявно, не приведут к каким-либо изменениям в БД.
  • Далее мы рассмотрим, как правильно соединяться с БД и что для этого необходимо.

    Соединение с ORACLE

    Для того чтобы выполнять операции над данными БД, для начала вам необходимо получить к ним доступ, то есть соединиться с источником. В Oracle Forms, как и в других программных средствах, для соединения с СУБД Oracle необходимо корректно указать имя пользователя, пароль и идентификатор БД (SID).

    Для соединения с Oracle из Forms Builder выполните команду ). Введите строку соединения с базой данныхИмя пользователя | Пароль | Строка соединения – и нажмите кнопку "Соединить".

    (рис 3.2) Окно "Соединение"

    Для соединения с Oracle в командной строке достаточно указать параметр USERID в команде f60run:

    f60run module_name USERID=login/password@connect _line

    Вы также можете запустить утилиту Forms Runtime (рис 3.3), в которой сможете не только соединиться с БД, но и настроить параметры формы перед запуском. Для запуска формы с помощью утилиты Forms Runtime запустите файл \BIN\ifrun60.EXE или выполните команду ifrun60 в командной строке.

    (рис 3.3) Forms Runtime

    В принципе, не обязательно подсоединяться к Oracle сразу, это можно сделать и при создании таблицы либо процедуры, в тот момент, когда вам будет предложено выбрать таблицу для создания блока данных.

    Примечание: в Oracle Forms вы не можете соединиться c БД как SYS. Поэтому после создания БД вам необходимо создать еще одного пользователя и предоставить ему соответствующие привилегии.

    Запуск в графической среде (GUI)

    Все версии Forms, начиная с Forms 4.5 и заканчивая Forms 6i, могут запускаться в пользовательском интерфейсе (GUI). Для того чтобы запустить форму в GUI, выполните следующие действия:

  • Запустите Oracle Forms командой , в котором вы можете выбрать параметры запуска:
  • Use the Data Block Wizard (Создать форму с помощью мастера) – вам будет предложено создать форму с помощью мастера Data Block Wizard и Layout Wizard;
  • Build a new form manually (Создать форму вручную) – после выбора этого параметра запустится "чистая" среда, в которой не будет блоков данных, а только стандартный набор инструментов и модуль;
  • Open an existing form (Открыть существующую форму) – выбрать форму из списка существующих форм, после чего запустится выбранная вами форма;
  • Build a form based on template – запускает Designer с предложением открыть форму;
  • Run the Quick Tour (concepts) – запускает интернет-страницу (*.htm) с кратким обзором новых возможностей продукта Developer как в целом, так и отдельных его опций. При выборе этого пункта кроме страницы Интернет запустится Designer с опцией Build a new form manually ;
  • Explore the Cue Cards (tasks) – запускает Forms Designer, с такой же опцией, как в предыдущем случае; также в Designer сразу после запуска отобразится не только Object Navigator, но и окно справки Cue Cards, в котором вы можете найти справку о первичной работе в Forms (запуск форм, создание объектов).
  • (рис 3.4) Стартовое окно Form Builder
  • Учитывая, что вы работаете с приложением первый раз, выберите первый параметр ( Use the Data Block Wizard ), в этом режиме Forms на самом деле запускает последовательно два мастера:
  • мастер блока данных ( Data Block Wizard );
  • мастер разметки ( Layout Wizard ).
  • Находясь в Редакторе разметки, нажмите кнопку "Запустить форму" с изображением светофора, расположенную на верхней панели инструментов, или выберите пункт главного меню Программа | Запуск Формы | Клиент-сервер.
  • Запуск формы в терминале и в GUI

    Все ранние версии Forms до Forms 6i включительно поддерживают терминальный режим. Форма, запускаемая в терминальном режиме, имеет монохромный режим отображения. При выводе на экран терминала форма подавляет и не отображает те элементы, которые не поддерживаются терминалом, а именно: элементы псевдографики, OLE-контейнеры, ActiveX, Chart Item, Image Item, Bean Area. Также ранние версии не поддерживали некоторые события интерфейса, такие как передвижение и клик мыши.

    Для того чтобы запустить форму, в командной строке выполните следующие действия:

  • Откройте форму из предыдущего примера и сохраните ее как Form_Term. Скомпилируйте модуль.
  • Запустите командную строку, например, SHELL, и выполните следующую команду:
    f60run module_name USERID=login/password@connect_line
  • После того как команда введена, нажмите ).
  • Вы можете использовать в командной строке параметры настройки запуска, включая их в команду f60run.

    Для запуска формы в командной строке достаточно выполнить команду:

    f60run module_name – для версии 6i;
    frmbld module_name – для версии 9i и выше.

    Запуск формы в браузере

    Процесс запуска веб-формы существенно отличается от тех процессов, которые мы рассматривали ранее, – запуск формы в GUI или в терминале. Если вы запустили Forms Builder и выполнили все необходимые условия, то есть создали и скомпилировали приложение, то при попытке запустить форму у вас появится на экране сообщение об ошибке (рис 3.5).

    Вы можете избавиться от этой ошибки, если перед запуском формы запустите экземпляр OC4J. Запуск экземпляра OC4J производится командой DevSuiteHome_1\j2ee\DevSuite\startinst.bat.

    Что такое OC4J, и почему без него невозможно запустить форму? OC4J (Oracle Application Server Containers for J2EE ) – это компонент Oracle AS, который является основой поддержки Java-технологий в соответствии со спецификацией Java 2 Enterprise Edition. Контейнеры OC4J написаны полностью на Java и выполняются на виртуальной машине Java, входящей в состав JDK 1.2 или 1.3. OC4J – это полная поддержка J2EE, включающая транслятор JSP, механизм выполнения Java-сервлетов и контейнер Enterprise Java Beans (EJB).

    (рис 3.5) HTTP Listener Error

    Итак, для того чтобы запустить первую форму, выполните следующие действия:

  • Запустите OC4J. После запуска OC4J у вас на экране появится ).
  • Запустите Forms Builder и откройте форму Test.fmb.
  • Вызовите диалог соединения для подключения к БД командой File | Connect или с помощью кнопки "Соединение" на панели инструментов.
  • Запустите форму командой Run Form по щелчку кнопки на панели инструментов или командой меню Program | Run Form.
  • (рис 3.6) Java Console

    После запуска формы на экране появится браузер, в который будет загружен апплет, отображающий форму. В Java Console сразу же после запуска формы появятся новые записи:

    07/09/23 10:29:21 FormsServlet init():
    configFileName: D:\DevSuiteHome_1
    testMode: false
    07/09/23 10:29:28 ListenerServlet init()

    На рис 3.7 кружочками показаны основные элементы, которые вы видите при отображении формы:

  • браузер (Browser) ;
  • Java applet ;
  • консоль окна – строка состояния (Console);
  • URL;
  • панель инструментов меню (Menu Toolbar);
  • меню по умолчанию (Default Menu);
  • кнопка – графический элемент формы "Кнопка" (Item Button);
  • окно (Window).
  • (рис 3.7) Форма Test.fmx

    Важно: если при запуске формы в браузере появилась надпись "ORACLE FORMS", апплет не загрузился и браузер самостоятельно закрылся, то вам необходимо переставить Jiniator.

    Закрытие браузера

    После того как вы нажимаете кнопку EXIT_FORM на главной панели инструментов, форма закрывается, а браузер остается. Для того чтобы избавиться от этой проблемы, можно воспользоваться одним из самых распространенных способов, а именно создать файл *.html, который выполняет процедуру закрытия браузера. Выполните следующие действия:

  • Создайте пустой файл с расширением *.html и вставьте в него следующий код:
    <html>
    <head>
    <script language="javascript">
    function closeit()
    {
    win = top;
    win.opener = top;
    win.close ();
    }
    </script>
    </head>
    <body onload="closeit()">
    close window
    </body>
    </html>
  • Сохраните файл в папке "C:\<DevSuiteHome_home>\tools\web\html" и назовите его exit.html.
  • Создайте триггер POST-FORM (form_level) и напишите в нем всего одну строчку:
    Web.Show_Document('/forms/html/exit.html','_self');
  • Запустите форму и попробуйте нажать кнопку EXIT_FORM, чтобы инициировать триггер POST-FORM. После нажатия кнопки форма и браузер должны закрыться.
  • Страницы:

    Цель лекции: научить ся создавать элементарные формы, соединяться с базой данных и запускать формы в Web.

    Создание формы

    Любое приложение Oracle Forms Builder состоит из одного или нескольких модулей форм. Форма (модуль) представляет собой совокупность блоков данных, элементов, холстов и программных единиц, которые определяют структуру и логику создаваемого приложения. Форма является самым верхним уровнем для всех объектов.

    Построитель форм предоставляет все возможности для создания информационно-функциональной модели предметной области, для которой разрабатывается приложение.

    Создание формы

    Создать новую форму в Oracle Forms очень просто, для этого необходимо выполнить следующие действия:

  • Запустите файл …\DevSuiteHome_1\BIN\frmbld.exe, если у вас Forms последней версии (Forms 9i ,10g), или …\BIN\ifbld60.EXE, если у вас Forms 6i.
  • После того как приложение полностью загрузится, вы увидите на экране построитель Форм (рис 3.1).
  • По умолчанию Forms Builder при запуске создает пустой модуль с именем MODULE1Каждому вновь создаваемому модулю присваивается имя по умолчанию, которое состоит из слова MODULEXX, где MODULE – постоянный префикс, а XX – генерируемый номер. . Каждому вновь создаваемому модулю присваивается имя по умолчанию, которое состоит из слова MODULEXX, где MODULE – постоянный префикс, а XX – генерируемый номер.
  • Для того чтобы создать модуль самостоятельно, выберите пункт меню Файл | Новая | Форма. Существует несколько способов создать новую форму:
  • нажатием комбинации клавиш Ctrl+N или Ctrl+Insert ;
  • двойным щелчком левой кнопкой мыши на узле "Формы" ;
  • нажатием кнопки "Создать" на панели инструментов навигатора объектов;
  • выбрав пункт меню Навигатор | Создать.
  • (рис 3.1) Построитель форм (Form Builder)

    Примечание: когда вы создаете форму вручную, она не содержит никаких объектов.

    Запуск формы

    Форма создана и скомпилирована, теперь необходимо ее запустить. В первую очередь обратите внимание на необходимые условия запуска формы:

  • Форма должна содержать минимальный набор объектов:
  • минимум один блок данных;
  • минимум одну канву;
  • минимум один элемент.
  • Соединение с базой данных:
  • фиктивное соединение, с пустой строкой соединения;
  • нормальное соединение, с указанием имени пользователя, пароля и строки соединения.
  • Для того чтобы создать форму с минимальным набором объектов, выполните следующие действия:

  • Находясь в навигаторе объектов, выберите узел "блоки данных" и вызовите всплывающее меню правым щелчком мыши. Выберите пункт "Редактор разметки", после чего появится инструмент "Редактор разметки", а в навигаторе объектов автоматически сгенерируется объект Канва (Canvas).
  • Находясь в Редакторе разметки, найдите и выберите левым щелчком мыши на панели инструментов элемент "Кнопка" и начертите его на канве. После того как вы начертили кнопку, Forms автоматически сгенерировал блок данных.
  • Сохраните форму как Test.fmb командой меню File | Save as.
  • Теперь, когда вы обеспечили минимальный набор элементов, форма готова к запуску. В зависимости от версии Forms и от требований к приложению существует три варианта запуска формы:

  • запуск формы в браузере;
  • запуск формы клиент-сервер в GUI;
  • запуск формы клиент-сервер в терминале.
  • Последние версии Forms веб-ориентированы и предназначены для запуска в веб-навигаторе (браузере); что касается более ранних версий, то они ориентированы на архитектуру клиент-сервер и запускаются в GUI- и терминальном режимах. Исключением являются формы версии Forms 6i, которые могут быть запущены во всех перечисленных режимах.

    Запуск формы в графической среде (GUI) и в командной строке

    В этом разделе будет описано, как запустить ваше приложение в графическом и терминальном режиме. Также мы рассмотрим возможность настройки параметров запуска с помощью утилиты Forms Runtime и параметров командной строки.

    По отношению к СУБД Oracle, Oracle Forms может работать в двух режимах:

  • зависимо – Oracle создает новую сессию для пользователя, прошедшего авторизацию, и большинство действий, выполняемых в форме, имеют отражение в СУБД;
  • независимо – Oracle не создает новой сессии, и все действия, производимые пользователем явно или неявно, не приведут к каким-либо изменениям в БД.
  • Далее мы рассмотрим, как правильно соединяться с БД и что для этого необходимо.

    Соединение с ORACLE

    Для того чтобы выполнять операции над данными БД, для начала вам необходимо получить к ним доступ, то есть соединиться с источником. В Oracle Forms, как и в других программных средствах, для соединения с СУБД Oracle необходимо корректно указать имя пользователя, пароль и идентификатор БД (SID).

    Для соединения с Oracle из Forms Builder выполните команду ). Введите строку соединения с базой данныхИмя пользователя | Пароль | Строка соединения – и нажмите кнопку "Соединить".

    (рис 3.2) Окно "Соединение"

    Для соединения с Oracle в командной строке достаточно указать параметр USERID в команде f60run:

    f60run module_name USERID=login/password@connect _line

    Вы также можете запустить утилиту Forms Runtime (рис 3.3), в которой сможете не только соединиться с БД, но и настроить параметры формы перед запуском. Для запуска формы с помощью утилиты Forms Runtime запустите файл \BIN\ifrun60.EXE или выполните команду ifrun60 в командной строке.

    (рис 3.3) Forms Runtime

    В принципе, не обязательно подсоединяться к Oracle сразу, это можно сделать и при создании таблицы либо процедуры, в тот момент, когда вам будет предложено выбрать таблицу для создания блока данных.

    Примечание: в Oracle Forms вы не можете соединиться c БД как SYS. Поэтому после создания БД вам необходимо создать еще одного пользователя и предоставить ему соответствующие привилегии.

    Запуск в графической среде (GUI)

    Все версии Forms, начиная с Forms 4.5 и заканчивая Forms 6i, могут запускаться в пользовательском интерфейсе (GUI). Для того чтобы запустить форму в GUI, выполните следующие действия:

  • Запустите Oracle Forms командой , в котором вы можете выбрать параметры запуска:
  • Use the Data Block Wizard (Создать форму с помощью мастера) – вам будет предложено создать форму с помощью мастера Data Block Wizard и Layout Wizard;
  • Build a new form manually (Создать форму вручную) – после выбора этого параметра запустится "чистая" среда, в которой не будет блоков данных, а только стандартный набор инструментов и модуль;
  • Open an existing form (Открыть существующую форму) – выбрать форму из списка существующих форм, после чего запустится выбранная вами форма;
  • Build a form based on template – запускает Designer с предложением открыть форму;
  • Run the Quick Tour (concepts) – запускает интернет-страницу (*.htm) с кратким обзором новых возможностей продукта Developer как в целом, так и отдельных его опций. При выборе этого пункта кроме страницы Интернет запустится Designer с опцией Build a new form manually ;
  • Explore the Cue Cards (tasks) – запускает Forms Designer, с такой же опцией, как в предыдущем случае; также в Designer сразу после запуска отобразится не только Object Navigator, но и окно справки Cue Cards, в котором вы можете найти справку о первичной работе в Forms (запуск форм, создание объектов).
  • (рис 3.4) Стартовое окно Form Builder
  • Учитывая, что вы работаете с приложением первый раз, выберите первый параметр ( Use the Data Block Wizard ), в этом режиме Forms на самом деле запускает последовательно два мастера:
  • мастер блока данных ( Data Block Wizard );
  • мастер разметки ( Layout Wizard ).
  • Находясь в Редакторе разметки, нажмите кнопку "Запустить форму" с изображением светофора, расположенную на верхней панели инструментов, или выберите пункт главного меню Программа | Запуск Формы | Клиент-сервер.
  • Запуск формы в терминале и в GUI

    Все ранние версии Forms до Forms 6i включительно поддерживают терминальный режим. Форма, запускаемая в терминальном режиме, имеет монохромный режим отображения. При выводе на экран терминала форма подавляет и не отображает те элементы, которые не поддерживаются терминалом, а именно: элементы псевдографики, OLE-контейнеры, ActiveX, Chart Item, Image Item, Bean Area. Также ранние версии не поддерживали некоторые события интерфейса, такие как передвижение и клик мыши.

    Для того чтобы запустить форму, в командной строке выполните следующие действия:

  • Откройте форму из предыдущего примера и сохраните ее как Form_Term. Скомпилируйте модуль.
  • Запустите командную строку, например, SHELL, и выполните следующую команду:
    f60run module_name USERID=login/password@connect_line
  • После того как команда введена, нажмите ).
  • Вы можете использовать в командной строке параметры настройки запуска, включая их в команду f60run.

    Для запуска формы в командной строке достаточно выполнить команду:

    f60run module_name – для версии 6i;
    frmbld module_name – для версии 9i и выше.

    Запуск формы в браузере

    Процесс запуска веб-формы существенно отличается от тех процессов, которые мы рассматривали ранее, – запуск формы в GUI или в терминале. Если вы запустили Forms Builder и выполнили все необходимые условия, то есть создали и скомпилировали приложение, то при попытке запустить форму у вас появится на экране сообщение об ошибке (рис 3.5).

    Вы можете избавиться от этой ошибки, если перед запуском формы запустите экземпляр OC4J. Запуск экземпляра OC4J производится командой DevSuiteHome_1\j2ee\DevSuite\startinst.bat.

    Что такое OC4J, и почему без него невозможно запустить форму? OC4J (Oracle Application Server Containers for J2EE ) – это компонент Oracle AS, который является основой поддержки Java-технологий в соответствии со спецификацией Java 2 Enterprise Edition. Контейнеры OC4J написаны полностью на Java и выполняются на виртуальной машине Java, входящей в состав JDK 1.2 или 1.3. OC4J – это полная поддержка J2EE, включающая транслятор JSP, механизм выполнения Java-сервлетов и контейнер Enterprise Java Beans (EJB).

    (рис 3.5) HTTP Listener Error

    Итак, для того чтобы запустить первую форму, выполните следующие действия:

  • Запустите OC4J. После запуска OC4J у вас на экране появится ).
  • Запустите Forms Builder и откройте форму Test.fmb.
  • Вызовите диалог соединения для подключения к БД командой File | Connect или с помощью кнопки "Соединение" на панели инструментов.
  • Запустите форму командой Run Form по щелчку кнопки на панели инструментов или командой меню Program | Run Form.
  • (рис 3.6) Java Console

    После запуска формы на экране появится браузер, в который будет загружен апплет, отображающий форму. В Java Console сразу же после запуска формы появятся новые записи:

    07/09/23 10:29:21 FormsServlet init():
    configFileName: D:\DevSuiteHome_1
    testMode: false
    07/09/23 10:29:28 ListenerServlet init()

    На рис 3.7 кружочками показаны основные элементы, которые вы видите при отображении формы:

  • браузер (Browser) ;
  • Java applet ;
  • консоль окна – строка состояния (Console);
  • URL;
  • панель инструментов меню (Menu Toolbar);
  • меню по умолчанию (Default Menu);
  • кнопка – графический элемент формы "Кнопка" (Item Button);
  • окно (Window).
  • (рис 3.7) Форма Test.fmx

    Важно: если при запуске формы в браузере появилась надпись "ORACLE FORMS", апплет не загрузился и браузер самостоятельно закрылся, то вам необходимо переставить Jiniator.

    Закрытие браузера

    После того как вы нажимаете кнопку EXIT_FORM на главной панели инструментов, форма закрывается, а браузер остается. Для того чтобы избавиться от этой проблемы, можно воспользоваться одним из самых распространенных способов, а именно создать файл *.html, который выполняет процедуру закрытия браузера. Выполните следующие действия:

  • Создайте пустой файл с расширением *.html и вставьте в него следующий код:
    <html>
    <head>
    <script language="javascript">
    function closeit()
    {
    win = top;
    win.opener = top;
    win.close ();
    }
    </script>
    </head>
    <body onload="closeit()">
    close window
    </body>
    </html>
  • Сохраните файл в папке "C:\<DevSuiteHome_home>\tools\web\html" и назовите его exit.html.
  • Создайте триггер POST-FORM (form_level) и напишите в нем всего одну строчку:
    Web.Show_Document('/forms/html/exit.html','_self');
  • Запустите форму и попробуйте нажать кнопку EXIT_FORM, чтобы инициировать триггер POST-FORM. После нажатия кнопки форма и браузер должны закрыться.
  • Вернуться к учебному плану