28.06.2006, 20:18 | #1 |
Участник
|
Сортировка в гриде
Столкнулся со странной проблемой.
В грид на форме выводятся данные из трех таблиц, соединенных обычным InnerJoin (InventSum join InventDim join InventTable) - джойнятся обе к InventSum Нет ни группировок, ни сортировок - в executeQuery InventSum добавлено несколько фильтров перед super(); Дисплей методов тоже нет - контролы на грид перетаскивались из датасорсов. И вот, в гриде он сортирует только по полям основного (InventSum) датасорса. По другим не хочет. Пользоватальский запрос не меняется (queryRun().query()). Фильтры накладываются на this.query() Может я конечно туплю, все таки уже поздно, но не могу понять, почему не сортируются данные?? |
|
28.06.2006, 20:24 | #2 |
Участник
|
inventSum - не простая таблица.
inventSum должна группироваться в запросе. если группировки заданы, то сортировку можно менять только в пределах полей одной таблицы. НО порядок таблиц уже не меняется. Попробуй изменить порядок сортировки в любом отчете, где есть группировка в датасорсе. Станет понятно. |
|
28.06.2006, 20:26 | #3 |
Участник
|
Да нет, я ж пишу, что группировки не добавлял - специально - если б группировал, то и вопроса бы не было.
С таким же успехом это могли быть любые другие 3 таблицы. Последний раз редактировалось kashperuk; 28.06.2006 в 20:31. |
|
28.06.2006, 20:34 | #4 |
Участник
|
Цитата:
Сообщение от kashperuk
Да нет, я ж пишу, что группировки не добавлял
inventSum - без группировок... надо же... Не знаю. Смотри tutorial_Form_Join - там вроде сортировка работает. |
|
28.06.2006, 21:05 | #5 |
Роман Долгополов (RDOL)
|
2 kashperuk
Проблема в том, что когда в одном гриде собираются столбцы из разных датасорсов то кликанье по заголовку столбца накладывает сортировку по соответсующему полю а кликанье по другому столбцу снимает предыдущую сортировку только в пределах датасорса к которому принадлежит этот другой столбец. т.е сортировки в дргугих датасорсах не трогаются и остаются жить - все это легко можно увидеть включив трассировку если сразу после открытия формы или удаления фильтра кликнуть по нужному столбцу то все замечательно отсортируется. в общем очень похоже на багу. вариантов обхода вижу два - каждый со своими недостатками 1. перед каждой новой сортировкой нажимать кнопочку удаления фильтра, при этом на датасорсах не должно быть указано никаких индексов 2. закодить обработчики события sort на всех контролах грида чтобы они счищали с запроса все сортировки 2 mazzy tutorial_form_join ведет себя также версия 3.0 SP3. на более поздних не проверял может кто знает какое нибудь радикальное средство на эту тему? |
|
28.06.2006, 21:15 | #6 |
Роман Долгополов (RDOL)
|
забыл про третий способ - создать вьюшку. правда он не намного лучше, так как лечит частные проявления общей проблемы
|
|
28.06.2006, 21:18 | #7 |
Участник
|
Цитата:
Сообщение от db
tutorial_form_join ведет себя также
только я проверил когда отвечал в своем первом посте. у меня 3.0 KR2. Вроде нормально. kashperuk, можешь проект выложить? проверю. только убери из него, пожалуйста, всю специфику. сделай так, чтобы он запускался на стандартной аксапте. |
|
28.06.2006, 21:28 | #8 |
Роман Долгополов (RDOL)
|
Цитата:
Сообщение от mazzy
может быть.
только я проверил когда отвечал в своем первом посте. у меня 3.0 KR2. Вроде нормально. сначала сортируем по самому левому столбцу (Key) по убыванию, потом сразу по самому правому (Details) по возрастанию если результат будет в нем будет Details for Item2 Other Details for Item2 Details for Item1 то не работает. но лучше бы работало |
|
28.06.2006, 21:30 | #9 |
Участник
|
угу. спасибо.
не работает. |
|
28.06.2006, 21:31 | #10 |
Участник
|
вернее, сортирует по каждому датасорсу отдельно.
даже если они в пределах одного грида. а не по гриду, как ожидается. |
|
28.06.2006, 21:36 | #11 |
Участник
|
Да, вот и у меня так же получается.
И еще, если индексы установлены на датасорсах, то он сортирует по ним, и не меняет соритровку вообще, хотя вроде как пользовательские сортировки должны быть выше индекса указанного (overrideить должны) Вот и формочка |
|
29.06.2006, 09:18 | #12 |
Axapta Retail User
|
Сортировка в гриде с двумя DataSource
Вот тут есть замечательное вложение |
|
|
За это сообщение автора поблагодарили: mazzy (5). |
|
Похожие темы | ||||
Тема | Ответов | |||
Сортировка в гриде с двумя DataSource | 15 | |||
FormListControl сортировка | 2 | |||
Открытие формы с деталями активной записи в гриде | 4 | |||
Сортировка в гриде | 15 | |||
Глючит сортировка записей | 5 |
|