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

 

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

Для Oracle Reports Builder нет различий, на какой основе строится отчет: на реляционных таблицах, объектных или сложных, т.е. работа с этими типами таблиц сводится к тому, чтобы правильно представить данные с учетом особенностей типа таблицы в построители моделей данных.

Таким образом, для перестройки документа с реляционных таблиц, например на сложные объектные, достаточно поменять SQL – запросы с учетом особенностей таблицы.

Запустим Report Builder и создадим новый проект документа. Сохраним проект под именем «d_dover4», откроем «Report Editor», перейдем на вкладку построения моделей данных и нажмем кнопку  для создания нового запроса (как проделать данные операции смотрите в  работе «Создание документа на основе двух реляционно-связанных таблиц»).

Получим следующее изображение на экране (рис. 173).

Введем следующий SQL запрос:

 

SELECT ndoc, datav, data_deis, DEREF(ref_org2).naimen as naim_org, DEREF(ref_fiz_lic2).im as im, DEREF(ref_fiz_lic2).fam as fam, DEREF(ref_fiz_lic2).otch as otch, kod FROM d_dover4 WHERE kod=:P_KOD

 

 

Рисунок 173 - Ввод запроса для отчета

 

При нажатии на кнопку «OK» Report Builder говорит о том нужно, он создаст автоматически входящий параметр «P_KOD». По умолчанию создаваемые параметры имеют тип данных «Char», а нам нужен «Number», так как поле «kod» в таблице «d_dover4» имеет тип «Number». Для того чтобы поменять тип данных параметра, нужно перейти в окно «Object Navigator», выбрать «User parameter» и двойным щелком мыши по «P_KOD» вызвать свойство параметра. В свойстве «Datatype» выбрать «Number».

В нашем запросе мы получаем фамилию, имя и отчество в отдельные поля, а нам необходимо их соединить, для этого мы будем использовать элемент «Formula Column». Щелкните мышью по кнопке , а затем по списку полей в запросе, в результате у нас появится новое поле «CF1». Двойным щелчком по данному полю вызовем свойства данного поля и установим: «Datatype» - «Character», «Width» - 100 и в свойстве «PL/SQL Formula» - нажмем кнопку «…». В результате чего у нас на экране появится следующее окно (рис. 174).

 

Рисунок 174 - Окно ввода PL/SQL кода для элемента «CF1»

 

Введем следующий текст между операторами «begin» и «end»:

 

return:fam||' '||:im||' '||:otch; -- конкатенация фам. имени и отчества

 

Нажмем кнопку «Компиляция» и «Закрыть».

Теперь перейдем к созданию второго запроса для табличной части документа. Данные для табличной части мы будем брать из вложенной таблицы документа. Создадим новый SQL – запрос и введем следующий текст:

 

SELECT a.kod, DEREF(a.ref_s_naimen2).naimen as naimen, a.kol, a.ed_izm FROM TABLE(SELECT n1_naimen FROM d_dover4 WHERE kod=:P_KOD) a;

 

Теперь создадим сразу во втором запросе поле «Summary Column» для нумерации строк в табличной части (как проделать данные операции смотрите в работе «создание документа на основе двух реляционно-связанных таблиц).

После создания обоих запросов на экране появится следующая картина (рис. 175)

 

Рисунок 175 - Созданные объекты запросов в Report Editor

 

Приступим к дизайну нашего документа, нажав кнопку . Создадим повторяющийся фрейм для «шапки» нашего документа, рамку фрейма установим в «Нет линии», в свойствах фрейма «Source» установим «G_NDOC1». Добавим поля данных в созданный нами фрейм:

- «Номер доверенности»: свойство «Source» - «ndoc1», рамка – «Нет линии»;

- «Дата выписки»: свойство «Source» - «datav», рамка – «Нет линии»;

- «Дата действия»: свойство «Source» - «data_deis», рамка – «Нет линии»;

- «Получатель»: свойство «Source» - «naim_org», рамка – «Нет линии»;

- «Доверенность выдана»: свойство «Source» - «CF1», рамка – «Нет линии».

Создадим подписи для каждого поля данных с помощью элемента «Текст» (как проделать данные операции смотрите в работе «создание документа на основе двух реляционно-связанных таблиц). Получим «шапку» документа как на рисунке.

 

Рисунок 176 - Документ «Доверенность» в режиме дизайна

 

Теперь создадим табличную часть документа, для этого создадим повторяющийся фрейм со следующими свойствами: «Source» -«G_KOD1», «Vertical Elasticity» - «Variable». Создадим 4 поля данных по горизонтали в созданном нами фрейме со свойствами:

- «Номер по порядку»: «Source» - «CS1», рамка - «Нет линии»;

- «Наименование»: «Source» - «Naimen», рамка - «Нет линии»;

- «Количество»: «Source» - «KOL», рамка - «Нет линии»;

- «Единица измерения»: «Source» - «ED_IZM», рамка - «Нет линии».

Создадим соответствующие подписи над полями данных. Затем произведем форматирование полей данных и подписей: выравнивание – центр.

Произведем разделение линиями всех столбцов во втором фрейме (рис. 177).

На последнем этапе создания документа нам необходимо создать надписи для подписей главного бухгалтера и руководителя предприятия, поочередно создадим элемент «текст» () и добавим в них текст «Главный бухгалтер», «Руководитель предприятия». Для отображения линии, где бухгалтер или руководитель будет расписываться, используйте инструмент «Линия».

 

Рисунок 177 - Документ «Доверенность» в режиме дизайна

 

Теперь можно посмотреть, что у нас получается в режиме просмотра, для этого нажмем кнопку , сразу появится окно для ввода параметров (рис. 178).

 

 

Рисунок 178 - Форма запроса параметоров отчетв

 

В данном окне мы должны ввести номер документа, который мы уже раннее создали (т.е. который уже есть в таблице d_dover4), после ввода номера документа, нажмем кнопку Enter и получим документ (рис. 179).

Рисунок 179 - Документ «Доверенность» в режиме просмотра

 

Нажмем кнопку  для сохранения нашего документа.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: