из клиентского приложения. Цель задания − создание удаленного управле- ния правами доступа к объектам вашего табличного пространства.
Лабораторная работа №9
СОЗДАНИЕ ОТЧЕТНЫХ ФОРМ В КЛИЕНТСКОМ ПРИЛОЖЕНИИ С ПРИМЕНЕНИЕМ RAVE REPORT 5
Цель работы – научиться создавать формы отчетных документов по дан- ным БД с применением Rave Report.
Содержание работы:
1.Выполнение все заданий по ходу лабораторной работы.
2.Выполнение индивидуальных заданий.
Спасибо студенту Полозову Василию за помощь в подготовке мате- риалов к этой лабораторной работе.
Пояснения к выполнению работы
Для выполнения трех первых заданий используем пример базы данных c названием DB_Books, которая была создана в лабораторной работе №1. При выполнении примеров и заданий обращайте внимание на соот- ветствие названий БД, таблиц и других объектов проекта.
Отчеты во многом похожи на формы и тоже позволяют получить ре- зультаты работы запросов в наглядной форме, но только не на экране, а в виде распечатки на принтере. Таким образом, в результате работы отчета создается бумажный документ.
Простой отчет представляет собой отчет на основе данных из од- ного набора данных и содержит сведения, которые выводятся в таблич- ном виде без какой-либо дополнительной обработки данных (например, группирования). Размещение и вид печатаемых в отчете данных анало- гичны размещению и виду данных, отображаемых в сетке DBGrid. Отли- чием является то, что данные отчета не размещаются в форме, а представ- лены в виде бумажного документа и их нельзя редактировать.
Рассмотрим последовательность шагов, которую требуется выполнить приложению базы данных.
ВDelphi 7 есть несколько способов создания отчетов, познакомимся
скомпонентами Rave.
Задание 1. Создание отчета в табличной форме по запросу, который выби- рает из таблицы Books все поля, кроме кодов, из таблицы Publish_house −
100
название издательства и место издательства, из таблицы 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. С помощью визуального конструктора отчетов подготовим отчет и создадим файл проекта отчета. Для этого:
5.1.с помощью команды Tools\Rave Designer меню Delphi запустим визуальный конструктор Rave Reports 5.0;
5.2.выбором команды File\New Data Object откроем диалоговое окно
Data Connections и выберем в нем вариант Direct Data View;
5.3.в очередном диалоговом окне в списке Active Data Connections
выберем вариант RVDataSetConnection1 и нажмем кнопку Finish;
5.4.в дереве проекта в правой части окна визуального конструкто- ра отчетов раскроем узел Data View Dictionary и в нем раскроем вновь созданный узел DataView1;
5.5.выбрав команду меню Tools\Report Wizards\Simple Table, запус-
тим мастер создания простых таблиц в отчете, в котором выберем вариант DataView1 и нажмем кнопку Next;
5.6.на последующих шагах работы с Мастером выберем поля таб- лицы для отображения в отчете, при необходимости изменим очеред- ность следования полей, установим параметры полей страницы, текст заголовков и шрифтов, используемых в отчете;
5.7.на заключительном этапе работы с Мастером нажатием кнопки Generate запустим процесс генерации отчета;
5.8.для просмотра сгенерированного отчета выберем команду
File\Execute Report, в открывшемся диалоговом окне Output Options в
поле Report Destination выберем переключатель Preview и нажмем ОК. Вид полученного нами отчета при просмотре приведен на рис. 9.1;
101
5.9.при необходимости выполним настройку параметров (шрифта – заменить на Courier, цвета и др.) отдельных составляющих созданного отче- та, все подписи сделать на русском языке (рис. 9.2);
5.10.сохраним созданный нами проект отчета в файле с произвольным именем, например Report1, и расширением .rav с помощью команды
File\Save As;
5.11. свернем или закроем диалоговое окно работы с визуальным кон- структором отчета и вернемся к работе с приложением в Delphi.
Рис. 9.1. Пример сгенерированного табличного отчета в режиме Preview
Рис. 9.2. Пример исправленного табличного отчета в режиме Preview
6. На главную форму MainForm клиентского приложения с вкладки Rave поместим компонент RvProject и установим значение Report1.RAV
102
(спецификация созданного нами файла проекта) свойству 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.
103
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
104