Здравствуйте, коллеги!
Вопрос по сортировке в 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 в плане сортировки, и как её можно отключить?
CrossTab. Сортировка.
CrossTab. Сортировка.
- Вложения
-
- Clipboard01.png (71.92 КБ) 2017 просмотров
Re: CrossTab. Сортировка.
Здравствуйте,
Сортировка для самой Кросс-Таблицы (this.CrossTab1.Sort ) сортирует набор данных, который для нее задан. Не будет иметь практически никакого эффекта, если установлены сортировки для Колонок или Строк.
Кросс-Таблица сортируется по Строкам и Колонкам в первую очередь, такова логика построения, так как в нем иут группировки. суммирование и т.д.
Спасибо.
Сортировка для самой Кросс-Таблицы (this.CrossTab1.Sort ) сортирует набор данных, который для нее задан. Не будет иметь практически никакого эффекта, если установлены сортировки для Колонок или Строк.
Кросс-Таблица сортируется по Строкам и Колонкам в первую очередь, такова логика построения, так как в нем иут группировки. суммирование и т.д.
Спасибо.