3322

Программное обеспечение автоматизированных систем. Разработка приложений баз данных

Книга

Информатика, кибернетика и программирование

В пособии изложены общие сведения о реляционных СУБД и их практическом применении на примере СУБД Oracle 8 с описанием элементов программирования в её среде. Приведены задания для выполнения лабораторных работ по дисциплине «Организация баз данных»....

Русский

2012-10-29

628 KB

26 чел.

В пособии изложены общие сведения о реляционных СУБД и их практическом применении на примере СУБД Oracle 8 с описанием элементов программирования в её среде. Приведены задания для выполнения лабораторных работ по дисциплине «Организация баз данных». Изложение сопровождается поясняющими примерами.

Утверждено и рекомендовано РИС ЛЭГИ и предназначено для студентов специальностей «Информационные системы в экономике», «Автоматизированные системы обработки информации и управления», «Прикладная математика».


Введение

В главе 1 содержится описание средства разработки прикладных программ  Oracle Forms из пакета Oracle Developer/2000. Изложены приемы работы с Oracle Forms.

Глава 2 содержит информацию по усовершенствованию форм ввода данных. Представлено описание инструментов, расширяющих возможности создаваемых форм ввода. Изложено использование триггеров форм.

В главе 3 содержится описание средства создания отчетов Oracle Reports. Приведены приемы создания отчетов.

В главе 4  описано средство создания графических документов Oracle Graphics. Изложены приемы создания диагррамм по информации из базы данных.

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


1.  Создание ФОРМ для ввода данных

Цель работы

  •  ознакомиться со средством разработки прикладных программ Oracle Forms из пакета Developer/2000;
  •  изучить приемы работы с Oracle Forms;
  •  освоить создание простейших форм с помощью средств Oracle Forms.

1.1. Введение в Oracle Forms

1.1.1. Краткая характеристика

Oracle Forms - это мощный инструмент разработки прикладных программ баз данных клиент-сервер, переносимых на различные платформы с GUI и символьным режимами. Oracle Forms - это часть Developer/2000, исчерпывающего набора инструментов, который поддерживает полный цикл разработки прикладных программ.

Прикладные программы, создаваемые с помощью Oracle Forms и других инструментов Developer/2000, полностью масштабируемы и подходят для развертывания на любом уровне предприятия, от поддержки решений для малых рабочих групп  до критичных к стилю проектов с интенсивными транзакциями, которые должны поддерживать сотни пользователей.

При построении п рограмм с помощью Oracle Forms используются компоненты:

  •  Form Builder
  •  Form Compiler
  •  Forms Runtime

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

Compiler - используется для генерации файлов прикладных программ, чтобы создавать исполняемые файлы. Генерация модуля формы компилирует все ее программные объекты и создает исполняемый файл с расширением .FMX.

Компонента Runtime - это двигатель, который операторы формы используют для выполнения законченной прикладной программы Oracle Forms.

Прикладные программы Oracle Forms включают три типа модулей:

  •  Формы - это совокупность объектов и программных модулей, включая окна, текстовые элементы, переключатели, кнопки, триггеры и процедуры. Форма может включать любое количество отдельных окон.
  •  Меню - это совокупность объектов меню (главное меню, ниспадающее меню, элементы меню) и программа команд меню.
  •  Библиотеки - это совокупность процедур PL/SQL, функций и пакетов, которые могут вызываться из других модулей.

Можно объединять модули форм, меню и библиотек таким образом, какой требуется для построения завершенной прикладной программы. Например, можно создать меню прикладной программы, определив модуль меню и подсоединив его затем к одной или более форм. Подобным образом можно подсоединять к другим модулям модули библиотек. Триггеры и процедуры, которые хранятся в тех модулях, могут вызывать процедуры в подсоединенных библиотеках.

Модули форм, меню и библиотек, создаваемые в Builder, хранятся в двоичном формате, могут записываться в файлы или в базу данных, и обладают переносимостью по платформам.

При генерации двоичного модуля, Oracle Forms создает специфичный относительно платформы исполняемый файл.

Таблица показывает расширения файлов для каждого типа модулей и форматов хранения.

Таблица 1

Модуль

Двоичный

Текстовый

Исполняемый

Форма

.FMB

.FMT

.FMX

Меню

.MMB

.MMT

.MMX

Библиотека

.PLL

.PLD

.PLX

Расширения файлов по умолчанию указывают тип модуля и формат хранения:

.FMB Form Module Binary - Двоичный модуль формы

.FMT Form Module Text - Текстовый модуль формы

.FMX Form Module Executable - Исполняемый модуль формы

.MMB Menu Module Binary - Двоичный модуль меню

.MMT Menu Module Text - Текстовый модуль меню

.MMX Menu Module Executable - Исполняемый модуль меню

.PLL PL/SQL Library Module Binary - Двоичный модуль библиотеки

.PLD PL/SQL Library Module Text - Текстовый модуль библиотеки 

.PLX PL/SQL Library Executable - Исполняемая библиотека PL/SQL

При создании прикладной программы с несколькими модулями, должны быть представлены все файлы .FMX, .MMX и .PLX, необходимые для развертывания во время выполнения.

Прикладная программа Oracle Forms может также включать модули от других инструментов Developer/2000, таких как Oracle Reports и Oracle Graphics. Например, кнопка в форме может вызывать отчет, построенный с помощью Oracle Reports. Или в форму может быть вставлен вывод диаграммы, сгенерированной с помощью Oracle Graphics. Такой модульный подход предоставляет максимальную гибкость при проектировании и разработке новых прикладных программ, а также для поддержания и улучшения существующих.

1.1.2. Запуск Oracle Forms

Запускать Oracle Forms Builder можно подсоединенным к базе данных Oracle или отдельно. Многие операции проектирования, такие как редактирование таблиц базы данных или компиляция триггерных программ PL/SQL, требуют, чтобы Builder был подсоединен к Oracle. Но другие процедуры, такие как работа над разметкой окна формы, могут выполняться без подсоединения к Oracle.

Подсоединиться к Oracle можно из командной строки при запуске Oracle Forms Builder или в любое время во время работы в Builder. Для подсоединения к Oracle в командной строке введите команду соединения при запуске Oracle Forms Builder:

Ifbld60 filename.fmb user/password@databasealias

Для запуска существующей формы с помощью Forms Runtime:

ifrun60 filename.fmx user/password@databasealias

Рис. 1. Соединение с базой данных

Для подсоединения к Oracle из Builder:

Выберите Файл->Соединить. Введите в соответствующих полях действительное имя пользователя, пароль и цепочку подсоединения к базе данных. В случае, если оговорена авторизация пользователя операционной системой в поле имени вводится «/», пароль пропускается, а алиас базы данных используется тот же.

1.1.3. Основные понятия

Во время создания интерфейса прикладной программы работа ведется с двумя типами объектов Oracle Forms - блоками и элементами. Элементы - это такие объекты интерфейса, которые выводят на экран информацию для пользователей и позволяют им взаимодействовать с прикладной программой. Oracle Forms поддерживает множество элементов интерфейса, включая кнопки, переключатели, радио-группы, элементы списка, элементы неизменного текста, элементы изображения, OLE-контейнеры, элементы диаграмм Oracle Graphics и VBX Controls.

Каждый элемент принадлежит блоку. Блок - это логический контейнер для элементов. Он также является отдельным объектом с собственным набором свойств. Свойства блока определяют то, как конечные пользователи будут взаимодействовать с теми элементами, которые он содержит.

Блок может иметь прямую связь с таблицей или обзором базы данных. Это значит, что элементы текста, переключатели и другие элементы в блоке могут быть ассоциированы с определенными колонками в базовой таблице этого блока. По умолчанию это отношение позволяет операторам запрашивать, обновлять, вставлять и удалять записи в соответствующей таблице.

Блоки - это только логические группировки. Элементы в блоке формы могут выстраиваться в любом порядке и могут даже выводиться на экран в разных окнах. Форма может включать любое количество блоков и блок может включать любое количество элементов.

Oracle Forms поддерживает модель программирования, управляемое событиями. Определив однажды основную структуру и функциональность прикладной программы путем создания объектов и установки их свойств, можно расширять и улучшать ее функциональность по умолчанию написанием программ.

Программы в Oracle Forms пишутся на PL/SQL, процедурном языковом расширении Oracle для SQL, языке реляционных баз данных. PL/SQL объединяет возможности манипулирования данными и обработки транзакций с конструкциями, обычно встречающимися в процедурных языках программирования, такими как объявления переменных и констант, присвоения, циклы и условное ветвление.

Oracle Forms включает интегрированную интерактивную среду отладки, позволяющую отслеживать и прерывать выполнение программы, совершать пошаговое движение, контролировать и устанавливать значения переменных.

Первый способ добавления в форму программы - посредством триггеров. Триггер - это блок программы PL/SQL, который подсоединяется к определенному объекту и который исполняется в ответ на определенное событие. Например, для создания командной кнопки нужно начертить на форме кнопку, затем подсоединить триггер When-Button-Pressed, который исполнит нужную командную программу. Как предполагает его название, триггер When-Button-Pressed исполняется, или срабатывает, всякий раз при нажатии этой кнопки. Oracle Forms предоставляет большое множество событий, на которые приложение может реагировать с помощью триггеров. Вместе со стандартными интерфейсными событиями, такими как щелчок мыши в кнопке или на переключателе, Oracle Forms распространяется на множество событий внутренней обработки. По умолчанию проверка достоверности происходит согласно хорошо определенному набору правил событий.

1.1.4. Этапы создания форм

Основные этапы создания формы следующие:

  1.  Запустить Oracle Forms Builder и подсоединиться к базе данных.
  2.  Для создания одного или более базовых блоков, соответствующих основным таблицам в прикладной программе, используется окно Новый Блок (Инструменты->Мастер Блока Данных).
  3.  Чтобы увидеть элементы в базовом блоке, необходимо вызвать Редактор Разметки (Инструменты->Редактор Разметки).
  4.  Сохранить, сгенерировать и запустить форму из Builder.

Рис. 2. Выбор таблицы пользователя

Рис.3. Инструменты Oracle Forms

В Редакторе Разметки можно выстраивать объекты, добавлять шаблонный текст и графику и, если требуется, создавать новые элементы.

1.2. Инструменты Oracle Forms

1.2.1. Объектный навигатор

Объектный навигатор предоставляет иерархический вывод объектов во всех открытых модулях. Объекты группируются под соответствующим узлом. Например, все окна, определенные в модуле формы, появляются под узлом «Окна». Узел Окна, в свою очередь, находится под соответствующим объектом модуля формы.Узлы верхнего уровня в Навигаторе включают Формы, Меню, Библиотеки и др.. Все другие узлы и объекты, которые они содержат, выводятся так, чтобы показать, что они принадлежат узлам верхнего уровня.

Объекты и узлы в Навигаторе выводятся с символом + или -, чтобы показать, расширены они в данный момент или сжаты.

В Объектном Навигаторе можно выполнять следующие действия:

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

Рис.4. Объектный навигатор

Новым объектам присваиваются имена по умолчанию, такие как БЛОК7 или КНОПКА12. Обычно возникает желание изменить их на такие имена, которые соответствовали бы системе условных обозначений. Чтобы изменить имя объекта в Объектном Навигаторе, выберите этот объект и затем установите свойство Имя в окне Палитра Свойств.

При перемещении или копировании объекта, перемещаются или копируются также и объекты, принадлежащие этому объекту. Например, копирование блока копирует также и триггеры, подсоединенные к этому блоку, элементы, принадлежащие этому блоку и триггеры, подсоединенные к этим элементам.

Важно отличать принадлежность объекта и простые связи, которые могут существовать между объектами. Например, канвы выводятся в окнах и каждая канва во время проектирования назначается определенному окну. Однако, эта канва не является собственностью этого окна - оба объекта принадлежат форме. Отношения между окном и канвой - это просто связь, которая определяется установкой свойства канвы «Окно».

1.2.2. Палитра свойств

Окно «Палитра Свойств» - это место, где устанавливаются свойства объектов, создаваемых в модулях формы и меню.

При выборе объекта в редакторе или Объектном Навигаторе, окно Палитры Свойств обновляется, чтобы показать свойства этого объекта. По умолчанию список свойств в наборе синхронизируется всякий раз при выборе другого объекта.

Рис.5. Окно палитры свойств

Чтобы вызвать Палитру Свойств, нужно выбрать Инструменты->Палитра Свойств или щелкнуть дважды на иконке объекта

1.2.3. Редактор разметки

Редактор Разметки - это средство графического конструирования для создания и упорядочения элементов, шаблонного текста и графики интерфейса формы. В Редакторе Разметки  ведется работа с одной канвой. Канвы выводятся в окнах во время выполнения. Окно, в котором будет выводиться канва, определяется путем установки свойства канвы «Окно».

Для вызова Редактора Разметки, находясь в Навигаторе, дважды щелкните на иконке объекта, канву которого вы хотите редактировать или выберите Инструменты->Редактор Разметки, затем укажите нужную канву.

Рис.6. Редактор разметки

Набор инструментов Редактора Разметки содержит следующие их типы:

  •  Инструменты размещения
  •  Инструменты шаблонного черчения
  •  Инструменты рисования элементов
  •  Цветовые палитры заполнения/линий

Инструменты Редактора Разметки используются для создания и манипулирования элементами и шаблонными объектами. Они позволяют выбирать и манипулировать объектами и группами. Чтобы активизировать инструмент, нужно щелкнуть на его иконке в наборе инструментов. Чтобы вывести всплывающее описание инструмента, необходимо поместить курсор над его иконкой, не щелкая мышью.

1.2.4. Редактор PL/SQL

Редактор PL/SQL – позволяет вводить и компилировать программные объекты. Программные объекты в Oracle Forms включают триггеры событий, подпрограммы (функции и процедуры), команды элементов меню, программу запуска меню и пакеты.

Для вызова Редактора PL/SQL, нужно выбрать Инструменты-> Редактор PL/SQL. Если текущий выбор - это программный объект (триггер, модуль программы и т. д.), то его программа выводится в Редактор PL/SQL.

Рис.7 Редактор PL/SQL

Если текущий выбор - это объект, к которому могут подсоединяться триггеры (форма, блок или элемент), то выводится программа для первого триггера, подсоединенного к этому объекту.

Таблица 2

Команды Редактора PL/SQL

Команда

Действие

Компилировать

Компилирует программу. Компилятор обнаруживает синтаксические ошибки, семантические ошибки и обращения к несуществующим объектам, процедурам и функциям. Если компиляция успешна, то в статусной строке выводится сообщение <Скомпилирован успешно>

Возвратить

Возвращает все изменения, сделанные в исходном тексте с момента запуска редактора или с момента последней операции Отменить. Если в исходном тексте изменений не было, то кнопка Отменить отключена.

Новый

Создает новый программный объект того же типа и сферы объектов, что и текущий программный объект. Например, если программный объект - триггер, подсоединенный к элементу, то выводится список триггеров, для создания нового триггера, подсоединенного к этому же элементу.

Удалить

Удаляет текущий программный объект.

Закрыть

Закрывает Редактор PL/SQL.

Рис. 8. Мастер блока данных

1.2.5. Мастер блока данных

Мастер блока данных позволяет просматривать таблицы, обзоры и синонимы, к которым есть доступ, и вносить таблицы, столбцы и операторы SELECT в текущее место редактирования.

Для вызова мастера необходимо выбрать Инструменты->Мастер блока данных. Затем в диалоговом окне нужно указать, чьи объекты будут использоваться (текущего пользователя и/или всех других пользователей) и какого типа эти объекты. После выбора таблиц необходимо указать столбцы, которые будут отображены на канве.

1.3. Работа с окнами и канвами

При определении окон для прикладной программы работа производится с двумя типами объектов Oracle Forms: канвами и окнами. Одна форма может включать в себя любое количество окон.

Канвы - это фоновые объекты, на которых размещаются элементы интерфейса (элементы текста, переключатели, радио-группы и т.д.), с которыми взаимодействуют операторы во время выполнения формы. Каждая канва выводится на экран в окне.

Окно - это объект, сам по себе, пустая рамка. Эта рамка предоставляет линию заголовка и средства управления для взаимодействия с окном, дающими возможность операторам прокручивать, перемещать и изменять размеры окна.

Отношения между элементами, канвами и окнами определяются установкой их свойств. Каждая канва имеет свойство «Окно», определяющее окно, в котором она будет выводиться. Для каждого окна в форме вы должны назначать по меньшей мере одну канву.

Рис. 9. Мастер макетов

При создании канвы в Мастере макетов можно указать расположение канв в виде вкладок, что удобно использовать в сложных приложениях.

1.4. Основы проектирования форм

1.4.1. Элементы и блоки

Элементы - это объекты интерфейса, которые выводят информацию для операторов и позволяют им взаимодействовать с прикладной программой.

Таблица 3

Элементы интерфейса

Элемент

Описание

Кнопка

Прямоугольник с текстовой меткой или графической иконкой внутри.

Диаграмма

Прямоугольник с окантовкой любого размера, выводящий диаграмму или иное изображение, генерируемый Oracle Graphics.

Переключатель

Текстовая метка с графическим индикатором состояния, которая показывает текущее значение или как отмеченное, или как не отмеченное.

Неизменяемый текст

Текстовое поле, значение которого должно быть извлечено или присвоено программно.

Изображение

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

Список

Список вариантов, выводимый или как всплывающий список (ниспадающий список)

Радио-группа

Группа радио-кнопок, одна из которых всегда выбрана.

Текст

Одно- или многострочная текстовая рамка, поддерживающая множество типов данных, масок формата, а также возможности редактирования.

OLE-контейнер

Область, которая хранит и выводит объект OLE, создающийся прикладной программой OLE-сервера.

Visual Basic Control

Пользовательское средство управления, которое упрощает построение и усовершенствование пользовательских интерфейсов.

Все элементы в форме (текста, изображение, радио-группа и т.д.) принадлежат блоку. Блоки - это логические контейнеры, не имеющие физического представления, - в интерфейсе прикладной программы видимы только элементы, содержащиеся в блоке. Однако, как и другие объекты, блоки имеют свойства и могут создаваться, копироваться и изменяться.

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

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

Есть два типа блоков – базовые и управляющие. Базовый блок ассоциирован с определенной таблицей или представлением базы данных. Один или более элементов в базовом блоке прямо связаны с колонками в базовой таблице блока. В противоположность этому управляющий блок не ассоциирован с таблицей базы данных и элементы в управляющем блоке не связаны с колонками базы данных.

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

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

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

Так как управляющие блоки не связаны с таблицами базы данных, то ни один из содержащихся в них элементов не может быть элементом с базовой таблицей.

Управляющие элементы могут использоваться для следующего:

  •  Вывода итогов, средних, ранжировок и другой суммарной информации, вычисляемой по значениям в элементах с базовой таблицей и по таблицам базы данных.
  •  Принять от оператора ввод, требуемый прикладной программой, но который не будет сохраняться в базе данных.
  •  Вывода “поисковых значений”, то есть значений базы данных, происходящих из иной таблицы, чем базовая таблица блока.

На значения управляющих элементов в программе можно ссылаться, точно так, как на локальные и глобальные переменные.

1.4.2. Создание блоков

Базовый блок - это блок, ассоциированный с таблицей в базе данных. Для создания блоков служит Мастер блоков данных.

Когда в окне «Новый блок» создается базовый блок, Oracle Forms автоматически выполняет следующее:

  •  Создает блок.
  •  Создает для каждой указанной вами колонки базы данных элемент с базовой таблицей и устанавливает свойства Имя, Тип данных и Максимальная длина каждого элемента на значения, подходящие для характеристик соответствующей колонки.
  •  Выравнивает элементы в блоке согласно выбранному стилю размещения.
  •  Создает для блока метку шаблонного текста и окантовочную рамку. Метка по умолчанию - это имя, присвоенное блоку.
  •  Создает метку шаблонного текста для каждого элемента.
  •  Создает канву по умолчанию, если указанная канва не существует.

Для создания базового блока должен быть открыт модуль формы и Oracle Forms должен быть подсоединен к базе данных.

Опция «Соблюдать целостность данных» в окне «Новый блок» определяет то, что должен ли Oracle Forms создавать блок, который бы соблюдал ограничения по таблицам и колонкам, определенным в словаре данных для базовой таблицы этого блока. Эта опция действительна только для базовых блоков.

Если при создании базового блока выбирается опцию «Соблюдать целостность данных», то Oracle Forms выполняет соблюдение ограничений, связанных с установленными свойствами на первичные и внешний ключи таблиц.

Управляющий блок - это блок, не имеющий отношения к базе данных. Управляющие блоки могут содержать элементы любого типа (кнопки, элементы текста, переключатели и т.д.), но, независимо от типа элемента, все элементы в управляющем блоке являются управляющими элементами, то есть, элементами, не связанными с колонками в базе данных.

Чтобы создать управляющий блок, в Мастере блоков данных необходимо оставить пустым поле выбора таблицы, а в соответствующем поле указать имя блока.

После создания базового или управляющего блока, можно создавать в этом блоке элементы. Их можно создавать в Объектном Навигаторе путем вставки в нужный блок, или в Редакторе разметки путем рисования их на нужной канве.

При создании базового блока можно указать в качестве вида блока «Табличный», тогда внесенные записи будут отображаться в виде таблицы с указанным в Мастере блоков данных числом строк. Также здесь можно указать наличие полосы прокрутки на форме.

1.5. Создание отношений главный-подчиненный

Отношение главный-подчиненный - это связь между двумя базовыми блоками:  главным блоком и подчиненным блоком. Это отношение между блоками отражает отношение первичного ключа к внешнему ключу между таблицами, на которых базируются блоки.

Отношение главный-подчиненный выполняет следующее:

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

Например, если оператор изменяет текущую запись в главном блоке путем перемещения к другой записи, то Oracle Forms обновляет подчиненный блок, чтобы он выводил только записи, которые связаны внешним ключом с выбранной записью.

Главный блок связан отношением с подчиненным блоком через условие соединения. Условие соединения устанавливает элементы первичного ключа в главном блоке и элементы внешнего ключа в подчиненном блоке.

Для поддержки отношения главный-подчиненный во время выполнения прикладной программы Oracle Forms кординирует главный и подчиненный блоки, обеспечивая связь между записями, выводимыми в подчиненном блоке, и текущей записью в главном блоке.

Любое событие, делающее в главном блоке текущей записью другую запись, является событием, вызывающим координацию. Удаление записи или нажатие [Up] или [Down] для перехода к другой записи - это все примеры событий, вызывающих координацию. Когда происходят такие события, Oracle Forms автоматически выполняет действия, необходимые для координации главного и подчиненного блоков.

В координации блоков есть две фазы: фаза очистки и фаза заполнения. Во время фазы очистки Oracle Forms осуществляет внутреннюю навигацию к подчиненному блоку и очищает устаревшие подчиненные записи. Во время фазы заполнения Oracle Forms выдает оператор SELECT, чтобы опять заполнить подчиненный блок подчиненными записями, связанными с новой главной записью. Эти операции выполняются посредством исполнения триггеров.

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

Указать условие соединения можно с помощью следующих определений:

  •  имени элемента, существующего как в главном, так и в подчиненном блоках;
  •  условия равенства имен двух элементов, где один элемент - существующий в главном блоке, а второй - в подчиненном;
  •  с помощью комбинации предыдущих двух пунктов.

При создании соединения,нужно принять решение как Oracle Forms должен управлять координацией между главным и подчиненным блоками:

  •  Должны ли операторы иметь возможность удалить главную запись, если присутствуют связанные с ней подчиненные записи?
  •  Если операторы могут удалять главную запись, то должен ли Oracle Forms удалять также и связанные с ней подчиненные записи?
  •  Если оператор сделает в главном блоке текущей записью новую запись, то должен ли Oracle Forms извлекать связанные подчиненные записи немедленно, или подождать, пока оператор не перейдет в подчиненный блок.

Ответы на эти вопросы будут зависеть от специфических требований к прикладной программе. Путем установки свойств объекта отношения можно определить поведение главного-подчиненного наиболее соответствующим вашей прикладной программе образом.

Свойства, влияющие на функциональность отношения, включают в себя Поведение при удалении запсии, Координация и Prevent Masterless Operation.

Свойство Поведение при удалении запсии   Свойство Поведение при удалении запсии позволяет определять то, как удаление записи в главном блоке должно влиять на записи в подчиненном блоке. Оно может быть установлено на неизолированное, изолированное или каскадное.

Неизолированное - Установка по умолчанию. Предотвращает удаление главной записи, если в базе данных существуют связанные с ней подчиненные записи.

Изолированное - Разрешает удаление главной записи и не влияет в базе данных на связанные с ней подчиненные записи.

Каскадное - Разрешает удаление главной записи и автоматически удаляет все связанные с ней подчиненные записи из базовой таблицы во время фиксации. Если отношения вложены в несколько уровней, то удаляются только записи в ближнем блоке. То есть удаления на несколько уровней цепочки отношения автоматически не каскадируют.

Свойства координации Отсроченный и Автозапрос определяют то, когда должна происходить фаза заполнения координации блоков. Координация подчиненного блока с его главным может быть немедленной, отсроченной с автозапросом или отсроченной без автозапроса.

Немедленная - (Отсроченный - нет, Автозапрос - нет) Установка по умолчанию. Когда происходит событие, вызывающее координацию, то подчиненные записи извлекаются немедленно.

Отсроченная с автозапросом - (Отсроченный - да, Автозапрос - да) . Когда происходит событие, вызывающее координацию, то Oracle Forms отсрочивает извлечение связанных подчиненных записей до тех пор, пока оператор не переместится в подчиненный блок.

Отсроченный без автозапроса - (Отсроченный - да, Автозапрос - нет) Когда происходит событие, вызывающее координацию, то Oracle Forms не извлекает автоматически подчиненные записи. Чтобы извлечь подчиненные записи, оператору нужно перейти в подчиненный блок и явно выполнить запрос.

Координацию с отсрочкой можно более точно понимать как “заполнение с отсрочкой”. То есть, когда в главном блоке происходит событие, вызывающее координацию, то координационная фаза заполнения откладывается, но записи в подчиненном блоке очищаются сразу. Такое поведение предотвращает вывод в подчиненном блоке записей, несовместимых с текущей записью в главном блоке.

Если подчиненный блок видим для оператора и если оператор хочет всегда видеть подчиненные записи, связанные с текущей записью главного блока, то, как правило, выбирается немедленную координацию.

Координация с отсрочкой при автозапросе более предпочтима, когда подчиненный блок видим не сразу; например, когда оператор, чтобы получить возможность видеть подчиненные записи, должен перейти в подчиненный блок. Координация с отсрочкой также полезна в ситуациях, при которых оператору может вовсе не понадобиться видеть подчиненные записи. В таком случае координация с отсрочкой может предотвращать ненужные запросы к базе данных.

Координация с отсрочкой при автозапросе полезна в тех случаях, когда необходимо, чтобы операторы имели возможность входить в режим Ввода Запроса и указывать дополнительные критерии запроса в подчиненный блок, прежде чем произойдет заполнение. Координация с отсрочкой без автозапроса позволяет операторам перемещаться по подчиненным записям, не включая координацию и сопровождающую ее обработку до тех пор, пока она действительно не потребуется.

Часто приходится предотвращать действия операторов по выполнению операций в подчиненном блоке без главного блока; то есть, предотвращать запросы или вставки записей в подчиненном блоке когда в главном блоке нет текущей записи.

Чтобы предотвратить выполнение операций в подчиненном блоке без главного, надо установить свойство Запрет операций без главной записи на Да. Установка этого свойства на Да имеет следующее действие:

  •  Если в главном блоке нет главной записи, то Oracle Forms не разрешает вставлять записи в подчиненном блоке. Любая попытка вставить запись генерирует ошибку FRM-41105: Cannot create records without a parent record.
  •  Если в главном блоке нет главной записи, поступившей из базы данных, то Oracle Forms не разрешает производить запрос в подчиненном блоке. Любая попытка запроса генерирует ошибку FRM-41106: Cannot query records without a parent record.

1.6. Добавление элементов

Нередактируемый текст

Элементы нередактируемого текста только хранят и выводят значения. Одним из преимуществ элементов нередактируемого текста является то, что они требуют меньше памяти, чем элементы текста. Операторы не могут перемещаться к элементам нередактируемого текста или редактировать их значения. Многострочные элементы текста автоматически не переносят текст на новую строку между символами или словами; многострочные значения разделяются только символами новой строки.

После создания элемента нерелактируемого текста можно указывать значения, устанавливать свойства вывода и т.д.

Кнопка

Для создания кнопки нужно либо вставить новую кнопку в блок, или изменить существующий элемент преобразованием его типа в Кнопка.

После создания кнопки можно указывать метки кнопок, назначать кнопки по умолчанию, устанавливать стили вывода кнопок и т.п.

Чтобы указать метку для текстовой кнопки, необходимо, выбрать нужную кнопку, в окне Палитры свойств в поле свойства Метка ввести нужный текст. Здесь же можно указать иконку для вывода на кнопку

Oracle Forms предоставляет триггеры, которые можно использовать в ответ на события интерфейса, происходящие во время манипулирования оператором кнопкой. Чтобы кнопка исполняла или инициировала команду, необходимо подсоединить к ней триггер When-Button-Pressed, который срабатывает при выборе кнопки.

Когда происходит событие Button Pressed, то есть когда оператор выбирает кнопку, Oracle Forms исполняет программу в триггере When-Button-Pressed.

Список

Элемент списка - это список текстовых составляющих элементов, который может выводиться или как всплывающий список, или как текстовый список, или как комбинированная рамка.

Элемент списка выводит фиксированное количество составляющих элементов. Каждый составляющий элемент в списке - это текстовая цепочка. Во время выполнения приложения можно программно выбирать, добавлять или удалять составляющие элементы списка.

Таблица 4

Типы списков

Тип

Описание

Всплывающий список

Элемент списка стиля всплывающий список первоначально выглядит как одно поле (подобно полю элемента текста). Когда оператор выбирает иконку списка, появляется список доступных вариантов.

Текстовый список

Элемент списка стиля текстовый список выглядит как прямоугольная рамка, которая выводит фиксированное количество значений. Если текстовый список содержит значения, которые нельзя вывести (из-за области возможного вывода этого элемента), то появляется вертикальная линия прокрутки, позволяющая оператору просмотреть и выбрать не выведенные значения.

Комбинирован-ная рамка

Элемент списка стиля комбинированная рамка объединяет характеристики элементов текста и списка. В отличие от элементов списка стиля всплывающего или текстового списка, элемент списка стиля комбинированная рамка будет как выводить фиксированные значения, так и принимать одно вводимое оператором значение.

В качестве альтернативы для определения значений элементов списка во время разработки, можно добавлять составляющие элементы списка во время выполнения, используя встроенные подпрограммы ADD_LIST_ELEMENT или POPULATE_LIST. Oracle Forms предоставляет триггеры, которые можно использовать для ответа на события интерфейса, происходящие при манипулировании оператором элементом списка.

  •  When-List-Activated
  •  When-List-Changed

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

  •  ADD_LIST_ELEMENT
  •  CONVERT_OTHER_VALUE
  •  DELETE_LIST_ELEMENT
  •  GET_LIST_ELEMENT_COUNT
  •  GET_LIST_ELEMENT_LABEL
  •  GET_LIST_ELEMENT_VALUE
  •  POPULATE_LIST
  •  RETRIEVE_LIST

1.7. Задание для практической работы

Порядок выполнения работы

  1.  Ознакомиться с приемами работы с Oracle Forms.
  2.  В соответствии с предметной областью создать простейшие формы для каждой таблицы.
  3.  Реализовать отношение главный-подчиненый между блоками.
  4.  Добавить элементы-кнопки на форму, выполняющие просмотр, сохранение и удаление данных из таблиц.

Содержание отчета

Кроме титульного листа и цели работы отчет должен содержать:

  •  Описание элементов, использованных для создания форм и их функций.
  •  Видеокадры созданных форм.

1.8. Пример выполнения работы

После запуска Form Builder и соединения с базой данных запустим Мастер блока данных (Инструменты->Мастер блока данных). Для выбора таблицы, которая будет базовой для создаваемого блока выберем «Обзор».

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

Запускаем Редактор макетов. Здесь указываем картинку, на которой будет размещаться создаваемая канва блока и тип канвы. Затем необходимо указать элементы для отображения на форме и их параметры. После этого необходимо указать параметры стиля блока. Обратите внимание на стиль размещения – при необходимости работать одновременно с несколькими записями необходимо выбрать табличный.

Аналогичным образом создаются блоки для других таблиц. Для размещения блока данных на уже существующей канве, необходимо выбрать ее название в Мастере макетов. Если требуется создать блок в виде вкладки, то нужно создать новую канву с указанием типа – Вкладка.

Для создания отношений между блоками необходимо в Мастере блоков даных указать главный блок и условие соединения блоков. После этого в Объектном навигаторе необходимо указать параметры отношения.

Создадим кнопки для манипуляций с данными. Для кнопки «Сохранить» создадим триггер When-Button-Pressed, содержащий в себе команду COMMIT, для кнопки «Удалить» команда DELETE_RECORD, для кнопки «Обновить» - EXECUTE_QUERY.

В результате форма будет выглядеть следующим образом:

1.9. Контрольные вопросы

  1.  Характеристика Oracle Forms.
  2.  Этапы создания форм.
  3.  Назначение инструментов Oracle Forms.
  4.  Окна и канвы.
  5.  Виды блоков.
  6.  Отношение главный-подчиненый.
  7.  Использование элементов форм.


2.  усовершенствование ФОРМ ввода данных

Цель работы

  •  ознакомиться с инструментами, расширяющими возможности создаваемых форм;
  •  ознакомиться с приемами создания меню в Oracle Forms;
  •  ознакомиться с возможностями использования триггеров;
  •  изучить основы языка PL/SQL.

2.1. Создание списков значений (LOV)

LOV - это прокручиваемое раскрывающееся окно со списком из одного или нескольких столбцов, в котором оператор может выбрать один элемент.

Рис. 10. Пример списка значений

LOV предоставляют следующие возможности:

  •  LOV могут выводиться по требованию оператора (когда LOV доступен).
  •  Свойства автосокращения и поиска в LOV позволяют операторам быстро находить нужные значения.
  •  Значения LOV, выбранные оператором, могут присваиваться элементам формы в соответствиии с заданным возвращаемым элементом.
  •  Значения LOV выводятся из группы записей.

Будучи вызванным программно или по требованию оператора, LOV появляется в модальном окне, позволяя оператору выбрать одно значение. LOV остается на экране до тех пор, пока оператор не покинет его, выбрав значение или выбрав отмену Cancel. В то время, когда LOV на экране, операторы не могут работать в других окнах.

Операторы могут пользоваться возможностями автосокращения и поиска для определения местонахождения значения в списке.

При использовании автосокращения операторы набирают необходимый ввод прямо в списке окна LOV. По мере ввода каждого символа Oracle Forms уменьшает список только до тех значений, которые соответствуют введенной цепочке. Автосокращение действует сравнением цепочки, введенной оператором, со значениями в первой колонке LOV.

Чтобы воспользоваться характеристикой поиска, оператор переходит в поле LOV Найти и вводит цепочку критерия поиска, затем для исполнения поиска выбирает кнопку Найти. Oracle Forms укорачивает список до тех вариантов, значения первой колонки которых соответствуют критерию поиска, заданному оператором. Если оператор перед критерием поиска вводит символ “%”, то Oracle Forms исполнит поиск по всем колонкам LOV.

Значения LOV выводятся из внутренней структуры данных, называемой группой записей.  Когда вы создаете LOV, вы связываете его с именованой группой записей.

Группа записей имет табличную структуру колонка/строка, подобную таблице базы данных. LOV - это объект интерфейса, который позволяет операторам просматривать, прокручивать и выбирать записи, хранимые в текущий момент в текущей группе записей.

Группа записей может иметь неограниченное количество колонок типа CHAR, LONG, NUMBER или DATE, при условии, что общее количество колонок не превышает 64К.

Значения в группе записей могут получаться от одного из двух источников:

  •  в результате выполнения оператора SELECT, который во время разработки связан с группой записей (группа записей запроса);
  •  массив статичных значений, который во время разработки связан с группой записей (статичная группа записей).

Создавая LOV, указывается какие колонки из базовой группы записей должны включаться в этот LOV. Для каждой колонки, которая включается в LOV, можно назначить вохвращаемый элемент. Когда оператор выбирает из LOV вариант, Oracle Forms присваивает значения из колонок выбранной записи их соответствующим возвращаемым элементам.

Это дает возможность операторам заполнять элементы данных, выбирая значения из LOV. При выборе оператором значения списка, Oracle Forms автоматически возвращает это значение элементу данных. Пользование LOV избавляет от нажатия клавиш во время ввода данных и обеспечивает допустимость введенного значения для этого элемента.

Такая возможность может также использоваться для заполнения элементов формы значениями из невидимых (скрытых) колонок. Скрытая колонка - это любая колонка, которая включена в структуру LOV, но значения которой в окне LOV не выводятся.

Рис. 11. Мастер LOV

При создании LOV, сначала указывается группа записей, из которой LOV будет брать свои значения. Затем указывается какие колонки из группы записей должны включаться в LOV. После создания LOV можно назначить возвращаемые элементы, установить ширину колонок, создать их заголовки.

При создании LOV, указывается, будет ли LOV основываться на существующей группе записей, или создайте новую группу записей, введя оператор SELECT в поле Текст запроса. В окне Свойства необходимо указать, какие колонки группы записей нужно включить в структуру LOV и затем установить ширину вывода для каждой колонки.

Назначить возращаемый элемент можно для любой колонки, перечисленной в списке. Когда оператор выбирает из LOV вариант, Oracle Forms присваивает выбранное значение соответствующему элементу возврата. Элемент возврата может быть элементом в текущей форме, глобальной переменной или параметром формы.

После определения LOV, нужно указать как он должен выводиться на экран во время выполнения. Для вывода LOV программно, необходимо написать триггер или программу с именем пользователя, исполняющую встроенную подпрограмму SHOW_LOV или LIST_VALUES.

Присоединить LOV можно к одному или более элементам текста в форме. Или, если вы установите на True свойство LOV Auto-display, то Oracle Forms выведет LOV автоматически при переходе оператора к этому элементу текста.

Чтобы подсоединить существующий LOV к элементу текста, находясь в Навигаторе, выберите нужный элемент текста. Затем в окне Свойства установите свойство LOV, введя имя того LOV, который вы хотите подсоединить к этому элементу текста. Укажите координаты вывода LOV, установив свойства LOV X Position и LOV Y Position.

Присоединить LOV можно программно к элементу текста с помощью встроенной подпрограммы SET_ITEM_PROPERTY. Следующий пример подсоединяет LOV с именем newlov к элементу текста с именем elem.el:

Set_Item_Property(‘elem.el’,LOV_NAME,’newlov’);

Есть две встроенные подпрограммы, которые можно использовать для вывода LOV:

  •  LIST_VALUES
  •  SHOW_LOV

Процедура LIST_VALUES выводит LOV, если во время выполнения существуют следующие условия:

  •  текущий элемент в форме - элемент текста;
  •  элемент текста имеет подсоединенный к нему LOV.

Процедура LIST_VALUES часто вызывается из триггера When-New-Item-Instance, чтобы выводить LOV, когда оператор или прикладная программа перейдет к элементу текста с присоединенным к нему LOV.

Функция SHOW_LOV выводит обозначенный LOV в указанных координатах вывода. В отличие от LIST_VALUES SHOW_LOV не требует, чтобы LOV был присоединен к элементу текста. Например, можно использовать SHOW_LOV чтобы дать возможность оператору вызвать LOV щелчком кнопки или выбором элемента меню.

Функция SHOW_LOV - это BOOLEAN (булева) функция, которая возвращает TRUE, если оператор производит выбор из LOV, и False, если отменяет LOV, не производя выбора.

2.2. Сигналы

Сигнал - это модальное окно, которое выводит на экран сообщение, извещающее оператора об определенном состоянии прикладной программы.

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

Рис. 12. Пример сигнала

Существуют три типа сигналов: Stop, Caution и Note. Каждый стиль указывает на разный уровень строгости. Строгость сообщения представляется визуально уникальной иконкой, выводимой в окне сигнала.

Oracle Forms имеет много встроенных сигналов, выводящих предварительно определенные сообщения. Также можно создавать собственные сигналы, выводимые в ответ на специфические события прикладной программы.

Когда происходит событие, вызывающее вывод сигнала, оператор должен ответить на сообщение сигнала выбором одной из предварительно определенных сигнальных кнопок, после чего сигнал исчезает с экрана.

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

После создания сигнала необходимо написать триггер или программу для вывода этого сигнала в ответ на конкретное событие. Кроме того, действие, которое инициируется каждой кнопкой, определяется программой PL/SQL, которую написана для вызова сигнала.

Для создания сигнала, находясь в Объектном Навигаторе, создайте объект сигнала. В окне Свойства установите свойство стиля, соответствующий строгости вашего сообщения: Stop, Caution или Note. Во время выполнения формы рядом с сообщением в окне сигнала будет выводиться иконка, представляющая выбранный вами стиль.

Установите свойство Сообщения, введя тот текст, который вы хотите выводить в сигнале во время выполнения. Определите для сигнала одну или более кнопок, введя текстовую метку в поля Кнопка1, Кнопка2 и Кнопка3. (Текстовые метки по умолчанию для кнопки Кнопки1 “ОК” и для Кнопки2 “Cancel”.)

Для вывода сигнала ваша прикладная программа должна выполнить встроенную подпрограмму SHOW_ALERT из триггера или подпрограммы. SHOW_ALERT - это функция, возвращающая числовую константу.

Show_Alert(alert_name) Return NUMBER;

Возвращаемая функцией SHOW_ALERT константа указывает, какую кнопку сигнала выбрал оператор, и может быть одной из следующих: ALERT_BUTTON1, ALERT_BUTTON2, ALERT_BUTTON3.

Возвращаемое функцией SHOW_ALERT значение можно присвоить переменной и затем предпринимать в своем триггере различные действия в зависимости от значения этой переменной; то есть в зависимости от того, какая кнопка выбрана оператором.

Исполнением встроенной процедуры SET_ALERT_PROPERTY можно изменить сообщение сигнала во время выполнения формы. Изменение сообщения сигнала позволяет повторно использовать один и тот же объект сигнала, но при каждом вызове выводить иное сообщение.

Например, общепринято иметь в прикладной программе несколько сигналов, все из которых используют две одинаковые кнопки (например, ОК и Cancel), но выводят разные сообщения в зависимости от контекста прикладной программы.

Программно изменяя сообщение сигнала для подстройки к текущему контексту, можно сэкономить накладные расходы при проектировании, повторно используя один объект сигнала вместо создания нескольких сигналов. Изменение сообщения сигнала дает также возможность создавать динамические сообщения сигналов, которые обращаются к определенным объектам или значениям элементов.

2.3. Основы проектирования меню

Каждая форма может использовать одно из меню:

  •  меню по умолчанию, которое встроено в каждую форму;
  •  пользовательское меню, которое определяется как отдельный модуль и затем подсоединяется к форме для использования во время выполнения;
  •  меню может отсутствовать вообще.

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

Меню по умолчанию - это часть модуля формы. Но модули пользовательских меню - это отдельные от формы модули. Поэтому, при разработке прикладной программы с одной формой, использующей пользовательское меню, в наличии должно быть два исполняемых файла:

  •  модуль формы .FMX
  •  модуль меню .ММХ

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

Рис. 13. Редактор меню

Пользовательское меню - это отдельный модуль, который определяется в Oracle Forms.

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

Как и объекты формы, объекты меню имеют свойства, которые можно устанавливать для определения их поведения во время выполнения.

Модуль меню включает в себя следующие типы объектов:

  •  Сам модуль меню.
  •  Меню: главное меню, отдельное меню и подменю.
  •  Элементы меню в каждом отдельном меню и связанные с ними команды, включая специальные типы элементов, такие как переключатели, радиогруппы, разделители.

Каждый модуль меню содержит одно ли более меню. Каждое меню содержит один или более элементов меню.

Пользовательские меню для большинства GUI и некоторых прикладных программ с символьным режимом работают в ниспадающем стиле вывода.

Рис. 14. Пример формы с пользовательским меню

Для подключения созданного меню к форме, в Навигаторе выберите форму и, дважды щелкнув по ее изображению, откройте окно Свойства. Установите свойство Модуль меню на имя того исполняемого файла меню .ММХ, который уже сгенерирован. После подсоединения меню к форме Oracle Forms автоматически загружает файл меню .ММХ во время выполнения формы.

Можно использовать программу PL/SQL для программного управления и манипулирования меню во время выпонения:

  •  в элементах меню;
  •  в подпрограммах;
  •  в программе запуска меню.

Команды PL/SQL элементов меню структурно похожи на триггеры формы. Кроме стандартных функций прикладной программы, таких как навигация, проверка допустимости и взаимодействие с базой данных, можно использовать команды PL/SQL элементов меню для выполнения действий:

  •  вызов формы;
  •  исполнение команд операционной системы;
  •  вызов другого инструмента Oracle;
  •  вызов встроенной подпрограммы DO_KEY для исполнения триггера клавиши;
  •  вызов встроенной подпрограммы EXECUTE_TRIGGER для исполнения триггера, определенного пользователем.

2.4. Использование триггеров

Триггеры - это программные блоки, которые используются для добавления функциональности прикладной программе. Каждый триггер имеет имя и содержит один или более операторов PL/SQL. Триггер заключает в себе программу PL/SQL, так что его можно ассоциировать с событием, исполнять и обращаться с ним как с отдельным объектом.

Имена триггеров соответствуют событиям. Например, триггер When-Button-Pressed соответствует событию Нажатия Кнопки, которое происходит при выборе кнопки оператором. Имя триггера устанавливает связь между событием и программой триггера; когда операторы щелкают мышью по кнопке, то Oracle Forms отвечает исполнением программы в триггере When-Button-Pressed.

Когда Oracle Forms отвечает на событие исполнением программы триггера, то об этом триггере говорят, что он “срабатывает”. Большинство форм прикладных программ включают множество триггеров, которые срабатывают в ответ на различные события.

Триггер должен быть подсоединен в форме к определенному объекту - к элементу, к блоку или к самой форме. Объект, к которому подсоединен триггер, определяет сферу этого триггера, и так помогает Oracle Forms решать, какой из триггеров должен сработать при совершении соответствующего события.

Например, в форме с тремя кнопками каждая кнопка имеет подсоединенный к ней триггер When-Button-Pressed и каждый триггер содержит разные операторы PL/SQL. Когда оператор выбирает одну из этих кнопок, то есть происходит событие Нажатия Кнопки, то Oracle Forms отвечает срабатыванием только того триггера When-Button-Pressed, который подсоединен к выбранной кнопке. Триггеры When-Button-Pressed, подсоединенные к остальным двум кнопкам, находятся вне сферы этого события, и поэтому игнорируются.

При создании триггера, он подсоединяется к определенному объекту - к элементу, к блоку или к самой форме. Объект, к которому подсоединен триггер, обусловливает уровень определения триггера в иерархии объектов. Например, триггер, подсоединенный к блоку, имеет определение уровня блока, и называется “триггером на уровне блока”.

Уровень определения триггера очень важен, потому что он обусловливает сферу этого триггера. Сфера триггера - это его область в иерархии объектов Oracle Forms и обусловливает место, где должно произойти событие, чтобы триггер на него отвечал.

Сфера триггера определяется как уровень определения триггера (форма, блок или элемент) и ниже. Таким образом, триггер на уровне блока срабатывает в случае, если событие происходит в пределах этого блока, но не срабатывает, если такое же событие произойдет в каком-то другом блоке.

Общим правилом является определять триггеры, отвечающие на одно и то же событие, на разных уровнях. Когда происходит событие, находящееся в сфере более чем одного триггера, то преимущество имеет триггер с более низким уровнем определения.

Например, можно подсоединить триггер When-New-Item-Instance к блоку и еще один триггер When-New-Item-Instance к элементу текста в этом блоке. Когда оператор переместится к этому элементу текста, то сработает триггер на уровне элемента, а триггер на уровне блока будет проигнорирован.

Как и другие объекты, триггеры имеют свойства. После создания триггера, можно установить его свойства, выбрав его в Объектном Навигаторе и отредактировав свойства в окне Палитра Свойств.

При создании триггеров можно выбрать триггер из списка значений. Основные группы триггеров:

  •  триггеры обработки блоков;
  •  триггеры событий интерфейса;
  •  триггеры главный-подчиненный;
  •  триггеры обращения с сообщениями;
  •  навигационные триггеры;
  •  триггеры периода запроса;
  •  транзакционные триггеры;
  •  триггеры проверки допустимости.

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

При генерации формы для создания исполняемого файла, Oracle Forms компилирует в этой форме все не скомпилированные триггеры, и компиляция отдельных триггеров не требуется. Однако, локальная компиляция позволяет отыскать и исправить ошибки в программе триггера во время ее написания, а не во время генерации формы. При компиляции триггера, Oracle Forms проверяет текст триггера на синтаксические ошибки, семантические ошибки и на ссылки на несуществующие объекты или подпрограммы. При обнаружении ошибки Oracle Forms выводит номер строки оператора-нарушителя и дает описание ошибки.

Программы в триггерах Oracle Forms и команды элементов меню пишутся на языке Oracle PL/SQL. PL/SQL - это расширение для языка базы данных SQL, и в триггер Oracle Forms можно включать как операторы SQL, так и операторы PL/SQL.

Текст триггера Oracle Forms - это безымянный блок PL/SQL. Блок может состоять из трех разделов:

  •  раздел декларирования для переменных, констант, курсоров и исключений, который необязателен;
  •  раздел исполняемых операторов, обязателен;
  •  раздел обработчиков исключений, который необязателен.

Синтаксис для разграничения разделов блока PL/SQL выглядит так:

DECLARE     -- декларативные операторы (необязательные)

BEGIN     -- исполняемые операторы (требуются)

EXCEPTION      -- обработчики исключений (необязательные)

END;

В триггере обязателен только исполняемый раздел. Если создается триггер, не имеющий раздела DECLARE, то не нужно включать ключевые слова BEGIN и END, так как они неявно добавляются.

Но если триггер будет содержать раздел DECLARE, то необходимо включать ключевые слова BEGIN и END, чтобы компилятор смог найти начало исполняемого раздела.

2.5. Использование PL/SQL в Oracle Forms

PL/SQL - это процедурное расширение Oracle языка базы данных SQL. Он объединяет возвомжности манипулирования данными и обработки транзакций SQL с конструкциями, обычно присутствующими в процедурных языках программирования, такими как объявления переменных и констант, присвоения, циклы и ветвление по условию.

PL/SQL может быть использован для улучшения и модификации функциональности встроенной в каждую форму прикладной программы.

В Oracle Forms Designer создаются программы на PL/SQL, при необходимости сделать следующее:

  •  создать триггер;
  •  создать пункт меню PL/SQL-типа;
  •  написать подпрограмму;
  •  написать пакет PL/SQL;
  •  определить программу запуска меню.

При написании программ на PL/SQL в Oracle Forms, используется интегрированный редактором PL/SQL.

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

Чтобы вызвать процедуру, необходимо набрать имя процедуры и какие-либо требующиеся параметры в качестве оператора в исполнительном разделе блока PL/SQL. Вызов встроенной процедуры - это полный оператор, и он должен оканчиваться точкой с запятой.

Многие встроенные подпрограммы в Oracle Forms - это функции. Функция отличается от процедуры двумя важными чертами:

  •  функция возвращает значение определенного типа;
  •  функция представляет выражение определенного типа данных и должна быть частью полного оператора.

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

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

При написании на PL/SQL в триггерах, командах элементов меню и подпрограммах, часто бывает необходимо обращаться к таким объектам прикладной программы, как окна, блоки и элементы.

Чтобы обратиться к объекту по имени в операторе PL/SQL, необходимо заключите имя объекта в одиночные кавычки:

‘form_module_name’

‘block_name’

‘window_name’

Значения хранят следующие типы элементов:

  •  переключатели;
  •  элементы неизменного текста;
  •  элементы списка;
  •  радио-группы;
  •  элементы текста и др.

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

:block_name.item_name

Этот синтаксис подобен тому, что используется в Oracle Forms для обращения к глобальным переменным. Фактически значения элементов можно использовать в операторах PL/SQL точно так же, как локальные или глобальные переменные.

В любом создаваемом триггере, команде элемента меню, подпрограмме с именем пользователя или пакете PL/SQL можно объявлять локальные и глобальные переменные. Также можно использовать как переменную любой элемент формы, который хранит значение.

Локальная переменная - это переменная PL/SQL, значение которой доступно только в пределах триггера или подпрограммы с именем пользователя, в которой эта переменная была объявлена. Oracle Forms поддерживает поддерживает стандартное PL/SQL объявление и присвоение для локальных переменных.

Глобальная переменная - это переменная Oracle Forms, значение которой доступно в триггерах и подпрограммах в любом активном в течение сеанса модуле. Глобальная переменная хранит символьную цепочку длиной до 255 символов.

Глобальные переменные формально не объявляются так, как локальные переменные PL/SQL. Вместо этого глобальная переменная иниуиализируется в тот момент, когда ей в первый раз присваивается значение

Для обращения к глобальной переменной впереди имени переменной ставитсяслово GLOBAL и двоеточие. Обращение к глобальной переменной, не инициализированной через присвоение, вызывает ошибку выполнения.

Для уничтожения глобальной переменной и освобождения памяти используйте встроенную процедуру ERASE

Некоторые встроенные функции, доступные в Oracle Forms, предоставляют информацию о статусе выполнения:

DBMS_ERROR_TEXT

DBMS_ERROR_CODE

ERROR_CODE

ERROR_TEXT

ERROR_TYPE

GET_BLOCK_PROPERTY

GET_ITEM_PROPERTY

GET_RECORD_PROPERTY

MESSAGE_CODE

MESSAGE_TEXT

2.6. Параметры формы

Параметры предоставляют простой механизм определения и установки входных значений, необходимых форме в момент запуска. Параметры формы - это переменные типа CHAR, NUMBER или DATE, определяемые во время проектирования.

Передавать форме параметры можно при исполнении прикладной программой встроенных подпрограмм CALL_FORM, NEW_FORM, OPEN_FORM или RUN_PRODUCT. Для выполнения этого необходимо программно создать список параметров и затем установить значения параметров, добавляемых в этот список.

Операторы могут указывать параметры во время старта формы, вводя их в командной строке с использованием стандартного синтаксиса командной строки.

Значение параметра, введенного в командной строке, подавляет значение по умолчанию, указанное для этого параметра во время проектирования.

При создании параметра, указываются его имя, тип данных, длину и значение по умолчанию.

В PL/SQL можно обращаться и устанавливать значения параметров формы, используя синтаксис составной переменной.

Для обращения к параметру перед именем параметра ставиться зарезервированное слово PARAMETER, как показано в следующих примерах:

:PARAMETER.parameter_name := ‘TOKYO’;

или

:block.item := :PARAMETER.parameter_name;

Параметры передаются вызываемым формам посредством списка параметров. Список параметров - это программная конструкция с именем, включающая просто список имен параметров (называемых ключами) и их значений.

Можно передавать значения параметров формам, вызываемым встроенными подпрограммами CALL_FORM, OPEN_FORM и NEW_FORM. Кроме того, можно передавать значения параметров другим инструментам Oracle с помощью процедуры RUN_PRODUCT.

Параметр, включаемый в список параметров, может быть или текстовым параметром, или параметром данных. Тип параметра определяет то, как его значение будет интерпретироваться.

Значение текстового параметра, передаваемого вызываемому продукту, это цепочка CHAR, представляющая следующее:

  •  определяемый пользователем параметр формы, определенный в форме, вызываемой встроенными подпрограммами CALL_FORM, OPEN_FORM или NEW_FORM;
  •  параметр командной строки или определяемый пользователем для пролукта, вызываемого встроенной подпрограммой RUN_PRODUCT.

Значение параметра данных, передаваемого вызываемому продукту, всегда имя группы записей, определенной в текущей форме. (Группа записей - это структура данных, которая хранит записи, получаемые в результате запроса или программным присвоением.) Параметры данных используются для передачи данных продуктам, вызываемым встроенной подпрограммой RUN_PRODUCT.

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

  •  ADD_PARAMETER
  •  CREATE_PARAMETER_LIST
  •  DELETE_PARAMETER
  •  DESTROY_PARAMETER_LIST
  •  GET_PARAMETER_ATTR
  •  GET_PARAMETER_LIST
  •  SET_PARAMETER_ATTR

При создании списков параметров не забывайте о следующем:

  •  CREATE_PARAMETER_LIST - это функция, возвратное значение которой - идентификатор создаваемого списка. Необходимо присвоить этот идентификатор переменной, которая объявляется как тип PARAMLIST (тип данных Oracle Forms).
  •  Вызов CREATE_PARAMETER_LIST создает список параметров, который еще не содержит никаких парамтров. Для добавления параметров в список необходимо исполните процедуру ADD_PARAMETER.
  •  GET_PARAMETER_ATTR и SET_PARAMETER_ATTR могут использоваться для получения и установки типа и значения параметра, добавленного в список параметров встроенной процедурой ADD_PARAMETER.
  •  GET_PARAMETER_LIST - это функция, которая возвращает идентификатор ParamList обозначенного списка параметров, подобно функциям FIND-*, доступным для других типов объектов.

2.7. Задание для практической работы

Порядок выполнения работы

  1.  Ознакомиться с основными понятиями и приемами работы с Oracle Forms.
  2.  Модифицировать ранее созданные формы, используя меню, сигналы и списки.
  3.  Добавить на форму кнопки с триггерами, выполняющими различные действия над данными.

Содержание отчета

Кроме титульного листа и цели работы отчет должен содержать:

  •  Описание элементов, использованных для усовершенсвования форм и их функций.
  •  Видеокадры модифицированных форм.
  •  Тексты триггеров.

2.8. Пример выполнения работы

Создадим список значений для вкладки Выполненные работы, который будет показывать табельные номера и ФИО работников и передавать табельные номера в форму при заполнении данных о работнике, выполнившем работу. Для этого создадим в Объектном навигаторе список значений (LOV). В свойствах элемента tabnumber блока данных donework укажем в качестве LOV имя созданного списка.

После этого воспользуемся Мастером LOV. Построим группу записей на основании запроса, выдающего всю информацию по работникам.

SELECT * FROM WORKER

Далее выберем столбцы для отображения в LOV – tabnumber и fio и укажем их свойства для отображения. Здесь же назначим donework.tabnumber в качестве возвращаемого элемента для столбца tabnumber списка значений.

Для запуска LOV при переходе к полю, для элемента donework.tabnumber создадим триггер When-New-Item-Instance, в качестве тела которого будет команда LIST_VALUES('LOVNAME'), где LOVNAME – имя созданного списка значений.

При выборе работника LOV передает соответствующий табельный номер в поле блока данных.

Для исключения ошибок при удалении записей, создадим сигнал, предупреждающий об удалении и позволяющий отказаться от него при ошибочном нажатии кнопки. Для этого в Объектном навигаторе создадим сигнал.

В Палитре свойств сигнала укажем:

  •  заголовок - Операция удаления
  •  сообщение - Выбранная запись и все связанные с ней будут удалены
  •  стиль сигнала – Предупреждение
  •  метка кнопки 1 – Продолжить
  •  метка кнопки 2 – Отменить
  •  кнопка сигнала по умолчанию – Кнопка 2

Последнее свойство позволяет дополнительно защитить данные от случайного удаления, т. к. вызовет нажатие кнопки с действием отмены.

Затем внесем изменения в текст триггера When-Button-Pressed кнопки формы «Удалить»:

DECLARE

alert_button NUMBER;

BEGIN

 alert_button := Show_Alert('alert_delete');

 IF alert_button = ALERT_BUTTON1 THEN Delete_REcord;

 END IF;

END;

Если оператор нажмет кнопку 1 (Продолжить), то запись будет удалена, в противном случае этого не произойдет.

В Объектном навигаторе создадим модуль меню. После этого в редакторе меню определим его структуру. Для привязки действий к пунктам меню в редакторе PL/SQL для каждого элемента меню привяжем программу, выполняющую соответствующие действия.

Выход:

Close_Form('worker');

Запуск формы:

Call_Form('workkind.fmx', hide, no_replace, no_query_only);

Запуск отчета:

Run_Product(REPORTS, 'workers.rdf', SYNCHRONOUS, RUNTIME, FILESYSTEM, 0, NULL);

После определения меню, его нужно сохранить и откомпилировать. Для компиляции необходимо выполнить действия Файл-> Администрирование->Компилировать файл.

В Палитре свойств формы укажем модуль меню с именем предварительно откомпилированного модуля.

2.9. Контрольные вопросы

  1.  Использование списков в Oracle Forms.
  2.  Виды сигналов и их использование.
  3.  Основы проектирования меню.
  4.  Использование триггеров.
  5.  Структура блоков PL/SQL.
  6.  Объекты, используемые в PL/SQL.


3.  построение отчетов

Цель работы

  •  ознакомиться со средством  создания отчетов Oracle Reports из пакета Developer/2000;
  •  изучить приемы создания отчетов в Oracle Reports;
  •  освоить создание простейших отчетов с помощью средств Oracle Reports.

3.1. Введение в Oracle Reports

Oracle Reports представляет собой средство разработки, предварительного просмотра и печати высококачественных отчетов, предназначенное для разработчики приложений, использующих SQL и PL/SQL.

Oracle Reports позволяет создавать разнообразные отчеты, включая иерархические отчеты, вложенные матричные, в форме писем и т.п..

Основные возможности Oracle Reports:

  •  редакторы макета и модели данных, с помощью которых можно создавать структуру и оформление отчета;
  •  Объектный Навигатор, позволяющий перемещаться среди объектов данных и макета;
  •  пакетные функции для выполнения вычислений;
  •  поддержка различных шрифтов, цвета и графики;
  •  возможности управления печатью;
  •  встроенная программа для предварительного просмотра вывода отчета.

Можно использовать Oracle Reports совместно с другими продуктами Oracle, такими, как Oracle Forms и Oracle Graphics. Например, можно запустить отчет с помощью триггеров Oracle Forms, включив в него графику и диаграммы.

При построении отчетов с помощью Oracle Reports используются компонеты:

  •  Report Builder;
  •  Reports Runtime.

Builder – это среда разработки и предварительного просмотра создаваемых отчетов.

Runtime - это двигатель, который операторы отчетов используют для выполнения законченного отчета Oracle Reports.

Файлы отчетов имеют расширение *.rdf.

Построение отчета с помощью Oracle Reports состоит из трех шагов:

  •  создание нового определения отчета;
  •  создание модели данных (определияются данные, связи между ними и вычисления, которые будут использоваться в отчете);
  •  создание макета отчета. Можно использовать готовый стиль макета, настроив его при необходимости, или создать свой собственный макет.

Запуск Oracle Reports производится подобно запуску Oracle Forms. Для этого используется следующая команда:

rwbld60 filename.rdf user/password@databasealias

Для запуска существующего отчета с помощью Reports Runtime:

rwrun60 filename.rdf user/password@databasealias

Соединиться с базой данных можно также из самого Report Builder (Файл->Соединить).

3.2. Инструменты Oracle Reports 

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

  •  таблицы атрибутов;
  •  Объектный Навигатор;
  •  редакторы;
  •  инструментальная палитра и пиктографическое меню.

Таблица атрибутов — это окно, содержащее атрибуты объекта Oracle Reports. Каждый объект (например, запрос, группа, столбец, параметр и т.д.) имеет таблицу атрибутов.

Объектный Навигатор содержит иерархическое представление объектов отчета. Он используется для обзора организации отчета. Каждый элемент списка называется узлом и представляет собой объект или тип объекта, который содержится в отчете, или на который установлена ссылка.

Рис. 15. Объектный навигатор Oracle Reports

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

Палитра и пиктографическое меню содержат инструменты и пиктограммы для создания и управления объектами в редакторе. Каждый редактор имеет инструментальные палитры и пиктографическое меню; каждый инструмент представлен пиктограммой в палитре или в пиктографическом меню.

При вызове Oracle Reports первым появляется Объектный Навигатор. Окно Объектного Навигатора содержит полный список объектов отчета. Первоначально в нем содержатся все объекты, созданные по умолчанию Oracle Reports, как часть определения отчета.

Используя Объектный Навигатор, можно легко перейти к любому объекту открытых в текущем сеансе отчетов. Каждому типу объектов соответствует один узел, под которым находится иерархический список соответствующих объектов, созданных в течение текущего сеанса.

Объектный Навигатор также позволяет перейти в следующие окна Oracle Reports:

  •  редактор модели данных, в котором определяются данные для отчета;

Рис. 16. Редактор модели данных

  •  редактор макета, в котором создастся макет отчета;

Рис. 17. Разметка отчета

  •  редактор формы параметров, в котором определяется внешний вид Формы параметров – окна. появляющегося (необязательно) при запуске отчета и позволяющего задать значения параметров, влияющих на выполнение отчета.

Рис. 18. Построитель формы параметров

3.3. Основные понятия

При вызове Oracle Reports создастся новое определение отчета. Используя Объектный Навигатор, можно перейти к редактору модели данных и сразу начать описание данных.

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

Запросы - это стандартные команды SQL SELECT, извлекающие данные из базы данных. Можно использовать любое число запросов для выборки данных из любого числа таблиц, расположенных в любом количестве баз данных на одном или нескольких компьютерах.

Группы определяют иерархию данных отчета. Oracle Reports автоматически создает группу для каждого запроса. Иногда бывает необходимо создать новую группу. Например, чтобы разбить данные в отчете на отдельные категории, можно создать новую группу в модели данных и включить в нее столбец, который необходимо использовать как столбец разбивки. Кроме отчетов с разбивкой в матричных отчетах создаются кросс-группы.

Столбцы содержат значения данных отчета. Oracle Reports по умолчанию автоматически создает в отчете столбцы, соответствующие столбцам таблиц, включенным в список выборки команды SELECT. Затем каждый столбец помещается в группу, связанную с запросом, в котором выбирается данный столбец. Для суммирования и других вычислений по данным столбца базы данных можно создать новые столбцы. Можно также повторно приписать один или несколько столбцов к созданной группе или группам.

Параметры - это переменные отчета, позволяющие изменять условия выборки во время выполнения отчета. Oracle Reports автоматически создает набор системных параметров, но можно также создать и свой собственный набор. Можно создать параметры, заменяющие отдельные литералы или выражения в любой части запроса. Можно ссылаться на эти параметры в любом месте отчета, в частности, в конструкциях PL/SQL, задавая тем самым логику выполнения отчета.

Связи данных используются для установления иерархического отношения между запросами и группами посредством сопоставления столбцов.

После определения модели данных создается макет отчета, т.е. надлежащим образом располагаются объекты в отчете. Oracle Reports предлагает на выбор шесть готовых стилей: табличный, общедетальный, письмо, бланк, почтовый адрес и матричный. Можно выбрать один из этих стилей и при необходимости отредактировать его или создать свой собственный стиль оформления.

Макет отчета может содержать следующие объекты:

  •  повторяющиеся рамки;
  •  рамки;
  •  поля;
  •  статичные объекты;
  •  анкеры.

Повторяющиеся рамки резервируют место для групп и представляют строки данных, извлеченных из базы данных. Повторяющиеся рамки выводятся так же часто, как и извлекаются данные.

Рамки окружают другие объекты макета, позволяя одновременно управлять форматированием и расположением нескольких объектов относительно друг друга.

Поля резервируют место для столбцов. Они определяют форматирование данных столбцов отчета. Поля располагаются внутри рамки или повторяющейся рамки.

Статичный объект может быть текстом или графикой, появляющимся в отчете при каждом его выполнении. Например, заголовок, выводимый над столбцом данных, представляет собой статичный текст. Рисунки и текст, созданные в макете, являются статичными объектами. Пользователи Windows могут создать статичный объект OLE2, содержащий объекты OLE2.

Анкеры скрепляют края объектов так, что в результате объекты сохраняют свое относительное положение. Например, можно прикрепить статичный текст к границе повторяющейся рамки переменного размера. Тем самым обеспечивается постоянное положение статичного объекта относительно повторяющейся рамки независимо от ее реального размера.

Создав отчет, перед его запуском можно создать форму параметров с помощью редактора формы параметров. Этот редактор использует часть функциональных возможностей редактора макета и задает относительное положение объектов в форме параметров.

Форма параметров может содержать следующие объекты:

  •  поля;
  •  статичный объект.

Поля в редакторе формы параметров резервируют место для параметров. Они определяют атрибуты форматирования значений параметров формы.

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

3.4. Этапы создания отчетов

Для начала создания отчета необходимо запустить Мастер отчетов (Инструменты->Мастер отчетов).

После запуска мастера и соединения с базой данных следующим шагом будет определение данных отчета. Это делается в редакторе модели данных, который можно вызвать из Объектного Навигатора или главного меню. В редакторе модели данных можно создать один или несколько запросов, являющихся объектами модели данных, извлекающими данные для отчета.

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

После определения данных отчета необходимо создать его макет (Иснтрументы->Мастер макета). Используя диалоговое окно, можно задать несколько установок макета. Oracle Reports использует эти установки для создания полного выполняемого отчета.

Можно задать следующие установки:

  •  стиль макета, который определяет начальный макет отчета;
  •  группы и направление вывода их записей,
  •  столбцы, включаемые в отчет, их метки, ширину и высоту соответствующих полей макета.

Выбрав Инструменты->Параметры отчета можно указать параметры отчета, которые можно использовать при ограничении выборки запроса SQL. Для этого в запросе перед именем параметра необходимо поставить двеоточие.

Окно просмотра предназначено для просмотра вывода отчета перед его печатью.

3.5. Задание для практической работы

Порядок выполнения работы

  1.  Ознакомиться с приемами работы с Oracle Reports.
  2.  В соответствии с предметной областью создать различные отчеты.

Содержание отчета

Кроме титульного листа и цели работы отчет должен содержать:

  •  Описание запросов, использованных для создания отчетов.
  •  Видеокадры созданных отчетов.

3.6. Пример выполнения работы

В качестве примера создания отчета создадим отчет, представляющий список всех работников с разбиением по отделам.

После запуска Report Builder и соединения с базой данных запустим Мастер отчетов. В качестве стиля отчета укажем – отчет с группой слева. Здесь же можно указать заголовок отчета.

Введем запрос, возвращающий список всех работников:

select * from worker

Установим группировку по столбцу department. На следующем шаге добавим остальные столбцы для вывода на экран.

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

Запустив отчет на выполнение, в окне оперативного просмотра получим следующее:

Далее внесем изменения в отчет для того, чтобы выводить работников отдела, выбираемого пользователем.

Для этого перейдем в Редактор модели данных:

Здесь внесем изменения в запрос – укажем внешний параметр, ограничивающий список работников:

select * from worker where department = :Отдел

Запустим построитель формы параметров из меню Инструменты.

В свойствах элемента поля ввода укажем в качестве списка значений запрос:

select distinct department from worker

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

3.7. Контрольные вопросы

  1.  Характеристика Oracle Reports.
  2.  Этапы создания отчетов.
  3.  Назначение инструментов Oracle Reports.
  4.  Виды отчетов.
  5.  Использование параметров пользователя при построении отчетов.


4.  создание графических документов

Цель работы

  •  ознакомиться со средством  создания графических документов Oracle Graphics из пакета Developer/2000;
  •  изучить приемы создания диаграмм в Oracle Graphics;
  •  освоить создание и включение в формы и отчеты простейших диаграмм  с помощью средств Oracle Graphics.

4.1. Введение в Oracle Graphics

Графическое представление информации является наиболее простым и наглядным способом представления информации для ее анализа и принятия решений. Oracle Graphics объединяет существующую информационную сеть и графическую систему конечного пользователя, что позволяет с легкостью визуализировать анализируемую информацию.

Объединяя источники данных и графические системы, ее представляющие, Oracle Graphics позволяет разработчику приложений создавать графические документы, которые могут быть динамически связаны с источниками данных. Графически документы Oracle Graphics могут быть созданы как автономные документы, а также могут быть объединены с модулями из других программных средств Oracle, включая Oracle Forms и Oracle Reports.

Oracle Graphics обеспечивает широкие возможности для графического изображения данных. В Oracle Graphics возможно:

  •  извлекать данные из широкого набора источников и изображать их графически, используя диаграммы, линии, растровые изображения, текст и звуковые сигналы;
  •  рисовать линии, многоугольники и фигуры произвольной формы, используя полный набор средств редактирования Oracle Graphics;
  •  использовать язык PL/SQL, чтобы управлять потоком информации, редактировать и отлаживать программные единицы PL/SQL;
  •  динамически связывать диаграммы и рисунки с источниками данных, создавать процедуры, которые обновляют графические документы при изменении данных;
  •  создавать интерактивные средства для конечного пользователя, такие как кнопки и таймеры;
  •  создавать диаграммы с использованием встроенных шаблонов.

При создании графических документов с помощью Oracle Graphics используются компоненты:

  •  Graphics Builder;
  •  Graphics Runtime.

Builder – это среда разработки и предварительного просмотра создаваемых графических документов.

Runtime - это двигатель, который операторы графических документов используют для выполнения законченного документа Oracle Graphics.

Файлы графических документов имеют расширение *.ogd.

Запуск Oracle Graphics Builder производится подобно запуску Oracle Forms. Для этого используется следующая команда:

gobld60 filename.ogd user/password@databasealias

Для запуска существующего графического документа с помощью Graphics Runtime: gorun60 filename.ogd user/password@databasealias

Соединиться с базой данных можно также из самого Graphics Builder (Файл->Соединить).

4.2. Инструменты Oracle Graphics 

Модуль, который объединяет объекты, запросы, шаблоны диаграмм, программные единицы PL/SQL в Oracle Graphics, называется графическим документом.

Объектный навигатор Oracle Graphics служит для создания и управления всеми объектами графического документа в Oracle Graphics.

Объектный навигатор строит иерархическое представление всех открытых графических документов и каждого компонента отдельного документа. В навигаторе компоненты представляются узлами, которые можно разворачивать для просмотра подкомпонентов, если они существуют.

Для создания различных компонентов графических документов и управления ими используются различные редакторы, в которых можно создавать, изменять и удалять компоненты графических документов. В Oracle Graphics существуют следующие редакторы:

  •  редактор макета;
  •  редактор программных единиц PL/SQL;
  •  редактор шаблонов диаграмм.

Рис. 19. Объектный навигатор Oracle Graphics

Редактор макета – это рабочая область, в которой создается графический документ. Редактор имеет свой собственный набор меню, с помощью которого можно открывать доступ ко всем остальным редакторам и функциям. Графический документ имеет только один редактор макета.

Рис. 20. Редактор макета

Редактор программных единиц PL/SQL – это рабочая область, в которой можно создавать, импортировать и отлаживать программные единицы PL/SQL. Oracle Graphics позволяет открыть несколько редакторов программных единиц PL/SQL для одного графического документа.

Рис. 21. Редактор программных единиц PL/SQL

Редактор шаблонов диаграмм – это рабочая область, в которой можно выбирать и редактировать шаблоны диаграмм и шаблоны поля. Графический документ имеет только один редактор шаблонов диаграмм.

Рис. 22. Редактор шаблонов диаграмм

4.3. Основные понятия

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

  •  объекты;
  •  инструментальная панель;
  •  макет.

Объекты – это визуальные компоненты графического документа. Они включают диаграммы, тексты, рисунки и изображения. Создавать объекты можно сами по себе, например рисунки, или связывать объекты с источником данных, как это делается в диаграммах. Также можно связать объекты с программными единицами PL/SQL, например, кнопку, на которую может нажать конечный пользователь во время выполнения графического документа, чтобы выполнить конкретную операцию.

Инструментальная панель содержит инструментальные средства, представленные пиктограммами и используемые для рисования и изменения объектов в Oracle Graphics. Oracle Graphics позволяет импортировать различные растровые изображения из других источников, а затем добавлять и удалять их в макете.

Макет – это центральная часть редактора макета, в которой размещаются объекты. Макет может состоять из нескольких поверхностей, называемых слоями. Используя слои, можно скрывать или показывать отдельные объекты графических документов в разные моменты времени.

Активный слой – это слой, с которым работает пользователь. Он всегда показан в макете. Вместе с активным в макете могут быть показаны еще несколько слоев. Единственный слой, с которым может взаимодействовать конечный пользователь, является активным слоем. Активный слой можно менять, используя язык PL/SQL, в зависимости от информации, вводимой пользователем. Слои можно прятать, показывать, а также менять порядок слоев в стеке, чтобы полностью или частично скрывать отдельные объекты.

Для управления слоями используются функции:

  •  OG_GET_LAYER – получить указатель на слой (тип указателя – OG_LAYER);
  •  OG_ACTIVATE_LAYER – сделать слой активным;
  •  OG_HIDE_LAYER – скрыть слой.

Использование триггеров

Основные типы триггеров, используемых при построении графических документов:

  •  триггеры открытия графического документа;
  •  триггеры выполнения запроса;
  •  триггеры форматирования.

Триггер открытия графического документа выполняет некоторую процедуру PL/SQL, когда запускает графический документ. Например, можно создать триггер открытия графического документа, который устанавливает начальное состояние графического документа (выполняет запросы, создает диаграммы и т.д.).

Триггеры выполнения запроса – процедуры, которые связаны с запросами. Они срабатывают непосредственно после того, как выполняется связанный с ними запрос.

Триггер форматирования – процедура PL/SQL, связанная с каким-либо элементом диаграммы. Процедура триггера форматирования будет выполнена непосредственно перед изображением элемента диаграммы. Эта процедура позволяет динамически изменять атрибуты форматирования элементов диаграммы.

Использование параметров

Параметры – это глобальные переменные, которые разработчик может определить в графическом документе. Oracle Graphics позволяет устанавливать ссылки на параметры в командах SELECT языка SQL или программных единицах PL/SQL.

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

Параметры могут использоваться в нескольких программных единицах PL/SQL, как глобальные переменные.

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

  •  из объектного навигатора;
  •  в запросе или программной единице;
  •  в нисходящей процедуре.

Если при создании команды SELECT или программной единицы PL/SQL необходимо использовать параметр, необходимо сделать ссылку на имя нового параметра там, где нужно его использовать. При попытке выполнить запрос или откомпилировать программную единицу, Oracle Graphics создаст новый параметр.

Значения параметров можно присвоить тремя способами:

  •  изначально в диалоговом окне создания параметров;
  •  в программных единицах PL/SQL;
  •  как аргументы к выполняемым программам Runtime.

Во время выполнения графических документов значения параметров подставляются в соответствии со ссылками на них в командах SELECT или программных единицах PL/SQL.

Значения параметра можно назначить в командной строке Oracle Graphics:

gorun60 filename.ogd birthday=’23.06.1979’

Здесь параметру birthday передается значение ’23.06.1979’.

Интеграция приложений

Для запуска графических документов их других приложений Oracle Developer, а также для запуска приложений из графических документов используется встроенная процедура RUN_PRODUCT, использующая в качестве параметров имя вызываемого приложения, файл запускаемого документа, режимы сообщений и выполнения приложения, список параметров, передаваемый приложению.

Для создания списка параметров для передачи приложению используется функция CREATE_PARAMETR_LIST, а для добавления в список параметров – функция ADD_PARAMETR.

Таблица 5

Основные типы диаграмм и их использование

Тип диаграммы

Использование

Гистограмма

(столбец)

Используется для сравнения данных, ранжируя их по вертикали

Гистограмма

(полоса)

Используется для сравнения данных, ранжируя их по горизонтали

Сегментная

Используется для сравнения отношений или процентных долей целого

Таблица

Используется для представления данных в табличном формате

График

Используется для вертикального изображения изменения определенного набора данных

Смешанная

Комбинирует несколько типов нанесения данных, таких как гистограмма и график

Двойная ось Y

Обеспечивает две независимых оси Y, вдоль которых наносятся различные данные. Оси могут показывать различные наборы значений

Тип диаграммы

Использование

XY-точечная

Используется для показа данных вдоль двух осей значений

Макс-мин

Используется для показа значений данных на фоне их минимальных и максимальных значений

Гант

Используется для отображений данных в виде графика Ганта

Каждый тип диаграмм имеет также по несколько подтипов, определяющих особенности отображения диаграмм.

4.4. Этапы создания отчетов

Основные задачи, которые необходимо решать при построении графических документов в Oracle Graphics:

  •  создание нового графического документа;
  •  разработка визуальной структуры;
  •  определение данных;
  •  создание диаграммы;
  •  тестирование графического документа;
  •  определение параметров;
  •  использование PL/SQL.

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

  •  соединение с базой данных;
  •  создание запросов.

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

Запросы – это команды SELECT языка SQL, используемые для выборки необходимых данных.

Диаграммы – наиболее мощные объекты Oracle Graphics, благодаря широкому разнообразию возможностей представления полученной информации. Создание диаграмм включает:

  •  рисование диаграммы;
  •  обновление диаграммы;
  •  редактирование диаграммы.

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

После получения новых данных по запросы или были сделаны изменения в шаблоне диаграммы, необходимо обновить диаграмму. При обновлении диаграммы просматриваются вновь полученные данные и шаблоны и диаграмма перерисовывается основываясь на новой информации.

Отдельные элементы диаграмм можно редактировать непосредственно в макете.

4.5. Задание для практической работы

Порядок выполнения работы

  1.  Ознакомиться с приемами работы с Oracle Graphics.
  2.  В соответствии с предметной областью создать различные графические документы.
  3.  Осуществить запуск и встраивание графических документов в Oracle Forms.

Содержание отчета

Кроме титульного листа и цели работы отчет должен содержать:

  •  Описание запросов, использованных для создания графических документов.
  •  Видеокадры созданных графических документов.

4.6. Пример выполнения работы

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

После запуска Graphics Builder и соединения с базой данных, щелчком на пиктограмме «Диаграмма» в панели инструментов редактора макета создадим диаграмму.

В качестве запроса укажем:

select count(tabnumber), department

from worker 

group by department

После этого нажмем кнопку «Выполнить» - в окне «Данные» появится результат выполнения запроса.

Далее выберем тип диаграммы «Секторная», подтип – «3-х мерная». Укажем имя и заголовок диаграммы.

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

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

Изменим тип диаграммы с секторной на гистограмму (столбцы), получим:

4.7. Контрольные вопросы

  1.  Характеристика Oracle Graphics.
  2.  Этапы создания графических документов.
  3.  Назначение инструментов Oracle Graphics.
  4.  Виды графических документов.
  5.  Использование параметров пользователя при построении и запуске графических документов.


Библиографический список

  1.  Oracle8. Энциклопедия пользователя: пер. с англ. – К.: Издательство “ДиаСофт”, 1999. – 864 с.
  2.  Oracle Forms. Руководство разработчика, версия 4.5: пер. с англ. – 1995.
  3.  Oracle Reports. Спарвочное руководство, версия 2.5: пер. с англ. – 1996.
  4.  Oracle Graphics. Руководство разработчика, версия 2.5: пер. с англ. – 1996.


 

А также другие работы, которые могут Вас заинтересовать

27656. Понятие и виды преступлений против службы в коммерческих и иных организациях. Злоупотребление полномочиями (ст.201 УК РФ). Коммерческий подкуп (ст. 204 УК РФ). Особенности субъекта данных преступлений 38.5 KB
  Коммерческие организации это организации преследующие извлечение прибыли в качестве основной цели своей деятельности в частности хозяйственные товарищества; хозяйственные общества; производственные кооперативы; государственные унитарные предприятия. Действие главы 23 УК РФ распространяется на все коммерческие организации независимо от формы их собственности. Некоммерческие организации это организации не имеющие в качестве основной цели своей деятельности извлечение прибыли и поэтому они могут заниматься предпринимательской...
27658. Понятие и виды преступлений, ставящих в опасность жизнь и здоровье. Оставление в опасности (ст. 125 УК). Отличие этого преступления от неоказания помощи больному (ст. 124 УК) 30.5 KB
  Убийство; Убийство матерью новорожденного ребенка; Убийство совершенное в состоянии аффекта; убийство совершенное при превышении пределов необходимой обороны или при превышении мер необходимых для задержания лица совершившего преступление; Причинение смерти по неосторожности; Доведение до самоубийства; Умышленное причинение тяжкого вреда здоровью; Умышленное причинение средней тяжести вреда здоровью; Причинение тяжкого или средней тяжести вреда здоровью в состоянии аффекта; Причинение тяжкого или средней тяжести вреда здоровью при...
27660. Понятие и виды стадий совершения умышленного преступления. Значение обнаружения умысла и его ненаказуемость 27.5 KB
  Понятие и виды стадий совершения умышленного преступления. Стадии совершения преступления это этапы реализации преступного умысла: приготовление к преступлению; покушение на преступление; окончание преступления. ответственности является состав преступления; разные стадии характеризуются разной степенью общественной опасности; стадия преступления позволяет установить иные элементы состава преступления приготовление к преступлению осуществляется только с прямым умыслом. В зависимости от степени определенности выделяют: определенный...
27661. Понятие и признаки кражи (ст. 158 УК). Отличие этого преступления от грабежа (ст. 161 УК). Постановление Пленума Верховного Суда РФ от 27 декабря 2002 г. № 29 «О судебной практике по делам о краже, грабеже и разбое» 36 KB
  Кража тайное хищение чужого имущества. Грабеж открытое хищение чужого имущества 1. Объективную сторону кражи составляет тайное изъятие чужого имущества из законного владения. N 29 указал что уголовная ответственность за кражу совершенную группой лиц по предварительному сговору наступает и в тех случаях когда согласно предварительной договоренности между соучастниками непосредственное изъятие имущества осуществляет один из них.
27663. Понятие и признаки объективной стороны преступления. Понятие уголовно-наказуемого действия и бездействия. Понятие и виды общественно-опасных последствий. Значение объективной стороны 43 KB
  Объективная сторона преступления это основной элемент состава преступления характеризующийся как внешнее проявление общественно опасного посягательства протекающего в определенных условиях месте и времени и причинившего вред охраняемым уголовным законом общественным отношениям. При анализе объективной стороны различают следующие признаки: 1 общественно опасное деяние в форме действия или бездействия; 2 общественно опасное последствие; 3 причинная связь между деянием и последствием; 4 место время способ обстановка орудия и...