Забыли пароль?

Как использовать новый объект Таблица в FastReport VCL 6

Dmitriy Fedyashov

На мой взгляд очень полезное нововведение в FastReport VCL 6 – объект Таблица. Раньше нам была доступна только кросс-таблица, которая по сути представляла собой матрицу. А матрица нам нужна в специфичных отчетах. Не хватало обычной таблицы, которая удобна при масштабировании и перемещении полей. Все данные в одном контейнере и нет необходимости каждый раз при изменении отчета подгонять поля, чтобы избежать перекрытия. Это большой плюс, если вы собираетесь экспортировать отчет в табличные форматы.

Давайте рассмотрим особенности этого объекта на примере.

Добавляем объект «Таблица» на бэнд «Данные». Конечно, вы можете поместить таблицу и на другие бэнды, но тогда она не будет заполняться данными. Вернее, она будет содержать данные только из первой строки таблицы.

Размерность таблицы

По умолчанию таблица создается с пятью столбцами и пятью строками.

Управлять размерностью таблицы очень просто:

  • Первый способ. Выделяем объект «Таблица» левым кликом. В правом нижнем углу вы увидите значок, похожий на миниатюрную таблицу.

 

Потянув мышью за этот значок можно увеличить размерность таблицы в высоту или в ширину:

 

Таким же образом можно уменьшить таблицу, если перетягивать значок таблицы вверх-влево.

  • Второй способ. Выделяем таблицу мышью. В инспекторе свойств находим ColumnCount и RowCount:

 

В нашем случае количество колонок равно 2, а строк – 6.

Если задать значение меньше текущего и нажать Enter, то размерность таблицы уменьшится.

  • Третий способ.  Выбираем мышью ячейку колонки рядом с которой мы хотим вставить еще один столбец. Чтобы выбрать целый столбец, перемещаем указатель мыши чуть выше нужного столбца, за пределами таблицы. При этом появится серый значок-стрелка, указывающий на столбец. Делаем правый клик по значку или области между ним и границей таблицы. В появившемся контекстном меню выбираем значение «Добавить колонку перед» (Add column before) или «Добавить колонку после» (Add column after) в зависимости от вашего желания.

 

Из этого же меню можно удалить выделенную колонку с помощью соответствующего пункта.

Добавление/удаление строки производится точно таким же способом, как и для столбца. Только позиционируем указатель мыши не над таблицей, а слева.

 

Объединение/разделение ячеек

Для объединения ячеек, нужно выбрать мышью нужные. Правым кликом вызываем контекстное меню и выбираем пункт «Объединить ячейки» (join cell).

Объединенные ячейки можно разделять также, из контекстного меню, пункт «Разделить ячейки» (split cell).

Добавление данных

Добавлять поля в ячейки таблицы можно несколькими способами:

1)      Drug&Drop – перетаскиваем поля из области данных в нужные ячейки;

2)      Из выпадающего списка в ячейке. При этом для бэнда «Данные» обязательно должен быть выбран источник данных;

 

3)      Двойной клик по нужной ячейке. В редакторе текста нажать на иконку «Вставить выражение». В редакторе выражения выбрать поле данных.

 

4)      Групповое добавление:

  • Отмечаем нужные поля в области «Данные» с помощью левой кнопки мыши и клавиши Ctrl;
  • Перетаскиваем все поля одним разом в область между стрелкой, подсвечивающей столбец (строку) и границей таблицы:

 

Отпускаем кнопку мыши:

 

Перемещение столбцов и строк

Но возможности таблицы не исчерпываются лишь добавлением и удалением. Можно изменять порядок столбцов и строк. Для этого выделяем столбец, зажимаем клавишу Ctrl, нажимаем левую кнопку мыши и перетягиваем столбец (строку) в нужное место.

Было:

 

Стало:

 

Объекты внутри таблицы

Таблица позволяет размещать в ячейках помимо объекта Текст и другие. Ограничение накладывается лишь на таблицы, кросс-таблицы, ДБ кросс-таблицы и вложенные отчеты. Все остальные объекты можно размещать в ячейках, причем хоть все в одной ячейке одновременно. Например, картинка:

 

Объекты внутри ячеек могут расти и смещаться, так же, как и на бэнде.

Свойства объекта Таблица

У объекта «Таблица» есть два свойства, о которых стоит написать:

  • AutoSize – таблица может растягиваться и сжиматься в зависимости от контента ячеек;
  • AllowSplit – возможность разбить таблицу, если она не помещается целиком на таблице.

Давайте рассмотрим подробнее первое свойство - AutoSize. Назначать авто-размер можно столбцам и строкам. Это естественно, потому что, если растягивается одна ячейка, должны растянуться и соседние по вертикали или горизонтали.

Чтобы его использовать придется настроить бэнд «Данные». В его свойствах находим Stretched и устанавливаем в true. А для StretchMode выбираем ActualHeight. Теперь бэнд может растягиваться по высоте. Теперь нужно выбирать столбец или строку и сделать правый клик по области между стрелкой-указателем столбца/строки и границей таблицы. В контекстном меню выбираем AutoSize.

 

Нижняя строка с выключенным свойством AutoSize:

 

Нижняя строка со включенным свойством AutoSize:

 

Теперь рассмотрим свойство AllowSplit. Включить его очень просто. Для бэнда «Данные», в котором расположен объект «Таблица» нужно включить свойство AllowSplit. Сделать это можно правым кликом по заголовку бэнда. В контекстном меню выбираем нужное свойство. Либо в инспекторе свойств бэнда «Данные» также находим AllowSplit и задаем true. Вот как выглядит таблица, если это свойство отключено:

 

Как видите, следующая таблица не поместилась на странице и перенесена на следующую. А теперь включим AllowSplit.

 

Часть таблицы выведена на первой странице, остальная – на второй. Эта опция помогает экономить бумагу при распечатке отчетов с таблицами.

Пора подводить итоги. Рассмотренный объект «Таблица» оказался достаточно функциональным и, по моему мнению, будет пользовать популярностью у разработчиков отчетов за свое юзабилити.

Похожие статьи:

назад