Отчет с группированием данных
Выводимые в отчете данные можно группировать по определенному признаку. Для группирования записей отчета по определенному полю в наборе данных должен быть установлен текущий индекс, построенный по этому полю. Если индекс не установлен, то ошибки не возникает, но группирование выполняется неправильно.
Можно группировать данные, находящиеся в одном или в связанных наборах данных.
Для оформления группы используется компонент QRGroup, который автоматически размещается после заголовков столбцов, а в его свойстве "мастер" указывается компонент отчета.
В простом отчете с группированием данных вместо полосы данных надо использовать комбинацию компонентов в указанном порядке:
- QRGroup – полоса группы;
- QRBand – полоса данных;
- QRBand – полоса нижнего колонтитула.
Условие группировки определяется свойством Expression компонента QGroup. В полосе нижнего колонтитула обычно размещаются сводные данные о группе, например, суммарное значение.
Отчет для таблиц, связанных отношением "главный-подчиненный"
Выполняется для связанных наборов данных. Компоненты наборов данных можно разместить на форме отчета или на другой форме, с помощью которой пользователь управляет этими наборами данных. Основной частью отчета является комбинация:
- полосы данных QRBand (название Detail);
- полосы детализации QRSubDetail (название SubDetail).
Компонент QRSubDetail при помещении в отчет автоматически располагается после полосы данных. Полосы данных и детализации образуют центральную часть группы.
Для полосы данных в качестве набора данных устанавливается главный набор. В полосе данных обычно размещаются компоненты QRDBText, связанные с полями этого же набора, и компоненты QRLabel, текст которых является заголовками столбцов данных.
Для полосы детализации устанавливается подчиненный набор данных. В ней обычно располагаются компоненты QRDBText и QRExpr, с помощью которых выводятся значения полей записей подчиненного набора данных.
При необходимости для группы можно задать верхний и нижний колонтитулы и заголовок отчета.
Составной отчет
Объединяет в себе несколько отчетов и представлен компонентом QRCompositeReport, который можно разместить на любой форме. На начальном этапе составной отчет не содержит ни одного отчета. Для добавления нового отчета используется событие OnAddReport, добавляемые отчеты должны быть предварительно подготовлены.
Procedure fmMain.QRCompositeReport1Add(Sender: TObject);
begin
QRCompositeReport1.Reports.Add(fmReportSimple.QuickRep1);
QRCompositeReport1.Reports.Add(fmReportMasterDetail.QuickRep1);
End;
Свойство Reports составного отчета содержит список отчетов. Новые отчеты добавляются к этому списку методом Add.
Предварительный просмотр составного отчета можно выполнить с помощью метода QRCompositeReport1.Preview.
Печать отчетов
Выполняется методом Print. Печать может быть выполнена из предварительного просмотра.
В виде отчета может быть выведена несвязанная с БД информация из текстового файла. Для этого используется компонент QRStringsBand. Этот компонент представляет собой строковую полосу отчета, которая в своем свойстве Items типа TStrings содержит коллекцию строк, задающих выводимый текст. Значение свойства управляется методами Add и Delete. Загрузка содержимого из файла выполняется методом LoadFromFile.
В текстовом отчете могут присутствовать следующие полосы:
- верхний колонтитул;
- заголовок отчета;
- строковая полоса;
- итог отчета;
- нижний колонтитул.
Для вывода текста из свойства Items в полосе необходимо разместить компонент QRExpr. Управление выводом информации в нем производится при помощи свойств:
- Expression: String – имя строковой полосы, например, QRStringsBand;
- AutoSize: Boolean – возможность автоматического изменения размеров по длине выводимой строки;
- AutoStretch: Boolean – возможность автоматического переноса строки на следующую строку;
- Left: Integer – левая граница для размещения выводимых строк;
- With: Integer – ширина выводимых строк.
Для вывода текста на всю ширину строковой полосы нужно установить значения:
QRExpr1.AutoSize:=false;
QRExpr1.AutoStretch:=true;
QRExpr1.Left:=0;
QRExpr1.With:= QRStringsBand1.With;
На главной форме размещают компоненты OpenDialog и CommandButton. При нажатии кнопки открывается диалог выбора файла и в случае его успешного завершения производится предварительный просмотр отчета методом Preview.
Пример
Uses unit1;
...
procedure TForm1.Button1Click()Sender: TObject;
begin
if OpenDialog1.Execute then begin
Form2.QRStringsBand1.Items.Clear;
Form2.QRStringsBand1.Items.LoadFromFile(OpenDialog1.FileName);
Form2.QRLabel1.Caption:=' Файл'+ OpenDialog1.FileName;
Form2.QRExpr1.AutoSize:=false;
Form2.QRExpr1.Left:=0;
Form2.QRExpr1.With:=Form2.QRStringsBand1.With;
Form2.QuickRep1.Preview;
end;
end;
Список литературы:
1. Фуфаев Э.В., Фуфаев Д.Э. Разработка и эксплуатация удаленных баз данных: учебник для студ. сред. проф. образования / под ред. Э.В. Фуфаев, Д.Э. Фуфаев. – Москва: Издательский центр «Академия», 2008. – 256 с.
2. Алексеев А.П. Информатика 2007. – М.: СОЛОН – ПРЕСС, 2007. – 608 с.
3. Кузин А.В., Демин В.М.Разработка баз данных в системе Microsoft Access: учебник / А.В. Кузин, В.М. Демин. – 3-е изд. – М.: Форум, 2012. – 224 с.
4. Голицын О.Л., Максимов Н.В., Попов И.И.Базы данных: Учебное пособие. – М.: ФОРУМ: ИНФРА-М, 2003.
5. http://www.chemisk.narod.ru/html/rbd01.html - Разработка и эксплуатация удаленных баз данных.
6. http://pgtk.edu.ru/lections/doku.php?id=reubd – Разработка и эксплуатация удаленных баз данных.
Дата добавления: 2021-09-25; просмотров: 349;