CrossTab. Сортировка.
Добавлено: 19 июн 2019, 13: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 в плане сортировки, и как её можно отключить?
Вопрос по сортировке в 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 в плане сортировки, и как её можно отключить?