Новые возможности и сравнения объектов Matrix и AdvancedMatrix

23.03.2022

AdvancedMatrix

Совсем недавно в FastReport .NET появился объект AdvancedMatrix. В этой статье мы рассмотрим структуру новой матрицы, её новые возможности, а также сравним старую и новую матрицу.

Сперва познакомимся со структурой матрицы. Она состоит из следующих элементов:

Структура новой матрицы

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

Угол

Ячейки, расположенные в углу матрицы, могут содержать произвольную информацию. Вы также можете разбивать или объединять их по своему усмотрению.

Заголовок

Заголовок матрицы может содержать два типа элементов:

  • “простой элемент” для отображения статической информации, например, текста "Итого".
  • “группа” отображает список значений, сгруппированных по определенному критерию.

Заголовок имеет древовидную структуру, где корневой элемент невидимый, но он содержит видимые элементы первого уровня.

Допускается произвольное расположение элементов, например, заголовок может не иметь ни одной группы, либо иметь несколько, расположенных рядом. Итоги также могут располагаться произвольным образом.

В режиме дизайна матрица отображает визуальные подсказки в области заголовков:

Подсказки для матрицы

Последний элемент — это ячейки в области данных, которые, как правило, содержат агрегатную функцию.

Итак, мы рассмотрели более подробно элементы новой матрицы. Давайте же теперь узнаем, какие новые функции были добавлены. Вот список нововведений.

  • Заголовки строк и колонок могут содержать группы и простые элементы в произвольном порядке. Это позволяет строить асимметричные отчеты.
  • Кнопки сворачивания позволяют интерактивно управлять видимостью отдельных элементов.
  • Кнопки сортировки позволяют интерактивно отсортировать матрицу по выбранным значениям, в том числе по значениям итогов.
  • Группировка Top N позволяет отобразить N значений в заголовке, а остальные значения сгруппировать в отдельный элемент с возможностью разворачивания.
  • Вывод заголовков матрицы в ступенчатом виде.
  • Сортировка заголовков по значениям итогов.
  • Новый набор агрегатных функций.
  • Поддержка пользовательских агрегатных функций.
  • Широкий набор специальных функций, позволяющих получить значения итогов, соседних ячеек, а также функции для расчета процентов.
  • Поддержка объектов "Искрографик" и "Индикатор прогресса" в ячейках данных.

Далее, мы взглянем на скриншот, который наглядно покажет расположение кнопок.

Новый функционал наглядно

Мы можем заметить, что в AdvancedMatrix в основном были добавлены функции, которые предоставляют более гибкие возможности и самое важное - удобство.

Интерактивное сворачивание и разворачивание позволяет скрыть или показать необходимые данные.

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

Давайте теперь приступим к настройке матрицы. Для того, чтобы настроить всю матрицу, вам нужно:

1). Настроить заголовки;
2). Настроить ячейки данных;
3). Добавить итоги. Этот шаг лучше выполнять в последнюю очередь, чтобы сэкономить время на настройку новых ячеек данных.

Не забываем, что матрица должна быть подключена к источнику данных, за это отвечает свойство DataSource.

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

Перетаскивание через Drag and Drop

Для удаления элемента выберите в контекстном меню пункт "Удалить". Вы можете удалить только выбранный элемент, или дерево элементов (выбранный элемент и все его дочерние элементы).

Также удалить элемент можно, нажав клавишу Delete. В этом случае удаляется только выбранный элемент.

Теперь вам доступно перемещение элемента. Чтобы расположить элемент на новом месте, выделите его с помощью левой кнопки мыши. Элемент будет выделен толстой черной рамкой (как показано на скриншоте).

Выделение элемента

Затем схватить элемент и переместить на новое место.

Захват элемента

Отпустить кнопку мыши, и элемент будет перемещен на новое место:

Перемещение элемента на новое место

И наконец, редактирование. Для вызова редактора элемента сделайте на нем двойной щелчок левой кнопкой мыши, или выберите пункт "Редактировать..." в контекстном меню. Еще вызвать редактор можно клавишей Enter.

Для того, чтобы вызвать контекстное меню, выделите любой элемент матрицы, а затем щелкните правой кнопкой мыши на области в левом верхнем углу матрицы.

Вызов контекстного меню

В меню доступны следующие команды.

  • Стиль - доступен из предустановленных вариантов.
  • Поменять местами колонки и строки - позволяет быстро поменять местами колонки и строки в матрице.
  • Повторять заголовки на новой странице - если матрица занимает несколько страниц, то на каждой странице будут напечатаны заголовки колонок и строк.

Подытожим. Мы с вами узнали, как нужно настраивать таблицу и разобрались с её структурой. В целом, всё было сделано максимально просто и удобно.

Давайте создадим свою матрицу в дизайнере. Для этого нам нужно найти объект Матрица, нажать на него и в выпадающем списке выбрать Advanced Matrix.

Добавление объекта Advanced Matrix

Перемещаем объект в бэнд Data, заполняем его данными и добавляем итоги.

Заполненный объект

Теперь задаем ступенчатое отображение. Для этого нужно два раза нажать на элемент, перейти во вкладку прочие и поставить галочку в пункте Ступенчатое отображение. Далее, включим кнопки сворачивания. Нажимаем правой кнопкой мыши на нужном элементе и выбираем пункт кнопка сворачивания. Теперь, наша матрица выглядит в дизайнере выглядит следующим образом:

Отображение новых кнопок в Advanced Matrix

И вот так в превью:

Новая матрица в превью

После ознакомления со структурой мы узнали о новых возможностях AdvancedMatrix,её настройке и о способе создания из дизайнера. Давайте взглянем на один из готовых шаблонов Advanced Matrix, который находится в FastReport.Net Demo.

Шаблон Advanced Matrix - Collapse+Sort

По этому шаблону вы можете ознакомиться с новой матрицей, сами попробовать новый функционал в ней. Дополнительную информацию можно найти в нашей документации.

Из всего вышеперечисленного можно сделать вывод, что с новой матрицей намного удобнее работать, ведь есть возможность интерактивной сортировки, блочное или ступенчатое размещение элементов, благодаря которым невозможно запутаться в матрице. Если у вас возникнут вопросы, обратитесь в нашу поддержку. Мы с удовольствием ответим на ваши вопросы. И удачи вам в использовании!

20 ноября 2024

Локализация и смена языков в FastReport VCL

FastReport VCL поддерживает 40 языков для локализации интерфейса и позволяет изменять язык на лету через меню или код, без перекомпиляции.
1 ноября 2024

Новые возможности редактора отчетов FastReport VCL

Рассматриваем новые возможности редактора отчетов: выносные линии, подсветка пересекающихся объектов, обновлённые деревья отчетов и данных.
30 октября 2024

Использование стилей при создании отчетов в FastReport VCL

В статье подробно рассматривается одна из новых возможностей FastReport VCL – применение стилей и страниц стилей.