logo
small logo
  • Продукты
  • Купить
  • Поддержка
  • О нас
  • Клиентская панель Поддержка
  • Главная
  • /
  • Статьи
  • /
  • Сложный отчёт с несколькими матрицами в FastReport .NET
  • Как выбрать топ значений в матрице

    22 апреля 2021 г.

    Статья актуальна до версии 2022.1. В FastReport.NET есть прекрасный инструмент для вывода данных в виде сводной

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

    23 марта 2022 г.

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

    Подробнее
  • Как создать собственный итог в матрице FastReport .NET

    8 октября 2018 г.

    Объект Матрица в FastReport .NET очень хорошо выполняет типовые задачи по отображению сводных таблиц. Но,

    Подробнее
  • Как фильтровать построенную матрицу

    23 июня 2021 г.

    В FastReport объект Матрица позволяет нам отфильтровать данные. Это одна из самых востребованных функциональных возможностей

    Подробнее
  • Как сделать сортировку в матрице по показателю

    30 июня 2021 г.

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

    Подробнее

Сложный отчёт с несколькими матрицами в FastReport .NET

16 июня 2021 г.

Сегодня мы рассмотрим непростой отчёт с бэнд-ориентированным подходом, который обычно используется в FastReport. Например, отчет по продажам с разбивкой по годам, кварталам и месяцам, в котором требуется вывести три таблицы с данными, но они должны быть расположены не сверху вниз - а слева направо. К счастью, мы можем сделать такой отчёт в FastReport .NET, используя несколько объектов “Матрица”.

Итак, в первую очередь рассмотрим данные. Они сгенерированы случайным образом, по определённому шаблону:

Шаблон данных

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

Мы будем использовать объект Матрица для вывода данных. Перейдем же к его настройкам:

Настройка матрицы

Название страны и тип фрукта будут нашими строками, в рядах будет разбивка по годам, кварталам и месяцам, и, наконец, количество фруктов будет ячейками матрицы.

Итак, мы указали, какие данные будут использованы в матрице. Включим границы для всех ячеек, и настроим параметры страницы. А чтобы наш отчёт находился на одном листе - включим “неограниченная высота” и “неограниченная ширина”. После этого подготовим отчёт, который будет иметь вид:

Сформированный отчёт

Данные продолжаются вправо для 2018 и 2019 годов.

Итак, в первую очередь заметим, что для всех столбцов автоматически были добавлены итоги. Если они не нужны, то их можно удалить, что мы и сделаем. Чтобы вместо пустых ячеек отображались нули - нужно задать свойство NullValue у ячейки. По итогу в ней должен появиться 0. Кроме того, отключим у таблицы авторазмер и настроим результат:

Сформированный отчёт

Наша задача - сделать статистику с помощью нескольких матриц:

1) По годам;
2) По кварталам;
3) По месяцам.

Копируем матрицу и располагаем две её копии рядом с оригиналом. Включаем “дополнительное место в дизайнере”, чтобы всё поместилось. Заметьте, что при копировании матрицы она отвязывается от данных и нужно будет выбрать требуемую таблицу данных в свойстве DataSource.

Удалим ненужные поля из матриц и расположим их поближе друг к другу:

Настройка матрицы

Попробуем подготовить такой отчёт:

Примерный вид будущего отчёта

Как вы видите в отчёте есть несколько проблем:

1) Из-за разной высоты заголовков матрицы выводятся неодинаковым образом;
2) Страны и виды фруктов повторяются во второй и третьей матрицах.

Увеличим высоту ряда “Год” в первой и второй матрицах. Чтобы выбрать ряд, вы можете навести мышь на левую часть матрицы. Когда мышь будет над одним из рядов, она превратится в чёрную стрелку вправо. Кроме этого, вы можете выбрать ряд в дереве отчёта:

Дерево отчёта

И теперь все заголовки одной и той же высоты:

Настройка заголовков

Матрицы в FastReport позволяют “скрыть” колонку или ряд, уменьшив их размер до нуля. В нашем случае нам нужно скрыть “название стран” с “фруктами” во второй и третьей матрицах. Выберем колонку, и уменьшим её свойство Width (ширина) до нуля:

Скрываем колонку из матрицы

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

Готовый шаблон отчёта

Заметьте, это всё ещё три отдельные матрицы, а не одна. Но благодаря тому, что у них идентичная высота заголовков и ячеек, а также один и тот же набор данных - они функционируют как одна сложная матрица.

Итак, взглянем на отчёт теперь:

Итоговый отчёт

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

И, напоследок, сделаем нашу матрицу немного красивее:

Последние изменения шаблона

Чтобы, например, добавить слово к номеру года вам нужно помнить, что в полях матрицы находятся выражения. Если в поле будет такой текст, то будет показана ошибка:

Year [fruit_import_database.year]

Правильно же делать это таким образом:

"Year " + [fruit_import_database.year]
О продукте Купить
avatar
Alexey Tantzura
Поддержка и тестирование
Fast Reports Team: Alexey Tantzura - Quality Assurance at Fast Reports
.NET FastReport Matrix

Добавить комментарий
logo
  • +7(800)551-75-80
  • info@fastreport.ru
  • Ростов-на-Дону, Россия, 344082, ул.Обороны 24, офис 311
  • Купить
  • Загрузить
  • Документация
  • Отзывы
  • Как деинсталировать
  • FAQ
  • Видео уроки
  • Форум
  • Условия оказания поддержки
  • Статьи
  • Наши Новости
  • Пресса о нас
  • Реселлеры
  • Нестандартное лицензирование
  • ВУЗам
  • Карьера
  • Контакты

© 1998-2023 ООО «Быстрые отчеты»

  • Согласие с обработкой персональных данных
  • Политика в отношении обработки персональных данных
  • Не является публичной офертой