Опубликован: 17.09.2009 | Доступ: свободный | Студентов: 1436 / 105 | Оценка: 3.94 / 3.53 | Длительность: 10:18:00
ISBN: 978-5-9963-0238-3
Лекция 4:

Создание форм. Режимы и свойства формы

< Лекция 3 || Лекция 4: 12 || Лекция 5 >

Конфигурирование TNSNAMES.ORA

Чтобы соединиться с Базой Данных, вам необходимо настроить соответствующий сервис.

Файл TNSNAMES.ORA – это файл, предназначенный для определения сетевого имени сервиса, с помощью которого можно обращаться к БД.

Net Configuration Assistant установление соединения с локальными БД

Если вы хотите установить соединение между Oracle Forms и БД Oracle, выполните следующие шаги:

  1. Проверьте, запущен ли Forms, если да, то закройте его.
  2. Если запущен OC4J Instance, то остановите и его.
  3. Скопируйте файл TNSNAMES.ORA из ORACLE_HOME\NETWORK\ADMIN и замените им файл, расположенный в DevSuiteHome_1\NETWORK\ADMIN.
  4. Файл TNSNAMES.ORA – это файл, предназначенный для определения сетевого имени сервиса, с помощью которого можно обращаться к БД.
  5. Выполните команду \network\tools\netca.cl или Пуск|Программы|Oracle—DevSuiteHome\Configuration and Migration Tools|Net Configuration.
  6. При запуске Net Configuration Assistant на экране появится приветственное окно с предложением выбора последующих действий. Выберите опцию "Local Net Service Name Configuration" для работы с файлом TNSNAMES.ORA и нажмите "Далее" ( рис. 4.4).
    Окно приветствия Net Configuration Assistant

    Рис. 4.4. Окно приветствия Net Configuration Assistant
  7. В следующем окне вам будет предложено выполнить следующие действия:
    • Add – создать новый сервис;
    • Modify – изменить существующий сервис;
    • Delete – удалить сервис;
    • Rename – переименовать сервис;
    • Test – протестировать существующую конфигурацию. Так как мы создаем новый сервис, то выбираем опцию Add и нажимаем кнопку "Следующий".
  8. В следующем окне ( рис. 4.5) вам будет предложено выбрать имя сервиса; укажите соответствующий на свое усмотрение и нажмите кнопку "Следующий".
    Выбор имени сервиса

    Рис. 4.5. Выбор имени сервиса
  9. В следующем окне ( рис. 4.6) вам будет предложено выбрать сетевой протокол. Выберите TCP и переходите дальше.
    Окно выбора сетевого протокола

    Рис. 4.6. Окно выбора сетевого протокола
  10. Далее вам будет предложено выбрать порт и имя сервера, на котором находится ваша БД ( рис. 4.7). После того как вы указали необходимые данные, нажмите кнопку "Следующий" для перехода к заключительному шагу.
    Окно настройки соединения

    Рис. 4.7. Окно настройки соединения
  11. Следующий этап необязателен, он предназначен для тестирования созданного сервиса, поэтому жмите кнопку "Готово" для окончания работы с Net Configuration Assistant.

После того как вы завершите работу с Net Configuration Assistant, он автоматически обновит файл TNSNAMES.ORA.

Формы в стиле XP

Построитель экранных форм, особенно ранних версий, имеет, так скажем, не слишком дружественный интерфейс. В этом нет ничего плохого, так как основная идея, которую преследовали разработчики этого продукта, – это функциональность и быстродействие. Начиная с версии Forms 4.5 вы можете совершенствовать внешний вид формы, используя элементы шаблонной графики, визуальные эффекты и изображения.

Если вы разрабатываете ваше приложение в Windows XP, вы можете применить манифест XP (XP Manifest) к вашим формам и самой среде разработки. Применив стиль XP к своим формам, вы добьетесь такого же эффекта при отображении элементов, как и в самой операционной системе. Если провести аналогию, то в Delphi для того, чтобы придать приложению стиль XP, достаточно разместить на форме одноименный компонент Manifest XP. В Oracle Forms такого компонента нет, поэтому мы пойдем другим путем.

  1. Закройте Oracle Forms.
  2. Войдите в корневую папку Windows и запустите окно "Свойства папки". Для этого выберите пункт меню Сервис|Свойства папки.
  3. Выберите вкладку "Вид" окна "Свойства папки" и выберите радио-кнопку "Показывать скрытые файлы и папки".
  4. Найдите файл WindowsShell.Manifest и скопируйте его в папку BIN корневого каталога Forms.
  5. Переименуйте WindowsShell.Manifest в ifbld60.exe.manifest
  6. Скопируйте еще один файл WindowsShell.Manifest в папку BIN и назовите его ifdbg60.exe.manifest.
  7. Скопируйте третий файл и назовите его ifrun60.exe.manifest.

После того как переименуете все файлы, запустите Forms. Попробуйте создать новые элементы и запустить форму или откройте существующую. Все элементы в вашей форме будут отображены в стиле XP. Файл ifbld60.exe.manifest назначает стиль XP для самого построителя форм, а файлы ifdbg60.exe.manifest и ifrun60.exe.manifest управляют отображением элементов в режиме выполнения. Ниже приведен фрагмент ( рис. 4.8) приложения до и после применения стиля.

Чтобы отменить стиль XP для формы, удалите созданные файлы.

Форма в стиле XP

Рис. 4.8. Форма в стиле XP

Запуск формы без соединения с Базой Данных

Не всегда в нашей практике возникает необходимость соединения формы с базой, иногда есть потребность в управляющих приложениях, которые не выполняют взаимодействие с БД.

Каждый раз при открытии построителя форм и попытке запуска приложения Forms отображает на экран предупреждение с предложением соединения с Базой Данных ( рис. 4.9).

Приглашение соединения с БД

Рис. 4.9. Приглашение соединения с БД

Если вы нажимаете кнопку "Да", то на экране появляется новое окно – "Соединение" ( рис. 4.10), где вам предлагается ввести строку соединения с БД. Если вы нажимаете кнопку "Отмена", то Forms возвращает вас обратно в Designer, закрывая окно выполнения. Кнопка "Нет" продолжит выполнение, правда, по сути ситуация останется прежней, Forms вновь запросит строку соединения ( рис. 4.11). Если вы нажмете кнопку "Отменить", то Forms, как и в предыдущем случае, закроет окно выполнения и вернет вас в Designer.

Окно "Соединение"

Рис. 4.10. Окно "Соединение"
Повторное приглашение соединения с БД

Рис. 4.11. Повторное приглашение соединения с БД

Чтобы избежать этих приглашений, выполните следующий пример:

  1. Создайте на уровне формы триггер ON-LOGON. Для этого, находясь в Объектном Навигаторе, выделите название формы и вызовите всплывающее меню правым щелчком мыши. В появившемся меню выберите пункт Универсальные триггеры | Другие.
  2. В окне "Триггеры" найдите триггер ON-LOGON и подтвердите выбор ( рис. 4.12).
    Окно "Триггеры"

    Рис. 4.12. Окно "Триггеры"
  3. После того как вы подтвердили выбор, на экране появится PL/SQL-редактор. Наберите в нем следующий код и нажмите кнопку "Компиляция":
    logon('','');
  4. Закройте редактор PL/SQL и вернитесь в Навигатор. Теперь выберите в главном меню Инструменты|Редактор Разметки. На левой панели Редактора Разметки найдите элемент "Кнопка" и нарисуйте ее на канве. Это необходимо сделать для того, чтобы форма запустилась, так как Forms не запустит окно, если в нем не будет канвы и элемента.
  5. Запустите форму на выполнение. При появлении окна "Соединение" нажмите кнопку "Нет", и вы увидите окно формы с созданной вами кнопкой.
  6. Для выхода из формы выберите меню "Действие|Выход" или нажмите кнопку с изображением дверцы.

Настройка Logon screen. Повторное запрашивание пароля

Несмотря на то что в Forms предусмотрен только один диалог аутентификации, который можно вызывать с помощью встроенной процедуры LOGON_SCREEN, вы все же можете вызвать и другой диалог, а именно PASSWORD EXPIRE. Этот тип диалога отличается от стандартного тем, что запрашивает повторный ввод и подтверждение нового пароля. Особенность такого типа аутентификации в том, что вновь введенному паролю будет присвоен статус устаревшего.

PASSWORD EXPIRE – паролю немедленно будет присвоен статус устаревшего. Пользователю придется сменить пароль перед первым использованием своей учетной записи (аккаунта).

Чтобы реализовать этот тип диалога, вам не придется выполнять в Forms какие-либо действия, вам всего лишь нужно создать Пользователя с опцией PASSWORD EXPIRE. Для создания пользователя с опцией PASSWORD EXPIRE выполните следующую команду:

CREATE USER Sqaimes IDENTIFIED BY sqaimes
PASSWORD EXPIRE;

Чтобы проверить, как это работает, запустите Forms и попробуйте зарегистрироваться под новым пользователем.

< Лекция 3 || Лекция 4: 12 || Лекция 5 >