СУБД Oracle для разработчиков. Forms and Reports 6i-10g
Запуск Oracle Forms 6i и инструменты проектирования
Запуск Designer Oracle Forms
В этом разделе будет описано, как запустить ваше приложение в графическом и символьном режиме, подсоединение к Oracle, а также детально рассмотрены инструменты для работы в Designer Forms. Подсоединение к ORACLE
Вы можете запускать Oracle Forms Designer и быть подсоединенным к базе данных ORACLE или отдельно, не подсоединяясь. Многие операции проектирования, такие как редактирование таблиц базы данных или компиляция триггерных программ PL/SQL, требуют, чтобы Designer был подсоединен к ORACLE. Но другие процедуры, такие как работа над разметкой окна формы, могут выполняться без подсоединения к ORACLE. Вы можете подсоединиться к ORACLE из командной строки при запуске Oracle Forms Designer или в любое время во время работы в Designer. Для подсоединения к ORACLE в графической среде:
Для этого запустите Designer, затем выберите Файл->Соединить, после чего появится окно подсоединения к базе данных, где вы укажите ваш Логин, Пароль и строку связи. После чего нажимаете OK. Но необязательно подсоединяться к Oracle сразу, это можно сделать и при создании таблицы либо процедуры, в тот момент, когда вам будет предложено выбрать таблицу для создания блока данных.
Запуск Forms’a, осуществляется как с командной строки в символьном режиме, так и в графической среде: · Для запуска в графической среде, два раза щелкнете на файл: f60desm · Для запуска с командной строки, в символьном режиме, введите: f60des, и нажмите Enter.
Графическая среда
Если вы работаете в графической среде, то запуск и подготовка к разработке форм происходит следующим образом: Запускаете Designer Oracle Forms, командой f60desm
После этого появиться окно Form Builder (Рис.1), в котором вы можете выбрать параметры запуска:
Рисунок 1 – Стартовое окно Form Builder
1. Use the Data Block Wizard (Создать форму с помощью мастера) – вам будет предложено создать форму с помощью мастера Data Block Wizard и Layout Wizard. 2. Build a new form manually (создать форму вручную) - после выбора этого параметра запустится «чистая» среда, в которой не будет блоков данных, а только стандартный набор инструментов и модуль. 3. Open an existing form (открыть существующую форму) – выбрать форму из списка существующих форм, после чего запуститься, выбранная вами форма. 4. Build a form based on template – запускает Designer с предложением открыть форму.
5. Run the Quick Tour (concepts) – запускает интернет страницу (*.htm) с кратким обзором новых возможностей продукта Developer как в целом, так и отдельных его продуктов. При выборе этого пункта, помимо интернет-страницы запустится Designer с опцией Build a new form manually. 6. Explore the Cue Cards (tasks) – запускает Forms Designer, с такой же опцией как в предыдущем случае, а также в Designer, сразу после запуска отобразиться не только Object Navigator, но и окно справки Cue Cards, в котором вы можете найти справку о первичной работе в Forms (запуск форм, создание объектов).
Учитывая, что вы работаете с приложением первый раз, выберете 3 параметр, т.к. режим мастера работает аналогично тому как бы это делали вы, зная Forms. В этом режиме Forms на самом деле запускает последовательно 2 мастера: · Мастер блока данных(Data Block Wizard) · Мастер разметки(Layout Wizard) Теперь выполняем шаги, перечисленные ниже: Шаг 1. В появившемся окне Data Block Wizard, вам будет предложено выбрать создание хранимой процедуры, либо таблицы. Мы выбираем «Создать таблицу»[1]
Шаг 2. После выбора, создаваемой модели данных, в нашем случае это таблица, появляется следующее окно, в котором, вам будет предложено выбрать из вашей БД таблицу или представление. Для этого вы нажимаете кнопку «Выбрать», после чего отобразиться окно подключения к вашей БД, которое, в случае правильной аутентификации, запустит следующее окно с перечисленными с представлениями и таблицами. Мы выбираем таблицу или представление и нажимаем кнопку «Ок». Шаг 3. Затем вам будут предложены, все столбцы, выбранной вами таблицы. В этом окне вы должны будете указать только те столбцы, которые вам надо, только учтите, что первичные и внешние ключи вам лучше указывать, т.к. вы потом не сможете создать отношение «главный-подчиненый», а также ссылаться на этот столбец как на элемент Forms’a.
Примеч. Следует заметить, что если же по какой-то причине (при запуске f60desm) это диалоговое окно с выбором типа установки не запустилось, а появился сразу Odject Navigator (объектный навигатор), то тогда выберите в верхней горизонтальной панели инструментов меню Tools -> Data Block Wizard – таким образом вы вызовите его собственноручно.
Инструменты Oracle Forms 6i
Oracle Forms 6i функционирует в среде графического интерфейса (GUI), например Microsoft Windows, Linux. Основные инструментальные средства, которые используются для разработки, навигации и изменению свойств формы и элементов - это Навигатор объектов (Object Navigator), Редактор Разметки (Layout Editor) и Инспектор свойств (Object Properties Sheets). Далее подробнее остановимся на каждом из инструментов.
Объектный навигатор (Object Navigator) Рисунок 2 – Объектный навигатор В Навигаторе объектов (Рис.2) отображаются все элементы блоков данных, модули, блоки, библиотеки, параметры, меню, объекты БД, стандартные встроенные пакеты Forms’a которые объединяются для создания модуля приложения Oracle Forms. Этими элементами (или объектами) можно манипулировать при помощи кнопок и пунктов меню. Навигатор представляет собой иерархическое дерево, поэтому внутри Навигатора объектов компоненты вашего приложения представлены в иерархическом виде, показывающем сгруппированную организацию элементов формы. В Объектном Навигаторе вы можете выполнять следующие действия: · Навигатор представляет собой иерархическое дерево, поэтому ему присуще такие действия как: раскрывать и сворачивать элементы для быстрого поиска объектов, отображать соответствующие иконки напротив выбранных объектов. · выбирать объекты – выбранный вами объект становится выделенным, и в редакторе разметки и таблице свойств (если включен режим синхронизации). При выборе любого элемента в навигаторе, главное меню Forms Designer будет подсвечивать, только те пункты меню, которые будут соответствовать только, выбранному вами элементу. · создавать и удалять объекты, библиотеки или элементы в вашем приложении · возможность перенести один элемент (библиотеку, объект), в другой модуль, обычным копированием, то есть возможность перемещать объекты, как в модуле, так и между модулями. · быстро находить объекты с помощью «Быстрого поиска», причем поиск ведется без учета регистра, и достаточно ввода одной буквы. · быстро получать доступ к программным модулям, триггерам, запуская редактор PL/SQL, связанный с вашим элементом, двойным щелчком по триггеру (программному модулю). · быстрый доступ к командам и программным модуля элемента, для которого достаточно лишь нажать правой кнопкой мыши для выпадения всплывающего меню, пункты которого будут соответствовать, выбранному элементу. ·
· Установка меток - используется для пометки элемента в Навигаторе. Для создания метки достаточно выделить объект в Навигаторе, перейти в меню Navigator, а затем выбрать пункт ->Add Bookmark (добавить метку) или перейти к уже созданной метке командой -> Go to Bookmark. · переименование объектов. Для этого нужно выбрать объект для переименования, затем щелкнуть на его имени, после чего появиться прямоугольная область, с мигающим курсором, в которой вы присваиваете новое имя вашему объекту. По умолчанию при создании объекта, ему присваивается имя с последовательным номером, например: BLOCK1, LOV8 и т.д. · множественное выделение, то есть выделение группы элементов. Для этого нужно с нажатой клавишей Control, щелкать левой кнопкой мыши по элементам, которые вы хотите выделить. Перемещаться, как часть множественного выбора могут только объекты одного и того же типа. · возможность запуска и генерации приложения. Для этого достаточно выделить любой элемент, принадлежащий тому модулю, который вы хотите запустить или сгенерировать в исполняемый файл меню, библиотеки или формы, а затем выбрать нужную вам команду запуска или генерирования в главном меню Forms’a – «Tools», либо меню «Файл->Администратор…». По умолчанию в Oracle Forms опция Synchronize включена, а это значит что и все открытые Layout Editor, Table Properties и Menus Editor поддерживают одни и те же текущие выбранные объекты. То есть при выборе любого элемента в Навигаторе или Редакторе разметки делает его текущим везде. Если элемент выбран в Редакторе разметки, то он, также, будет выделен и в Навигаторе и наоборот. При выключенной синхронизации, выбор объекта в Навигаторе или в Редакторе не приведет к выделению этого же элемента в других окнах. Элементы, которые не предназначенные ни одной вид-картинке (Canvas), отображаются на Null канве, точно также и Canvas, не имеющий своего окна, отображается в Null Window. Правила принадлежности копирования и перемещения объектов в пределах одного модуля или между несколькими модулями: · При копировании или перемещении объекта, вы также перемещаете (копируете) принадлежащие ему объекты. К примеру, при копировании блока копируются также и триггеры, подсоединенные к этому блоку, и все элементы, принадлежащие этому блоку и триггеры, подсоединенные к этим элементам. · Принадлежность объекта и простые связи, которые могут существовать между объектами, нужно отличать, т.к. при создании окна, ему назначается вид картинка, но эта вид-картинка не будет однозначно принадлежать этому окну, т.к. и окно и Canvas принадлежат форме. Отношения между окном и Canvas - это просто связь, которую вы определяете установкой свойства Canvas Window, которую вы можете поменять и переназначить в любой момент и любому окну, и любому блоку. · Правила принадлежности для объектов в модулях формы могут быть просто установлены следующим образом: элементы и отношения принадлежат блокам. Триггеры могут принадлежать элементам, блокам или формам. Все остальные объекты принадлежат формам. Причем при копировании, нужно соблюдать согласованность элементов – это значит, что элемент, принадлежащий блоку нельзя переместить в узел, в котором находятся программные модули, или в узел Parameters. · Правила принадлежности для модулей меню: элементы Menu принадлежат меню. Меню принадлежат модулям меню. Все остальные объекты принадлежат модулям меню. · Модули библиотек содержат только подпрограммы и пакеты, которые все принадлежат модулю библиотеки и не могут содержать больше никаких других элементов. Теперь кратко рассмотрим все элементы Навигатора: Триггеры (Triggers)Триггеры Oracle Forms - это функции, программные блоки PL/SQL, которые выполняются при возникновении какого-либо действия или условия в форме, например при запуске формы срабатывает триггер WHEN_NEW_FORM_INSTANCE (что означ. – “при запуске формы”), что дает вам, к примеру, выполнять какие либо действия до запуска формы: изменить размеры формы, извлечь данные и т.д. Поэтому эти действия называются событиями, т.к. возникают в ответ на какое либо действие. Чаще всего триггеры используют для отключения или запрета (запрет на выполнения DML), модификации, или расширения значения по умолчанию. Триггеры определяются для формы, блока, записи, или для каждого поля в отдельности, причем триггер, созданный для данного элемента будет срабатывать только для этого элемента. Триггер в Forms’e могут вызывать друг друга, поэтому нужно учитывать приоритеты срабатывания триггера, в зависимости от уровня его определения. Предупреждения - используются для вывода дополнительной информации, или сообщения, написанного разработчиком для обработки исключительной ситуации, а также различные предупреждения перед выполнением какой-нибудь операции, которая требует ответа, или подтверждения от пользователя. Изменять или присваивать какие либо функции предупреждениям, вы можете с помощью таблицы свойств этого компонента, где вам будет предложено выбрать тип предупреждения, количество кнопок в его окне и т.д. Окно свойств этого объекта можно вызвать двойным щелчком мыши, выбрав пункт главного меню Tools->Property Pallete, клавишей F4 или через всплывающее меню. Создается также двойным щелчком по узлу Alerts, через Навигатор или меню Navigator-> Create. Библиотеки (Attached Libraries)
Attached Libraries (подсоединяемые библиотеки) – это очень удобные специальные модули Oracle Forms, в которые вы можете «засунуть» часто, используемые вами процедуры и функции. При двойном щелчке мышью по этому объекту будет вызвано окно Attche Library (Рис. 3) Рисунок 3 - Attche Library В строке Library нужно указать имя и размещение библиотеки, которую вы хотите подсоединить. Для этого вам необходимо выполнить следующие действия: с помощью кнопки Browse, вызвать окно PL/SQL Library File (размещение библиотеки PL/SQL) и выбрать нужную вам библиотеку, либо самостоятельно набрать путь к библиотеке и ее имя с расширением *.pll с помощью радио кнопок выбрать, откуда будет подсоединена библиотека, в нашем случае это File System, то есть из вашей файловой системы, соответственно Database – из вашей БД, Either – из другого источника. После этого нажмите кнопку Attach – выполнить подсоединение, Cancel – отменить присоединения библиотеки и Help - вызов справки по данному объекту. Блоки (Blocks)Блоки – этот узел содержит, созданные вами “Блоки данных”, по умолчанию Oracle Forms, в качестве названия блока, берет имя таблицы (представления, синонима), на основе которой он строился. Причем блоки необязательно должны быть привязаны к объекту базы данных (таблице, представлению), поэтому могут быть созданы и при этом не относиться ни к одной таблице, так например объект Tree View всегда требует одиночного размещения в блоке данных, а также такие блоки используются для содержания какой либо временной информации, вспомогательных элементов, обычным отображателем информации (например “Об авторе”), различные индикаторы и т.д. Базовыми или основными блоками таблицы – называются блоки, которые относятся к объекту (таблице, снимку, представлению). Элементы блоков (Items)Элементы (рис. 5) сгруппированы в Навигаторе объектов внутри соответствующих блоков. Элемент соответствует одиночному значению данных или полю. Элементы могут содержать столбцы базы данных, или использоваться в качестве контейнера для других связанных данных. Связи блоков (Relationships)Связи определены согласно тому, как отдельные блоки взаимодействуют друг с другом. (продолжение следует) Раскладки объектов (Canvas-Views)Раскладка объектов (canvas, от англ. холст ) структура, предназначенная для размещения объектов формы (рис. 6). Существует 4 типа раскладок содержательный (content), стековый (stacked), горизонтальная и вертикальная панель инструментов (Horizontal/Vertical Toolbar Canvas-Views). В большинстве случаев используется один из двух типов раскладок либо содержательный, либо стековый. Содержательная раскладка не предполагает наличия еще каких-либо раскладок, она занимает все окно формы. Стековую же раскладку можно размещать поверх других раскладок окна формы. Горизонтальная и вертикальная панель инструментов набор кнопок-иконок с определенными для них пользовательскими командами. Есть еще один специальный тип раскладки пустой (null). Пустая раскладка используется для размещения объектов не требующих отображения в окне формы.
Редактор (Editor)Редактор это окно для просмотра и изменения объемных полей данных. В таких полях могут содержаться комментарии пользователя, рецепты, справки и т.п., которые не вмещаются в поле отведенное для отображения элемента. Списки значений (LOVs)Списки значений (LOVs - lists of values) предназначены для выбора возможных значений некоторого поля. Списки значений представляют данные, содержащиеся в именованном объекте. Список значений может использоваться и как проверка правильности ввода данных пользователем. Списки значений очень полезны т.к. снижают вероятность ввода не ккоректной информации, а также помогает получить быстрый и удобный поиск плюс автозаполнение большого кол-ва полей по какому-либо критерию. Группы объектов (Object Groups)Группы объектов это специальный механизм упаковки различных объектов формы в так называемый контейнер, который может потом использоваться при создании других форм (важно, что при этом теперь требуется внесения минимума изменений). После создания группы объектов как элемента формы, любой из прочих объектов формы может быть скопирован в группу объектов. Данная возможность Forms собой представляет один из элементов объектно-ориентированного подхода, который значительно повышает качество разработки, т.к. позволяет использовать уже созданные части при разработке нового продукта. Параметры (Parameters)Параметры можно определить для обеспечения начального ввода данных в форму. Обычно, параметры используются для передачи значений из одной формы в другую форму (в приложениях со многими формами). Глобальные переменные Использование глобальных переменных возможно и сейчас, но рекомендуется использовать параметры в случаях, когда структура передаваемых данных специфична для конкретных форм (не носит универсальных характер для всех форм приложения). Программные модули (Program Units)Программные модули это PL/SQL процедуры и функции. Которые можно вызывать из триггеров формы. Программный модуль понятие полностью эквивалентное понятию подпрограммы в языках 3го поколения. Типичным кандидатом для определения программного модуля является фрагмент программного кода, который используется более, чем в одном триггере. Программные модули также могут использоваться для разбиения больших программ на логически независимые части. Классы свойства (Property Classes)Класс свойства определяет свойства класса объектов. В случаях, когда множество объектов формы имеют идентичные свойства, класс свойства хороши тем, что гарантируют разработчику непротиворечивость объектов. Классы свойства позволяют увеличить степень стандартизации модуля формы, что сокращает общее время разработки. Группы записей (Record Groups)О группе записей можно думать, как о виртуальной таблице в памяти. Группы записей - это структурированные наборы данных, которые могут использоваться для передачи данных между модулями прикладных программ, или для заполнения списков значений или других элементов списка. Визуальные атрибуты (Visual Attributes)Визуальный атрибут объекта определяет цвет, шрифт, и характеристики стиля для каждого элемента. В то время как каждое из этих значений может быть установлено индивидуально для каждого объекта, визуальный атрибут обеспечивает механизм опредения правильной комбинации визуальных характеристик для формы. Высококачественное приложение не должно использовать много различных визуальных атрибутов в пределах элементов. Твердо придерживаясь набора визуальных атрибутов, формы могут использовать специфические характеристики элемента, чтобы показать определенное значение. Окна (Windows)Окно - это рамка, в пределах которой форма появляется на экране пользователя. Каждый холст привязан к определенному окну в форме, и несколько холстов могут быть привязаны к одному окну. Простая форма может содержать несколько окон, или может состоять из одного окна.
Таблица свойств (Object Properties Sheets)
Рисунок 4 – Таблица свойств (Object Properties Sheets)
Инспектор объектов или таблица свойств (Рис. 4), это окошко в виде таблицы, состоящей из двух колонок: Property Name (название свойства), Property Value (значение свойства), а также · Верхняя строка состояния – отображает имя текущего объекта, в наше случае – Data Block: Block1 · Property Hint (строка состояния) – отображает краткую справку по выбранному вами свойству · Find (строка поиска) с двумя опциями поиска Search Forward (искать следующее), Search Backward (искать предыдущее), для поиска нужного вам свойства, по его имени (достаточно ввода одной заглавной буквы наименования свойства) В левом верхнем углу располагаются кнопки (перечисляю слева направо): · Copy Properties - копирует в буфер установки свойств, выведенных в текущий момент в окне Properties.
· Paste Properties - вклеивает установки свойств из буфера в список свойств в окне Properties. Свойства, которые есть в буфере, но отсутствуют в списке свойств, игнорируются.
· Add Property - выводит список значений (LOV), из которого вы можете выбрать свойство для добавления в класс свойств. Эта команда доступна только в том случае, если единственный текущий выбранный объект - это класс свойств.
· Delete Property - удалить свойство · Property Class (свойство класса) – по нажатию создает класс свойств в Объектном Навигаторе · Inherit – устанавливает
текущее свойство на его установку по умолчанию. Если список свойств базируется на классе свойств, который включает текущее свойство, то установкой по умолчанию является установка, определенная в этом классе. Если текущий список свойств не базируется на классе свойств, или базируется на классе, который не включает текущее свойство, то Inherit устанавливает свойство на установку Oracle Forms по умолчанию.
· Intersection/Union - переключает окно Properties между режимами вывода целиком и пересечений. Эта опция определяет то, какие свойства будут показываться в случае, если одновременно будет выбрано более одного объекта (множественный выбор). В режиме пересечения (по умолчанию) выводятся только общие свойства выбранных объектов. В цельном режиме выводятся свойства всех выбранных объектов.
· Freeze/Unfreeze – переключает синхронизацию окна Properties на On и Off. Когда Freeze установлено на Off (по умолчанию), то для вывода свойств объектов, выбираемых в Навигаторе и в других окнах, список свойств обновляется. Когда Freeze установлено на On, список свойств фиксируется и не получает обновлений, позволяя вам сравнивать его с другими списками свойств.
Таблица свойств помогает настраивать, преобразовывать, переименовывать, устанавливать параметры, настраивать на производительность, быстродействие, согласованность и т.д. Когда вы выбираете объект в редакторе (Layout Editor) или Объектном Навигаторе, окно Properties обновляется, чтобы показать свойства этого объекта. По умолчанию редактор свойств находится в опции Synchronize, и обновляется каждый раз при выборе другого объекта. Вы можете включать и выключать синхронизацию для определенного набора, щелкая на кнопке Freeze/Unfreeze на линейке инструментов окна Properties – это даст вам возможность, в случае надобности, запустить дополнительное окно Properties, например, для сравнения свойств двух и более элементов Forms’a. При изменении, какого либо значения свойства объекта изменяется и иконка слева от названия свойства, если вы сделали изменение значения, значит вместо иконки, с изображением «шарика», появиться иконка с изображеним зеленого квадратика. Окно свойств вызывается либо в главном меню “Tools->Properties”, либо двойным щелчком по элементу (кроме объектов программ и вид-картинок). А для запуска нескольких окон щелкните на иконке элемента с нажатой клавишей Shift.
Редактор разметки (Layout Editor) Рисунок 5 – Редактор разметки (Layout Editor)
Редактор Разметки – это, собственно место, графического построения формы, служит для создания элементов, а также для их разметки, упорядочения на форме и создания графического интерфейса формы. Визуально, Layout Editor можно разбить на несколько частей: · в левой части Layout Editor находится панель инструментов, на которой размещены кнопки для создания объектов формы, а также элементы управления визуальными эффектами и шрифтами. Далее мы более подробно остановимся на этих компонентах. · в верхней части находится меню Layout Editor, а также 2 выпадающих списка – список Canvas (вид-картинок) и список Block (блоков данных), с помощью этих списков, вы можете быстро назначить, выбранному вами блоку данных, любой Canvas. Причем при выделении, какого либо объекта – эти списки будут сразу же отображать принадлежность элемента тому или иному блоку данных или Canvas. · измерительные линейки и опорные линии - горизонтальная и вертикальная измерительные линейки вверху и слева от рабочего пространства предоставляют справочную информацию для определения размеров и расположения объектов в Layout Editor. Чтобы их скрыть, отмените опцию Rulers в меню View. Единицы измерения этих линеек в Layout Editor можно установить на символьные ячейки, дюймы, сантиметры или точки. Для вывода диалогового окна Ruler Settings выберите View->Settings->Ruler Settings. Опорные линии - это горизонтальные и вертикальные точечные линии, которыми можно пользоваться для ориентировки при размещении объектов на картинке. Для создания опорной линии поместите указатель на какую-либо измерительную линейку, затем щелкните и перетащите в рабочее пространство. Во время выполнения опорные линии не показываются. Чтобы перенести опорную линию, перетащите ее в другое место. Чтобы удалить опорную линию, вытащите ее из рабочего пространства. Чтобы временно спрятать опорные линии, не удаляя их, отмените выбор опции Ruler Guides в меню Arrange. · Сетка - в пределах рабочего пространства имеется определенная сетка, помогающая вам размещать объекты. Сетка представляется в текущих единицах измерения измерительных линеек. Чтобы скрыть линии сетки, отмените выбор опции Grid в меню View.
Если у вас имеется только один Canvas, то в выпадающем списке вид-картинок будет отображена только одна вид-картинка, если же у вас в форме имеется более одного Canvas, то Oracle Forms выводит окно, в котором перечисленные все вид-картинки вашего модуля, ввиде списка значений LOV, из которого вы можете выбрать вид-картинку, которую хотите редактировать. В Layout Editor вы можете создавать, вырезать, вставлять и удалять объекты, исключениями являются объект картинки (когда включена опция View->Show Canvas), прямоугольник просмотра (когда включена опция View->Show View) линия прокрутки блока. Способы вызова Редактора Разметки:
·
вызов через всплывающее меню – выделите, какой либо объект из узла блока данных, нажмите правую кнопку мыши и в, появившемся меню выберете пункт Layout Editor
· выберите (учтите, что для выполнения этого правила необходимо, чтобы в навигаторе не был выбран объект, поддерживающий разметку, например: библиотека) Tools->Layout Editor, затем укажите вид-картинку (Canvas), с которой вы хотите поработать. И соответственно, если у вас в форме более одной вид-картинки, то появится окно списка вид-картинок, если же одна вид-картинка, то Oracle отобразит ее автоматически, иначе, то есть если она отсутствует, Forms создаст ее автоматически. Одновременно можно запускать столько Редакторов Разметки, сколько у вас блоков данных. [1] «Создать таблицу» - здесь имеется в виду, не создания таблицы как таковой, а создания ее «копии», то есть блока данных. |
В избранное | ||