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

    22 сентября 2021 г.

    Допустим поставлена задача: отсортировать матрицу на первой странице в нужном порядке. А ещё запомнить этот

    Подробнее
  • Как фильтровать даты в отчете с помощью диалоговой формы

    16 ноября 2019 г.

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

    Подробнее
  • Как выбрать топ значений в матрице

    22 апреля 2021 г.

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

    Подробнее
  • Подключение к Elasticsearch

    10 ноября 2021 г.

    Теперь в продуктах FastReport .NET, Core, Mono, OpenSource появилась возможность подключения к Elasticsearch. Elasticsearch –

    Подробнее
  • Запуск приложения с FastReport .NET в Docker под Linux

    17 ноября 2021 г.

    Docker – это программная платформа для быстрой разработки, тестирования и развертывания приложений. Благодаря нему мы

    Подробнее

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

2 июня 2021 г.

FastReport .NET

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

Допустим, что у нас уже есть готовый файл с настроенной сортировкой. Для примера возьмём отчёт Simple List (простой список) из демо-приложения FastReport .NET.

FastReport .NET.

В отчёте уже настроена сортировка:

FastReport .NET.

Сначала бэнды сортируются по имени, а затем по фамилии. Сортировка проводится по возрастанию, то есть от А до Я, или от A до Z в случае латиницы.

Добавим к нашему отчёту интерактивность. Выберем текстовый объект - например, заголовок, и добавим обработчик события Click. Таким образом, после клика на объект в предпросмотре вызовется функция, которую мы настроим.

FastReport .NET.

Также поменяем свойство Cursor на Hand, чтобы курсор менялся на руку при наведении его на объект. Благодаря этому будет очевидно, что на объект можно кликнуть.

FastReport .NET.

Изучим, как работает сортировка в FastReport, чтобы написать код функции.

Сортировка данных хранится как коллекция значений. Есть несколько вариантов того, как можно реализовать изменение сортировки, но все они сводятся к модификации этой коллекции.

Если мы рассмотрим сортировку в коде, то увидим список методов и свойств. Мы будем работать со свойствами Descending (“По убыванию”) и Expression (“Выражение”).

FastReport .NET.

Свойство Expression совпадает с полем “Сортировать по” в дизайнере, а свойство Descending - с переключателем по возрастанию/по убыванию. Заметьте, что в дизайнере можно настроить всего три правила сортировки, а из кода можно добавлять неограниченное количество. Соответственно, дизайнер не поддерживает больше чем три правила. При открытии свойств бэнда с 4 сохранёнными правилами, отобразятся первые 3 и после изменения будут сохранены только они.

Порядок правил сортировки начинается с правила с индексом 0, затем применяется правило с индексом 1 и так далее.

В нашем случае в коллекции Sort есть два значения:

1) Expression = [Employees.FirstName], Descending = false
2) Expression = [Employees.LastName], Descending = false

Итак, приступим к написанию кода.

Мы добавим переменную sorting, которая будет определять порядок сортировки:

bool sorting = false;

Для того, чтобы изменить порядок сортировки, необходимо изменить свойство Descending. Мы будем заменять его для нулевого элемента коллекции Sort, и затем происходит инверсия Sorting и обновление отчёта:

 private void Text1_Click(object sender, EventArgs e)
 {
 Data1.Sort[0].Descending = sorting;
 sorting = !sorting;
 Report.Refresh();
 }

Если мы запустим отчёт и нажмём на заголовок - “EMPLOYEES” - вот что мы увидим:

FastReport .NET.

Как вы видите, сортировка была инвертирована, последние записи теперь на первых местах. Стоит упомянуть, что коллекцию Sort можно не только модифицировать, но также можно добавлять или удалять из неё элементы. Например, изменение сортировки можно совершать другим способом:

 private void Text1_Click(object sender, EventArgs e)
 {
 Data1.Clear();
 Data1.Sort.Add(new Sort("[Employees.FirstName]", false));
 Data1.Sort.Add(new Sort("[Employees.LastName]", sorting));
 sorting = !sorting;
 Report.Refresh();
 } 

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

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

О продукте Скачать Купить
avatar
Alexey Tantzura
Поддержка и тестирование
Fast Reports Team: Alexey Tantzura - Quality Assurance at Fast Reports
.NET FastReport Filtering

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

© 1998-2022 ООО «Фаст Репортс»

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