Создание отчетов в Delphi

Автор работы: Пользователь скрыл имя, 01 Апреля 2014 в 14:21, контрольная работа

Краткое описание

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

Вложенные файлы: 1 файл

Создание отчетов в Delphi.doc

— 321.50 Кб (Скачать файл)

Рис. 9. Компоненты Rave Reports в приложении Delphi

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

  1. При помощи визуальной среды разработки Rave Reports необходимо создать проект отчета и сохранить его.
  2. Перенести в проект приложения в Delphi компонент TRvProject и связать его с файлом проекта отчета при помощи свойства ProjectFile.
  3. Перенести в проект приложения в Delphi компонент TRvSystem и связать его с компонентом TRvProject. ля этого используется свойство Engine компонента TRvProject.
  4. Написать код приложения, обеспечивающий просмотр и печать отчета (при необходимости и другие операции), используя методы компонента TRvProject.

 

3.2. Пример создания отчета

Запустите среду визуальной среды разработки Rave Reports для этого в Delphi выбирите команду меню Tools ► Rave Designer.

Визуальная среда создания отчетов входит в состав генератора отчетов Rave Reports 5.0. В отличие от генератора отчетов Quick Report, который поставлялся с Delphi 6 и более ранними версиями, визуальная среда в Rave Reports значительно облегчает самый трудоемкий этап в процессе создания отчета и его включения в состав приложения — постраничную разработку шаблона отчета.

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

Каждый файл RAV может включать несколько независимых шаблонов отчетов. Затем эти шаблоны используются в компонентах TRvProject и служат основой для создания и печати отчетов в приложении.

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

    1. загрузка, редактирование и сохранение шаблонов отчетов в файлах RAV; 
    2. создание структуры отчета и определение его основных свойств;
    3. разработка страниц отчета;
    4. подключение к отчету источников данных и использование этих данных при оформлении страниц отчетов;
    5. генерация отчета на основе созданного шаблона, его предварительный просмотр или печать.

Проект отчета

Визуальная среда работает с проектом отчета, который создается или загружается из файла с расширением rav. Состав проекта отчета отображается в дереве проекта отчета в панели в правой части окна визуальной среды (рис. 24.2).

Корневой элемент RaveProject содержит три дочерние ветви:  

  1. Report Library — библиотека отчетов включает все шаблоны отчетов, содержащиеся в этом проекте;
  2. Global Page Catalog — каталог глобальных страниц содержит перечень страниц, не принадлежащих какому-либо из отчетов проекта;  
  3. Data View Dictionary — словарь просмотров данных содержит созданные соединения с внешними источниками данных.

Рис. 10. Пример дерева проекта отчета

Для начала создайте в визуальной среде Rave Reports новый проект (команда File | New главного меню). Обратите внимание, что по умолчанию вместе с проектом создается первый отчет Reportl с одной страницей Pagel. Его мы и используем, переименовав в UspRepor рис. 10. Сохраните проект, присвоив ему  имя UspReport.

 

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


Рис. 11 Задание имени отчета

Соединение с источником данных и просмотры

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

В Rave Reports существуют два типа соединений с источниками данных (рис. 12):

    1. соединение через драйвер Rave Reports;
    2. соединение через компонент Rave Reports и компонент набора данных в приложении Delphi.

Рис. 12 Соединения с источниками данных в отчете Rave Reports

В дальнейшем мы будем использовать второй тип соединений. Для этого на основную форму приложения поместим компонент TQuery, зададим ему имя QueryReport, и напишем запрос в свойстве SQL, который будет содержать всю необходимую информацию для нашего будущего отчета:

SELECT Kursant.Fio_k, Discipl.Name_d, Uspev.Ocenka

FROM Kursant, Uspev, Discipl

WHERE  Discipl.N_Disc = Uspev.N_Disc AND Kursant.Num_VB =  Uspev.Num_VB

Установим свойство Active  в значение True, если мы не допустили ошибок в тексте запроса то свойство установится.

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

Компонент TRvTableConnection работает с компонентом TTаblе. Для связывания с таблицей BDE используется свойство Table.

Компонент TRvQueryConnection работает с компонентом TQuery для связывания с запросом используется свойство Query.

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

Рис. 13 Настройка компонента доступа к данным TRvQueryConnection

Теперь вернемся в окно Rave Designer и создадим соединение с источником данных.

Для этого необходимо воспользоваться командой главного меню File | New Data Object. После этого открывается диалог выбора типа объекта Data Connections рис.14, в котором выберем объект просмотра Direct Data View

Рис. 14 Создание соединения с источником данных.

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

Рис. 15. Список доступных соединений из приложения Delphi

После создания объект прямого просмотра (компонент DataView) доступен в дереве проекта и может быть использован. В его состав входят все поля набора данных, связанного в приложении Delphi с компонентом соединения. И их можно подключить к элементам оформления нужного отчета.

После выполненных действий дерево проекта отчета должно выглядеть так как представлено на рис. 16.

Рис. 16 Дерево проекта отчета после настройки соединения с источником данных

Вернемся к созданию шаблона нашего отчета.

Рассмотрим структурные элементы.

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

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

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

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

Продолжим создание шаблона отчета:

Для быстрого создания заготовки отчета воспользуемся мастером выберем команду Tools ►Report Wizards ►Simple Tables. В появившемся окне нажимаем кнопку Next, в соедующем окне выберем все поля, которые будут включены в отчет см.рис.17.

Рис. 17 Диалог выбора поля, включаемых в отчет

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

Рис. 18 Диалог настройки с названием отчета

В следующем окне можно задать шрифт заголовка, изменим шрифт на «MS Sans Serif» для корректного отображения русских букв и установим размер шрифта 20 пунктов.

ВАЖНО. Для правильного отображения русских букв у всех элементов DataText необходимо с помощью свойства Font установить шрифт «MS Sans Serif».


Результат работы мастера представлен на рис. 19

Рис. 19 Результат работы мастера отчетов

Откорректируем отчет для придания ему нужного нам вида, для этого:

1. В секции DataView1DataBand (это секция заголовков таблицы) изменим шрифт Для компонентов Fio_k, Name_d и Ocenka на «MS Sans Serif» и дадим им русские названия: ФИО курсанта, Дисциплина, Оценка

2. Для компонентов Fio_k, Name_d и Ocenka установим шрифт «MS Sans Serif».

3. Добавим нумерацию страниц для перенесем на страницу элемент Section со страницы Standard Палитры инструментов и поместим его в верхней части страницы отчета. Эта секция будет содержать номера страниц.

Поместим в секции элемент DataText — нам необходимо его свойство DataFieid. Редактор свойства Data Text Editor (рис. 11) позволяет настраивать свойство так, чтобы элемент мог отображать разнообразные данные. Сейчас нас интересуют номера страниц отчета.

Из списка Report Variables, который содержит глобальные переменные отчета, необходимо выбрать переменную CurrentPage. Затем нужно щелкнуть на кнопке Insert Report Var и переменная Report. CurrentPage появится в поле Data Text в нижней части диалога. Эта переменная при печати отчета будет содержать порядковый номер текущей страницы.

 

Рис. 20. Редактор свойства DataField элемента DataText

Аналогичным образом добавим переменную TotalPages, которая возвращает общее число страниц отчета. Затем вручную отредактируем текст в поле Data Text:

'Страница ' + Report. CurrentPage + ' из ' + Report.TotalPages

Шаблон номера страницы готов. Но для того, чтобы механизм нумерации заработал, необходимо перенести на страницу невизуальный элемент pageNuminit (закладка Standart). Он будет работать автоматически. Единственное, что нужно сделать, — это настроить свойство initvalue, в котором задается номер начальной страницы.

4. Для отображения итога разместим  компонент Band, установим для него свойства

    • Name=FooterBand,

5. Разместим компонент Text на компоненте Band и установим для него следующие свойства:

    • Font= MS Sans Serif,12,Bold,
    • Text= Итого оценок:
    1. Для подсчета количества оценок воспользуемся компонентом CalcText (закладка Report) разместим его левее компонента Text и установим для него следующие свойства:
    • CalcType= ctCount,
    • Controller = DataView1DataBand
    • DataField= Ocenka,
    • DataView= DataView1,
    • Font= MS Sans Serif,12,Bold,

Результат готового шаблона представлен на рис. 21

Рис. 21 Готовый шаблон отчета

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

Компонент отчета TRvProject

Компонент TRvProject обеспечивает представление в приложении отчета. Для того чтобы связать проект отчета Rave Reports с компонентом, используется свойство

property ProjectFile: string;

До начала печати необходимо связать компонент TRvProject с компонентом управления отчетом TRvSystem. Для этого достаточно передать в свойстве

property Engine: TRpComponent;

ссылку на компонент TRvSystem.

Организуем вызов отчета из Delphi.

Разместим на основной форме компонент TRvSystem и TRvProject, для компонента TRvProject установим следующие свойства:

    • Engine =RvSystem1,
    • ProjectFile= D:\USER \UspevKursant.rav (имя файла шаблона отчета, куда мы его сохранили)

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

 

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

RvSystem1.DoNativeOutput := False;

//Режим предварительного просмотра

 RvSystem1.DefaultDest := rdPreview;

// Убираем из свойства SystemSetups опцию ssAllowSetup эта опция разрешает или запрещает //использование диалога настройки печати компонента

 RvSystem1.SystemSetups := RvSystem1.SystemSetups - [ssAllowSetup];

//Печать отчета

 rvProject1.Execute;

Результат сформированного отчета представлен на рис. 22

Рис. 22 Сформированный отчет

 


Информация о работе Создание отчетов в Delphi