Создание форм. Режимы и свойства формы
Конфигурирование TNSNAMES.ORA
Чтобы соединиться с Базой Данных, вам необходимо настроить соответствующий сервис.
Файл TNSNAMES.ORA – это файл, предназначенный для определения сетевого имени сервиса, с помощью которого можно обращаться к БД.
Net Configuration Assistant установление соединения с локальными БД
Если вы хотите установить соединение между Oracle Forms и БД Oracle, выполните следующие шаги:
- Проверьте, запущен ли Forms, если да, то закройте его.
- Если запущен OC4J Instance, то остановите и его.
- Скопируйте файл TNSNAMES.ORA из ORACLE_HOME\NETWORK\ADMIN и замените им файл, расположенный в DevSuiteHome_1\NETWORK\ADMIN.
- Файл TNSNAMES.ORA – это файл, предназначенный для определения сетевого имени сервиса, с помощью которого можно обращаться к БД.
- Выполните команду \network\tools\netca.cl или Пуск|Программы|Oracle—DevSuiteHome\Configuration and Migration Tools|Net Configuration.
- При запуске Net Configuration Assistant на экране появится приветственное окно с предложением выбора последующих действий. Выберите опцию "Local Net Service Name Configuration" для работы с файлом TNSNAMES.ORA и нажмите "Далее" ( рис. 4.4).
- В следующем окне вам будет предложено выполнить следующие действия:
- Add – создать новый сервис;
- Modify – изменить существующий сервис;
- Delete – удалить сервис;
- Rename – переименовать сервис;
- Test – протестировать существующую конфигурацию. Так как мы создаем новый сервис, то выбираем опцию Add и нажимаем кнопку "Следующий".
- В следующем окне ( рис. 4.5) вам будет предложено выбрать имя сервиса; укажите соответствующий на свое усмотрение и нажмите кнопку "Следующий".
- В следующем окне ( рис. 4.6) вам будет предложено выбрать сетевой протокол. Выберите TCP и переходите дальше.
- Далее вам будет предложено выбрать порт и имя сервера, на котором находится ваша БД ( рис. 4.7). После того как вы указали необходимые данные, нажмите кнопку "Следующий" для перехода к заключительному шагу.
- Следующий этап необязателен, он предназначен для тестирования созданного сервиса, поэтому жмите кнопку "Готово" для окончания работы с Net Configuration Assistant.
После того как вы завершите работу с Net Configuration Assistant, он автоматически обновит файл TNSNAMES.ORA.
Формы в стиле XP
Построитель экранных форм, особенно ранних версий, имеет, так скажем, не слишком дружественный интерфейс. В этом нет ничего плохого, так как основная идея, которую преследовали разработчики этого продукта, – это функциональность и быстродействие. Начиная с версии Forms 4.5 вы можете совершенствовать внешний вид формы, используя элементы шаблонной графики, визуальные эффекты и изображения.
Если вы разрабатываете ваше приложение в Windows XP, вы можете применить манифест XP (XP Manifest) к вашим формам и самой среде разработки. Применив стиль XP к своим формам, вы добьетесь такого же эффекта при отображении элементов, как и в самой операционной системе. Если провести аналогию, то в Delphi для того, чтобы придать приложению стиль XP, достаточно разместить на форме одноименный компонент Manifest XP. В Oracle Forms такого компонента нет, поэтому мы пойдем другим путем.
- Закройте Oracle Forms.
- Войдите в корневую папку Windows и запустите окно "Свойства папки". Для этого выберите пункт меню Сервис|Свойства папки.
- Выберите вкладку "Вид" окна "Свойства папки" и выберите радио-кнопку "Показывать скрытые файлы и папки".
- Найдите файл WindowsShell.Manifest и скопируйте его в папку BIN корневого каталога Forms.
- Переименуйте WindowsShell.Manifest в ifbld60.exe.manifest
- Скопируйте еще один файл WindowsShell.Manifest в папку BIN и назовите его ifdbg60.exe.manifest.
- Скопируйте третий файл и назовите его ifrun60.exe.manifest.
После того как переименуете все файлы, запустите Forms. Попробуйте создать новые элементы и запустить форму или откройте существующую. Все элементы в вашей форме будут отображены в стиле XP. Файл ifbld60.exe.manifest назначает стиль XP для самого построителя форм, а файлы ifdbg60.exe.manifest и ifrun60.exe.manifest управляют отображением элементов в режиме выполнения. Ниже приведен фрагмент ( рис. 4.8) приложения до и после применения стиля.
Чтобы отменить стиль XP для формы, удалите созданные файлы.
Запуск формы без соединения с Базой Данных
Не всегда в нашей практике возникает необходимость соединения формы с базой, иногда есть потребность в управляющих приложениях, которые не выполняют взаимодействие с БД.
Каждый раз при открытии построителя форм и попытке запуска приложения Forms отображает на экран предупреждение с предложением соединения с Базой Данных ( рис. 4.9).
Если вы нажимаете кнопку "Да", то на экране появляется новое окно – "Соединение" ( рис. 4.10), где вам предлагается ввести строку соединения с БД. Если вы нажимаете кнопку "Отмена", то Forms возвращает вас обратно в Designer, закрывая окно выполнения. Кнопка "Нет" продолжит выполнение, правда, по сути ситуация останется прежней, Forms вновь запросит строку соединения ( рис. 4.11). Если вы нажмете кнопку "Отменить", то Forms, как и в предыдущем случае, закроет окно выполнения и вернет вас в Designer.
Чтобы избежать этих приглашений, выполните следующий пример:
- Создайте на уровне формы триггер ON-LOGON. Для этого, находясь в Объектном Навигаторе, выделите название формы и вызовите всплывающее меню правым щелчком мыши. В появившемся меню выберите пункт Универсальные триггеры | Другие.
- В окне "Триггеры" найдите триггер ON-LOGON и подтвердите выбор ( рис. 4.12).
- После того как вы подтвердили выбор, на экране появится PL/SQL-редактор. Наберите в нем следующий код и нажмите кнопку "Компиляция":
logon('','');
- Закройте редактор PL/SQL и вернитесь в Навигатор. Теперь выберите в главном меню Инструменты|Редактор Разметки. На левой панели Редактора Разметки найдите элемент "Кнопка" и нарисуйте ее на канве. Это необходимо сделать для того, чтобы форма запустилась, так как Forms не запустит окно, если в нем не будет канвы и элемента.
- Запустите форму на выполнение. При появлении окна "Соединение" нажмите кнопку "Нет", и вы увидите окно формы с созданной вами кнопкой.
- Для выхода из формы выберите меню "Действие|Выход" или нажмите кнопку с изображением дверцы.
Настройка Logon screen. Повторное запрашивание пароля
Несмотря на то что в Forms предусмотрен только один диалог аутентификации, который можно вызывать с помощью встроенной процедуры LOGON_SCREEN, вы все же можете вызвать и другой диалог, а именно PASSWORD EXPIRE. Этот тип диалога отличается от стандартного тем, что запрашивает повторный ввод и подтверждение нового пароля. Особенность такого типа аутентификации в том, что вновь введенному паролю будет присвоен статус устаревшего.
PASSWORD EXPIRE – паролю немедленно будет присвоен статус устаревшего. Пользователю придется сменить пароль перед первым использованием своей учетной записи (аккаунта).
Чтобы реализовать этот тип диалога, вам не придется выполнять в Forms какие-либо действия, вам всего лишь нужно создать Пользователя с опцией PASSWORD EXPIRE. Для создания пользователя с опцией PASSWORD EXPIRE выполните следующую команду:
CREATE USER Sqaimes IDENTIFIED BY sqaimes PASSWORD EXPIRE;
Чтобы проверить, как это работает, запустите Forms и попробуйте зарегистрироваться под новым пользователем.