Лекция «Создание отчетов в Delphi» для практической работы 6 стр. 1 Виды отчетов Простой Основан на информации из одного набора данных Отчет с группировкой Простой отчет, в котором данные объединены по какимлибо критериям Отчет для связанных таблиц Основан на связанных наборах данных. Содержит главную и подчиненную часть Составной отчет Объединяет несколько видов отчетов Работа с дизайнером отчетов Rave Report – специальная программа – генератор отчетов. Вызов конструктора отчетов – меню Tools\Rave Designer. Расширение файла отчета *.rav Палитра компонентов Страница Drawing Bar Code Standard Report Zoom Lines Colors Fills Font Alignment Макет страницы отчета Поля Полоса для заголовка (подписи) всего отчета Воспроизводится один раз (Band) Назначение Графические компоненты Варианты штрихкодов Отображение статических текстов, рисунков Компоненты для отображения данных из внешних источников (поля таблиц БД) Масштаб отображения макета отчета Стиль и толщина графических линий Цвет графических объектов Заливка графических объектов Настройка параметров шрифтов Способы выравнивания объектов Полоса с данными Воспроизводится несколько раз по количеству записей в наборе (DataBand) Область, где будет размещен отчет (Region) Классы визуальных компонентов для отображения информации из БД в отчете Класс (страница) Region (Report) Band (Report) DataBand (Report) Text (Standard) Описание Выделение области страницы отчета. Для размещения компонент Band, DataBand Полоса (секция отчета) для размещения текста, графики. Служит для оформления заголовков, сносок колонтитулов Полоса отчета для просмотра данных (при печати воспроизводится столько раз, сколько записей в наборе данных) Отображение однострочного статического текста Сокращен ие Rgn Bd Dbd Txt DataText (Report) Для отображения строковых и числовых значений, связанного с ним просмотра данных Dtxt Memo (Standard) Отображение многострочного статического текста Mm DataMemo (Report) Для отображения строковых и числовых значений, связанного с ним просмотра данных Dmm CalcText (Report) Вычисляемое поле ClcTxt Лекция «Создание отчетов в Delphi» для практической работы 6 стр. 2 Некоторые свойства компонентов для отображения данных в отчете Наименование GroupDataView GroupKey BandStyle ControllerBand DataView DataField MasterDataView MasterKey DetailKey Controller CalcType Значение Body Header Group Header Row Header Detail Row Footer Group Footer Body Footer Описание Принадлежность компонентам Пример значений Узел связи для группировки Dv_stud (узел связи) Группирующее поле Pol (имя поля) Band, DataBand Стиль полосы См таблицу ниже Подчинение Dv_Gr (узел связи) Узел связи Dv_stud (узел связи) Отображаемое поле Fam (имя поля) Ссылка на главный набор Dv_Gr (узел связи) DataBand Поле главнoго НД для связи с Kod_Gr (имя поля) подчиненным Поле подчиненного НД для связи Kod_Gr (имя поля) с главным Подчинение вычисляемого поля CalcText Dv_stud (узел связи) Вычисляемая функция См таблицу ниже CalcText Стиль полосы отчета Описание Значения вычисляемой функции Заголовок в начале отчета Значение Описание Заголовок в начале группы ctAverege Среднее значение Заголовок в начале каждой записи ctCount Количество Заголовок в начале подсоединенного ctMax Максимальное значение набора записей в отношении 1:М ctMin Минимальное значение (детальная) ctSum Сумма Окончание записи Окончание группы записей Окончание отчета Альбомная ориентация страницы (Page) отчета устанавливается в инспекторе объектов Rave Designer через свойство Orientation, значение – poLandScape Дерево проекта отчёта библиотека отчётов проекта (содержит все отчёты проекта) имя отчета (указывается в методе ExecuteReport при запуске отчета) имя страницы отчета каталог глобальных страниц (содержит общие страницы для всего отчёта) соединения с данными из внешних источников узел связи доступные в узле связи поля набора данных Класс компонент управления отчётом в Delphi Класс Стр. RvDataSetConnection Сокр ащ RvDc RvTableConnection RvProject Rave RvTc RvPr Описание Компонент связи данных с отчетом Компонент связи данных с отчетом Компонент подключения отчета Имя Name Свойства Описание Имя Пример RvDc_Stud DataSet Набор данных Tb_stud Name Имя RvTc_Stud Table Набор данных Tb_stud Name Имя RvPr_Stud ProjectFile Путь к файлу подключаемого отчета Rep_stud.rav Запуск отчета осуществляется с помощью метода ExecuteReport для компоненты RvProject, в качестве параметра метода указывается имя отчета. Пример: RvPr_Stud.ExecuteReport(‘Rpt_spisok’) Лекция «Создание отчетов в Delphi» для практической работы 6 Взаимосвязь набора данных и компонентов отчета стр. 3 Лекция «Создание отчетов в Delphi» для практической работы 6 Порядок создания простого отчета I. Установить связи проекта приложения с отчетом J В модуле данных или форме, с которой будет вызван отчет, разместить компонент связи с отчетом (RvDataSetConnection) J Задать имя (пример: Rv_Ds_Stud) J Установить связь с набором данных через свойство DataSet (пример: Tb_stud) J Открыть конструктор отчета (меню Tools – Rave Designer) II. Создать новое подключение к внешним данным в отчете J J J J III. Конструирование отчета J J J J J J J J J J J J IV. Меню File – New Data Object В окне выбрать внешние данные – Direct Data View Из предложенного списка компонентов связи выбрать имя компонента связи с отчетом (Rv_Ds_Stud) Задать имя (Dv_Stud) Создать новый отчет (меню File – New Report) Задать имя (Rpt_spisok) На макете отчета разместить область отчета (Region) В область отчета добавить нужные полосы (Band, DataBand) Определить взаимоотношение полос (свойство BandStyle) В полосе Band разместить статические компоненты (Text) В полосе DataBand разместить компоненты для отображения полей (DataText) Подключить поля через свойство DataView (Dv_Stud) и DataField Применить шрифтовое оформление (страница Font) Сохранить отчет в папке проекта с именем *.rav (Rep_stud.rav) Выполнить предварительный просмотр F9 Закрыть конструктор отчетов Запуск отчета J J J J В форме установить компонент подключения отчета (RvProject) Задать имя (Rvpr_stud) Подключить созданный отчет – свойство ProjectFile (Rep_stud.rav) Написать процедуру вызова отчета (например, по кнопке): Rvpr_stud.ExecuteReport (‘Rpt_spisok’) стр. 4 Лекция «Создание отчетов в Delphi» для практической работы 8,9 Группировка данных в отчете по одному набору данных стр. 5 заголовок отчета (1) Region1: Bd_Title Список студентов с группировкой по полу заголовок группы Region1: Bd_Title_Group Пол (2) (3) Pol Группа Фамилия область данных Region1: Dbd_Data Gr Fam Итого: (5) итоги группы Region1: Bd_Itog (4) Count (6) (7) Исходный набор данных отсортировать по полю группировки I. Создать простой отчет, связанный с этим набором данных через компонент DataSetConnection II. 1. Добавить полосу заголовка отчета типа Band (пример: Bd_Title) и настроить следующие свойства: Стиль полосы (BandStyle) – заголовок отчета BodyHeader 2. Добавить полосу заголовка группы типа Band (пример: Bd_Title_Group) и настроить следующие свойства: Стиль полосы (BandStyle) – заголовок группы GroupHeader Узел связи для группировки GroupDataView (пример: Dv_stud) Поле группировки GroupKey (пример: Pol) Набор данных должен быть отсортирован по полю группировки 3. Разместить в полосе заголовка группы подпись и поле для отображения поля группировки 4. Создать полосу области данных типа DataBand (пример: Dbd_Data) и задать свойства: Узел связи DataView (пример: Dv_stud) Узел группировки GroupDataView (пример: Dv_stud) Поле группировки GroupKey (пример: Pol) 5. Разместить в области данных нужные поля 6. Добавить полосу итоговых значений группы типа Band (пример: Bd_Itog) и задать свойства: Стиль полосы BandStyle – колонтитул группы (Group Footer) Узел связи группировки GroupDataView (пример: Dv_stud) Поле группировки GroupKey (пример: Pol) 7. Разместить в полосе подпись и вычисляемое поле (CalcText) 8. Задать подчинение полосы заголовка группы и полосы итогов группы через свойство ControllerBand к области данных (для Bd_Title, Bd_Title_Group, Bd_Itog значение свойства Controller установить Dbd_Data) После присоединения индикаторы полос будут окрашены одним цветом Лекция «Создание отчетов в Delphi» для практической работы 8,9 стр. 6 Создание отчета с группировкой по связанным наборам данных Заголовок группы DataBand (Dbd_Gr) Группа [Name_gr] Специальность [kod_spec] (1) (2) Band (Bb_Title_stud) Заголовок области данных (3) Список студентов группы: Фамилия Область данных DataBand (Dbd_stud) [ (4) Дата рождения Fam] [ date_r (6) ] Итоги Band (Bd_Itog) группы Всего в группе (5) [Count(Fam)] (7) (8) Этапы создания отчета: I. II. III. Главный и подчиненный наборы связать через MasterSourse Поместить на форму два компонента для связи отчета с набором данных RvTableConnection Создать отчет с двумя узлами связи (главным и подчиненным) 1. Создать полосу заголовка группы типа DataBand (Dbd_Gr)и задать значения свойств: J J Узел связи DataView – главный набор (Dv_Gr) Стиль BandStyle – обычная 2. Разместить текст и поля главного набора Text, DataText 3. Создать полосу заголовка группы типа Band (Bb_Title_stud), стиль BandStyle – заголовок отчета BodyHeader 4. Разместить текст заголовка Text 5. Создать полосу области данных типа DataBand (Dbd_stud) J J J J J Узел связи DataView – подчиненный набор (Dv_Stud) Стиль BandStyle – детальная Detail Узел связи с главным набором MasterDataView (Dv_Gr) Поле связи в главном наборе данных MasterKey (Kod_Gr) Поле связи в подчиненном наборе данных DetailKey (Kod_Gr) 6. Разместить поля с данными DataText 7. Создать итоговую полосу типа Band (Bd_Itog), стиль BandStyle – окончание BodyFooter 8. Разместить текст Text и итоговые значения CalcText 9. Установить взаимосвязь полос J J Заголовок области данных типа Band (Bb_Title_stud) и итоговая полоса типа Band (Bd_Itog) свойство подчинение Controller Band – области данных типа DataBand (Dbd_stud) Область данных типа DataBand (Dbd_stud) подчинение заголовку группы типа DataBand (Dbd_gr) Добавление в отчет системной даты, нумерация страниц Для вывода значений системных переменных в отчете используется компонента DataText (свойство DataField) со страницы Rave. Системные переменные Назначение Пример (Report Variables) CurrentPage RelativePage TotalPages DateShort DateLong DateUS DateInter TimeShort TimeLong TimeAMPM Time24 Номер текущей страницы Общее количество страниц в отчете Формат даты Формат времени 2 4 28.12.2005 28 декабрь 2005 г. 12.28.05 28.12.05 10:48 10:48:15 10:48 10:48 Лекция «Создание отчетов в Delphi» для практической работы 6 стр. 7 Использование в отчете переменных, заданных в приложении При фильтрации набора данных можно в отчете выводить значения критериев поиска, введенные пользователем Этапы: 1. в отчете создать поле (компонент DataText) и задать имя переменной 2. При запуске отчета из SetParam('имя' , значение) проекта procedure TForm1.Btn_OtchetClick(Sender: TObject); var aa: string; begin aa:= edt_Fam ; Rv.SetParam('a' , aa); Rv.Execute; end; передать значение созданной переменной через метод