Сводные отчеты

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

 

       Рассмотрим элементы таблицы:

 

_img180

 

       На рисунке мы видим таблицу с двумя строками и четырьмя столбцами. Здесь 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 создает в памяти таблицу и заполняет ее данными. При этом таблица динамически расширяется, если строки или столбца с заданным номером еще не существует.

 

       Заголовки могут иметь более одного уровня. Рассмотрим следующий пример:

 

_img181

 

       В этом примере номер, или индекс, столбца – составной, т.е. состоит из двух значений. Этот отчет требует следующих данных:

 

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 строит таблицу со сложным заголовком, рассмотрим следующий рисунок:

 

_img182

 

       Примерно так выглядит наша таблица перед обработкой. В процессе обработки FastReport объединяет ячейки заголовка с одинаковыми значениями, находящиеся на одном уровне.

 

       Следующий элемент таблицы – промежуточные итоги и итоги, демонстрирует следующий рисунок:

 

_img183

 

       Этот отчет строится на тех же данных, что и предыдущий. Столбцы, показанные серым на рисунке, вычисляются автоматически.