Цель лекции: научить ся создавать элементарные формы, соединяться с базой данных и запускать формы в 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. После нажатия кнопки форма и браузер должны закрыться.