Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Konspekt_lektsiy_PPP.doc
Скачиваний:
104
Добавлен:
10.06.2015
Размер:
1.03 Mб
Скачать

Тема 4.6. Формирование и вывод отчетов

Структурная схема терминов

Назначение и виды отчетов

Отчет – это печатный документ, содержащий данные, получаемые в результате выполнения запроса к БД. Можно выделить следующие виды отчетов:

  • простой отчет;

  • отчет с группированием данных;

  • отчет для таблиц, связанных отношением главный-подчиненный;

  • составной отчет.

Отчет состоит из отдельных полос – составных частей, определяющих содержание и внешний вид документа.

Свойства:

  • Page определяет параметры страницы отчета;

  • Frame – параметры рамки;

  • PrinterSettings – параметры принтера;

  • PrintifEmty – выводить ли пустой отчет на печать;

  • SnaptoGrid – способ выравнивания элементов отчета;

  • ShowProgress – отображать ли процесс подготовки отчета к печати или просмотру в отдельном окне. По умолчанию True. Процесс может быть прерван нажатием клавиши <Esc>.

Методы:

  • Print – предназначен для печати отчета;

  • Preview – предварительный просмотр;

  • PrinterSetup – установка текущего принтера и его параметров перед началом печати.

Полоса отчета

Является основным элементом отчета, где размещаются другие его компоненты.

Тип полосы определяется свойством BandType, принимающим значения вида:

  • rbTitle – заголовок отчета, выводится один раз на первой странице под верхним колонтитулом, если он есть;

  • rbPageHeader – верхний колонтитул, печатается в начале каждой страницы, содержит дату и/или номер страницы;

  • rbDetail – данные записей набора данных;

  • rbPageFooter – нижний колонтитул, печатается в начале каждой страницы, содержит дату и/или номер страницы;

  • rbSummary – итог отчета, выводится в конце отчета, но выше нижнего колонтитула;

  • rbGroupHeader – заголовок группы, выводится для каждой группы;

  • rbColumnHeader – заголовки столбцов, печатаемые один раз на каждой странице над данными;

  • и др.

Компоненты, размещаемые в полосе отчета

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

Обычно используются следующие компоненты отчета:

  • QRLabel – надпись с текстом, для полос данных обычно не используется;

  • QRDBText – значение поля записи БД, обычно размещается в полосе данных;

  • QRExpr – выражение, возможное с применением значений полей, обычно размещается в полосах данных и нижних колонтитулах;

  • QRSysData – системная информация для итоговых полос и колонтитулов;

  • QRImage – графическое изображение, используется в любой полосе;

  • QRShape – геометрическая фигура, используется в любой полосе.

Простой отчет

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

Простой отчет может содержать следующие полосы:

  • верхний колонтитул (rbPageHeader);

  • заголовок отчета (rbTitle);

  • заголовки столбцов (rbColumnHeader);

  • данные (rbDetail);

  • итог отчета (rbSummary);

  • нижний колонтитул (rbPageFooter).

Отчет с группированием данных

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

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

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

В простом отчете с группированием данных вместо полосы данных надо использовать комбинацию компонентов в указанном порядке:

  • QRGroup – полоса группы;

  • QRBand – полоса данных;

  • QRBand – полоса нижнего колонтитула.

Условие группировки определяется свойством Expression компонента QGroup. В полосе нижнего колонтитула обычно размещаются сводные данные о группе, например, суммарное значение.

Отчет для таблиц, связанных отношением "главный-подчиненный"

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

  • полосы данных QRBand (название Detail);

  • полосы детализации QRSubDetail (название SubDetail).

Компонент QRSubDetail при помещении в отчет автоматически располагается после полосы данных. Полосы данных и детализации образуют центральную часть группы.

Для полосы данных в качестве набора данных устанавливается главный набор. В полосе данных обычно размещаются компоненты QRDBText, связанные с полями этого же набора, и компоненты QRLabel, текст которых является заголовками столбцов данных.

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

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

Составной отчет

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

Свойство Reports составного отчета содержит список отчетов. Новые отчеты добавляются к этому списку методом Add.

Предварительный просмотр составного отчета можно выполнить с помощью метода QRCompositeReport1.Preview.

Печать отчетов

Выполняется методом Print. Печать может быть выполнена из предварительного просмотра.

В виде отчета может быть выведена несвязанная с БД информация из текстового файла. Для этого используется компонент QRStringsBand. Этот компонент представляет собой строковую полосу отчета, которая в своем свойстве Items типа TStrings содержит коллекцию строк, задающих выводимый текст. Значение свойства управляется методами Add и Delete. Загрузка содержимого из файла выполняется методом LoadFromFile.

В текстовом отчете могут присутствовать следующие полосы:

  • верхний колонтитул;

  • заголовок отчета;

  • строковая полоса;

  • итог отчета;

  • нижний колонтитул.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]