Сводные отчеты |
Этот вид отчета имеет табличную структуру, т.е. состоит из строк и столбцов, причем заранее неизвестно, сколько строк и столбцов будет содержать таблица. Поэтому отчет растет не только вниз, как уже рассмотренные нами типы отчетов, но и вбок. Типичный пример отчета такого типа – бухгалтерская "шахматка".
Рассмотрим элементы таблицы:
На рисунке мы видим таблицу с двумя строками и четырьмя столбцами. Здесь a, b – заголовки строк, 1, 2, 3, 4 – заголовки столбцов, a1..a4, b1..b4 – ячейки. Чтобы построить такой отчет, нам понадобится всего один набор данных (запрос или таблица), который имеет три поля и содержит следующие данные:
a 1 a1 a 2 a2 a 3 a3 a 4 a4 b 1 b1 b 2 b2 b 3 b3 b 4 b4
Как видно, первое поле содержит номер строки, второе – номер столбца, третье – содержимое ячейки на пересечении строки и столбца с указанным номером. При построении отчета FastReport создает в памяти таблицу и заполняет ее данными. При этом таблица динамически расширяется, если строки или столбца с заданным номером еще не существует.
Заголовки могут иметь более одного уровня. Рассмотрим следующий пример:
В этом примере номер, или индекс, столбца – составной, т.е. состоит из двух значений. Этот отчет требует следующих данных:
a 10 1 a10.1 a 10 2 a10.2 a 20 1 a20.1 a 20 2 a20.2 b 10 1 b10.1 b 10 2 b10.2 b 20 1 b20.1 b 20 2 b20.2
Здесь первое поле, как и прежде, содержит индекс строки, второе и третье поля – индекс колонки. Последнее поле содержит значение ячейки. Чтобы вы лучше представляли, как FastReport строит таблицу со сложным заголовком, рассмотрим следующий рисунок:
Примерно так выглядит наша таблица перед обработкой. В процессе обработки FastReport объединяет ячейки заголовка с одинаковыми значениями, находящиеся на одном уровне.
Следующий элемент таблицы – промежуточные итоги и итоги, демонстрирует следующий рисунок:
Этот отчет строится на тех же данных, что и предыдущий. Столбцы, показанные серым на рисунке, вычисляются автоматически.
|