На мой взгляд очень полезное нововведение в FastReport VCL 6 – объект Таблица. Раньше нам была доступна только кросс-таблица, которая по сути представляла собой матрицу. А матрица нам нужна в специфичных отчетах. Не хватало обычной таблицы, которая удобна при масштабировании и перемещении полей. Все данные в одном контейнере и нет необходимости каждый раз при изменении отчета подгонять поля, чтобы избежать перекрытия. Это большой плюс, если вы собираетесь экспортировать отчет в табличные форматы.
Давайте рассмотрим особенности этого объекта на примере.
Добавляем объект «Таблица» на бэнд «Данные». Конечно, вы можете поместить таблицу и на другие бэнды, но тогда она не будет заполняться данными. Вернее, она будет содержать данные только из первой строки таблицы.
Размерность таблицы
По умолчанию таблица создается с пятью столбцами и пятью строками.
Управлять размерностью таблицы очень просто:
Потянув мышью за этот значок можно увеличить размерность таблицы в высоту или в ширину:
Таким же образом можно уменьшить таблицу, если перетягивать значок таблицы вверх-влево.
В нашем случае количество колонок равно 2, а строк – 6.
Если задать значение меньше текущего и нажать Enter, то размерность таблицы уменьшится.
Из этого же меню можно удалить выделенную колонку с помощью соответствующего пункта.
Добавление/удаление строки производится точно таким же способом, как и для столбца. Только позиционируем указатель мыши не над таблицей, а слева.
Объединение/разделение ячеек
Для объединения ячеек, нужно выбрать мышью нужные. Правым кликом вызываем контекстное меню и выбираем пункт «Объединить ячейки» (join cell).
Объединенные ячейки можно разделять также, из контекстного меню, пункт «Разделить ячейки» (split cell).
Добавление данных
Добавлять поля в ячейки таблицы можно несколькими способами:
1) Drug&Drop – перетаскиваем поля из области данных в нужные ячейки;
2) Из выпадающего списка в ячейке. При этом для бэнда «Данные» обязательно должен быть выбран источник данных;
3) Двойной клик по нужной ячейке. В редакторе текста нажать на иконку «Вставить выражение». В редакторе выражения выбрать поле данных.
4) Групповое добавление:
Отпускаем кнопку мыши:
Перемещение столбцов и строк
Но возможности таблицы не исчерпываются лишь добавлением и удалением. Можно изменять порядок столбцов и строк. Для этого выделяем столбец, зажимаем клавишу Ctrl, нажимаем левую кнопку мыши и перетягиваем столбец (строку) в нужное место.
Было:
Стало:
Объекты внутри таблицы
Таблица позволяет размещать в ячейках помимо объекта Текст и другие. Ограничение накладывается лишь на таблицы, кросс-таблицы, ДБ кросс-таблицы и вложенные отчеты. Все остальные объекты можно размещать в ячейках, причем хоть все в одной ячейке одновременно. Например, картинка:
Объекты внутри ячеек могут расти и смещаться, так же, как и на бэнде.
Свойства объекта Таблица
У объекта «Таблица» есть два свойства, о которых стоит написать:
Давайте рассмотрим подробнее первое свойство - AutoSize. Назначать авто-размер можно столбцам и строкам. Это естественно, потому что, если растягивается одна ячейка, должны растянуться и соседние по вертикали или горизонтали.
Чтобы его использовать придется настроить бэнд «Данные». В его свойствах находим Stretched и устанавливаем в true. А для StretchMode выбираем ActualHeight. Теперь бэнд может растягиваться по высоте. Теперь нужно выбирать столбец или строку и сделать правый клик по области между стрелкой-указателем столбца/строки и границей таблицы. В контекстном меню выбираем AutoSize.
Нижняя строка с выключенным свойством AutoSize:
Нижняя строка со включенным свойством AutoSize:
Теперь рассмотрим свойство AllowSplit. Включить его очень просто. Для бэнда «Данные», в котором расположен объект «Таблица» нужно включить свойство AllowSplit. Сделать это можно правым кликом по заголовку бэнда. В контекстном меню выбираем нужное свойство. Либо в инспекторе свойств бэнда «Данные» также находим AllowSplit и задаем true. Вот как выглядит таблица, если это свойство отключено:
Как видите, следующая таблица не поместилась на странице и перенесена на следующую. А теперь включим AllowSplit.
Часть таблицы выведена на первой странице, остальная – на второй. Эта опция помогает экономить бумагу при распечатке отчетов с таблицами.
Пора подводить итоги. Рассмотренный объект «Таблица» оказался достаточно функциональным и, по моему мнению, будет пользовать популярностью у разработчиков отчетов за свое юзабилити.