CrossTab. Сортировка.

Обсуждение Stimulsoft Reports.Net
Ответить
Леонид
Сообщения: 326
Зарегистрирован: 23 июл 2009, 05:53

CrossTab. Сортировка.

Сообщение Леонид » 19 июн 2019, 10:47

Здравствуйте, коллеги!

Вопрос по сортировке в CrossTab. Она толи не работает, толи работает как-то странно.

Суть вопроса. Есть запрос Oracle, на выходе который формирует некоторый набор данных без order by, допустим.

Далее, в CrossTab в поле Sort мы указываем такую сортировку this.CrossTab1.Sort = new System.String[] { "ASC", "PRODUCER_NAME", "ASC", "ARTICLE", "ASC", "CLIENT_NAME" }, но она не работает.

А что работает? А работает так, указываем в select'е функции select * from ... order by producer_name, article, client_name, а затем в CrossTab для каждого Cross-Row указываем SortDirection = None и SortType by DisplayValue.

Почему это работает? Полагаю, потому что база данных сортирует данные, передаёт результирующий набор в отчёт, который уже ничего не сортирует, и мы на выходе получаем вроде бы то, что нужно.

Второй вариант, не ясно, почему не работает, т.е. никак нельзя отсортировать CrossTab вот так this.CrossTab1.Sort = new System.String[] { "ASC", "PRODUCER_NAME", "ASC", "ARTICLE", "ASC", "CLIENT_NAME" }, по какой-то причине указанную таким способом сортировку (в самом редакторе в свойстве Sort либо даже в событии BeginRender самого объекта отчёта), заменяет сортировка, указанная на скриншоте (т.е. в свойствах SortDirection и SortType).

Просьба пояснить, как вообще работает компонент CrossTab в плане сортировки, и как её можно отключить?
Вложения
Clipboard01.png
Clipboard01.png (71.92 КБ) 92 просмотра
Aleksey
Сообщения: 1992
Зарегистрирован: 22 апр 2010, 02:57

Re: CrossTab. Сортировка.

Сообщение Aleksey » 20 июн 2019, 20:00

Здравствуйте,

Сортировка для самой Кросс-Таблицы (this.CrossTab1.Sort ) сортирует набор данных, который для нее задан. Не будет иметь практически никакого эффекта, если установлены сортировки для Колонок или Строк.
Кросс-Таблица сортируется по Строкам и Колонкам в первую очередь, такова логика построения, так как в нем иут группировки. суммирование и т.д.

Спасибо.
Ответить