При работе с таблицей пользователю может потребоваться изменить первоначальный порядок сортировки записей. Например, изначально данные могут быть отсортированы по плановым показателям, а пользователю необходимо отсортировать их по фактическим данным или по названию работ. В этом случае можно предоставить пользователю возможность самостоятельно менять порядок сортировки.
В примере ниже по нажатию на шапку столбца данные в таблице сортируются по данному столбцу по убыванию значений.
Сортировка данных в столбцах по клику на название столбца.
Функция привязана к событию Click для элемента TextPlan — поля шапки столбца. Здесь Data1 — это название бэнда данных, Table — название таблицы-источника данных. В метод Sort.Add() передаются два параметра: название поля и порядок сортировки (true означает сортировку по убыванию, false — по возрастанию).
private void TextPlan_Click(object sender, EventArgs e)
{
Data1.Sort.Clear();
Data1.Sort.Add(new Sort("[Table.Plan]", true));
Report.Refresh();
}
Таблица может быть отсортирована по двум и более столбцам, в этом случае потребуется последовательно вызвать метод Sort.Add() несколько раз.
Аналогичные функции могут быть созданы, например, и для элементов TextFact, TextName и др. (см. скриншот выше).
Обратите внимание, что в текущей версии FastReport действуют следующие ограничения: |
---|
•изменение сортировки из кода работает только на главной странице отчета; если у отчета есть детальные страницы, то для них такой код сгенерирует ошибку;
•поле с названием (шапкой) столбца должно быть не ячейкой таблицы, а текстовым полем (Label).