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

Для выполнения трех первых заданий используем пример Базы данных c названием DB_Books, которая была создана в 1-ой лабораторной работе. При выполнении примеров и заданий обращайте внимание на соответствие названий БД, таблиц и других объектов проекта.

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

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

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

В Delphi 7 есть несколько способов создания отчетов, познакомимся с компонентами Rave.

Задание 1.Создание отчета в табличной форме по запросу, который выбирает из таблицы Books все поля, кроме кодов, из таблицы Publish_house - название издательства и место издательства, из таблицы Authors - имя автора.

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

2. В проекте на главной форме в меню добавить пункт меню Отчеты, а также подпункты:

Отчет в табличной форме;

Отчет в свободной форме;

Отчет с группировкой по двум таблицам.

3. В проекте на форму DM добавить компонент ADOQUERY1, у которого изменить SQL на соответствующий запрос (см. текст задания):

select * from books, authors, publishing_house where

books.code_author = authors.code_author AND

books.code_publish = publishing_house.code_publish,

а свойство Connection на ADOConnection1. Активизировать запрос.

4. В проекте на форму DM с вкладки Rave поместим компонент RvDataSetConnection. У свойства DataSet установить ссылку на ADOQUERY1.

5. С помощью визуального конструктора отчетов подготовим отчет и создадим файл проекта отчета. Для этого:

- с помощью команды Tools\Rave Designerменю Delphi запустим визуальный конструктор Rave Reports 5.0;

- выбором команды File\New Data Objectоткроем диалоговое окно Data Connections и выберем в нем вариант Direct Data View;

- в очередном диалоговом окне в списке Active Data Connectionsвыберем вариант RVDataSetConnection1и нажмем кнопку Finish;

- в дереве проекта в правой части окна визуального конструктора отчетов раскроем узел Data View Dictionaryи в нем раскроем вновь созданный узел DataView1;



- выбрав команду меню Tools\Report Wizards\Simple Table,запустим мастер создания простых таблиц в отчете, в котором выберем вариант DataView1и нажмем кнопку Next;

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

- на заключительном этапе работы с Мастером нажатием кнопки Generate запустим процесс генерации отчета;

- для просмотра сгенерированного отчета выберем команду File\Execute Report, в открывшемся диалоговом окне Output Options в поле Report Destination выберем переключатель Preview и нажмем ОК. Вид полученного нами отчета при просмотре приведен на рис. 9.1;

Рис. 9.1. Пример сгенерированного табличного отчета в режиме Preview

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

Рис. 9.2. Пример исправленного табличного отчета в режиме Preview

- сохраним созданный нами проект отчета в файле с произвольным именем, например Report1, и расширением .rav с помощью команды File\Save As;

- свернем или закроем диалоговое окно работы с визуальным конструктором отчета и вернемся к работе с приложением в Delphi.

6. На главную форму MainForm клиентского приложения с вкладки Rave поместим компонент RvProject и установим значение Report1.RAV (спецификация созданного нами файла проекта) свойству ProjectFile этого компонента с помощью Инспектора объектов.

7. В главной форме приложения в подпункте Отчет в табличной форме в методе Clickвызываем метод Execute, обеспечивающий выполнение отчета (в нашем примере Report1) из состава проекта отчета (компонента RvProjectl):

dm.ADOQuery1.Open;

RvProject1.Open;

try

RvProject1.Execute;

finally

RvProject1.Close;

end;//try

8. Запустим приложение, проверим работу отчета.



Задание 2.Создание отчета в свободной форме по запросу из первого задания. Создадим карточку книги для библиотечной картотеки.

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

Продолжаем работу с визуальным конструктором отчетов Rave Reports 5.0; Создаем новый отчет, для этого:

1. С помощью команды Tools\Rave Designerменю Delphi снова запустим визуальный конструктор Rave Reports 5.0.

2. Создаем новый отчет выбором команды File\New Report.

3. Устанавливаем компонент Regionс вкладки Report, который является контейнером для компонентов Band(Полоса), у которого установить следующие свойства:

Column на 2;

ColumnSpacing на 0,1;

Height на 10,6;

Width на 8,1.

4. Устанавливаем компонент DataBand component с вкладки Report в область Region), у которого установить следующие свойства:

DataView на DataView1;

KeepRowTogether на True;

Height на 3.

5. Размещаем компонент Bitmap с вкладки Standart на DataBand componentи настраиваем следующие свойства:

Image на какой-либо рисунок;

MatchSide на msBoth;

Height на 2,6;

Width на 3,8.

6. Размещаем три компонента DataText с вкладки Report на форму согласно рис. 9.3 и устанавливаем свойствам всех трех компонент следующие значения: DataView - DataView1; Font – Courier, 15, Bold; Width – 3,6. Для свойства DataField - title_book, name_author, publish соответственно.

Рис. 9.3. Пример расположения компонентов с изображением на заднем фоне

7. Размещаем три компонента Text с вкладки Standart на форму согласно рис. 9.3 и устанавливаем свойству Text – “Название книги”, “Автор”, “Издательства” соответственно, свойству Font – Courier, 14.

8. Сохранить отчет с названием Report2.rav.

9. На главную форму MainForm клиентского приложения с вкладки Rave поместим компонент RvProject и установим значение Report2.RAV (спецификация созданного нами файла проекта) свойству ProjectFile этого компонента с помощью Инспектора объектов.

10. В главной форме приложения в подпункте Отчет в свободной форме в методе Clickвызываем метод Execute, обеспечивающий выполнение отчета (в нашем примере Report2) из состава проекта отчета (компонента RvProject2):

dm.ADOQuery1.Open;

RvProject2.Open;

try

RvProject2.Execute;

finally

RvProject2.Close;

end;//try

11. Запустите приложение, проверьте работу.

Задание 3.Создание отчета по двум таблицам. Создадим отчет с группировкой, в котором сначала будут выводиться данные автора книги из таблицы Authors, а затем список книг, которые написал этот автор.

1. В проекте на форму DM с вкладки Rave поместим 2 компонента RvDataSetConnection, заменить их имена на RV_Authorsи RV_Books. У свойства DataSet установить ссылку по очереди на соответствующие компоненты ADOAuthors и ADOBooks.

Продолжаем работу с визуальным конструктором отчетов Rave Reports 5.0; Создаем новый отчет, для этого:

2. С помощью команды Tools\Rave Designer меню Delphi снова запустим визуальный конструктор Rave Reports 5.0.

3. Создаем новый отчет выбором команды File\New Report.

4. Выбором команды File\New Data Objectоткроем диалоговое окно Data Connections и выберем в нем вариант Direct Data View. В следующем окне выберем в качестве активных источников данных RV_Authors и RV_Books. В правом окне RaveProject будут добавлены разделы DataView2 и DataView3.

5. Устанавливаем компонент Region с вкладки Report, который является контейнером для компонентов Band (Полоса), у которого установить следующие свойства:

Height на 10,6;

Width на 8,1.

6. Устанавливаем 2 компонента Band с вкладки Report в область Region. Помешаем в каждую добавленную полосу по компоненту Textс вкладки Standart. В первой полосе у компонента Text меняем следующие свойства:

Fontна Courier, 15, Bold;

Text наОтчет с группировкой.

Во второй полосе у компонента Text меняем следующие свойства:

Fontна Courier, 15, Bold;

Text наФ.И.О. автора.

7. Устанавливаем 2 компонента DataBandс вкладки Report в область Region, у которых изменить свойство DataView на DataView2 и DataView3 соответственно.

Помешаем в каждую добавленную полосу по компоненту DataText с вкладки Report. В первой полосе у компонента DataText меняем следующие свойства:

DataView на DataView2;

DataField на name_author.

Ниже под компонентом DataText помещаемкомпонент Text, где меняем надпись на «Названия книг данного автора».

Во второй полосе у компонента DataText меняем следующие свойства:

DataView на DataView3;

DataField на Title_book.

Пример размещения компонент на форму представлен на рис. 9.4.

Рис. 9.4. Пример расположения компонентов отчета по двум таблицам

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

Первый компонент DataBand1 ассоциирован с основным набором данных и не обладает какими-либо специальными настройками.

Второй компонент DataBand2 определяет отношения типа «основное/подробности», используя несколько свойств. Свойство MasterDataView ссылается на представление данных основного набора данных DataView2, а свойства MasterKeyи DetailKeyссылаются на поля, при помощи которых определяется объединение, в данном случае оба этих свойства ссылаются на поле Code_author. Свойство ControllerBand ссылается на компонент DataBand1, который отображает данные из основного набора данных. Кроме того, для отображения данных из подчиненной таблицы, в данном случае Books, нужно настроить свойство компонента DataBand2 – BandStyle, нажав рядом со свойством кнопку «…». В окне Band Style Editor отметить свойство Detail(D).

9. Если вы не хотите, чтобы отображаемые подробности переходили на следующую страницу (в этом случае основные данные и часть подробностей будут располагаться на раз­ных страницах), присвойте свойству KeepRowTogether значение True.

10. Сохранить отчет с названием Report3.rav.

11. На главную форму MainForm клиентского приложения с вкладки Rave поместим компонент RvProject и установим значение Report3.RAV (спецификация созданного нами файла проекта) свойству ProjectFile этого компонента с помощью Инспектора объектов.

12. В главной форме приложения в подпункте Отчет с группировкойв методе Clickвызываем метод Execute, обеспечивающий выполнение отчета (в нашем примере Report3) из состава проекта отчета (компонента RvProject3):

dm.ADOAuthors.Open;

dm.ADOBooks.Open;

RvProject3.Open;

try

RvProject3.Execute;

finally

RvProject3.Close;

end;//try

13. Запустите приложение, проверьте работу.

Варианты заданий к лабораторной работе 9

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

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

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

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

1) Крупа 10 кг

2) Мука 20 кг

и т.д.

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


5226817943027726.html
5226843372681309.html
    PR.RU™