![]() |
#4 |
Administrator
|
Небольшое замечание. Если вдруг в лукапе потом захочется вывести поля, к которым нужно применить агрегатную функцию (Sum, Count и т.д.), то можно столкнуться с неприятным моментом, когда пропадает группировка.
Связано это с тем, что в рамках оптимизации исполнения запроса выбираются не все поля, а только те, что определены в лукапе (для которых был вызван метод addLookupField). Соответственно, выполняется следующий код (\Classes\SysTableLookup\buildSelectionList): X++: for (i = 1; i <= conlen(lookupItems); i++)
{
[fieldId, returnItem, method] = conpeek(lookupItems, i);
queryBuildDataSource.addSelectionField(fieldId);
} Лечится это простым условием: X++: if (queryBuildDataSource.orderMode() == OrderMode::OrderBy) // Ограничение числа полей актуально только для выборки без группировок { for (i = 1; i <= conlen(lookupItems); i++) { [fieldId, returnItem, method] = conpeek(lookupItems, i); queryBuildDataSource.addSelectionField(fieldId); } } Справедливо для всех версий (3.0 - 2009 RU5)
__________________
Возможно сделать все. Вопрос времени Последний раз редактировалось sukhanchik; 29.01.2011 в 12:37. |
|
|
За это сообщение автора поблагодарили: konopello (1), jonny (3), IKA (1), player (1). |
Теги |
group by, lookup, order by, query |
|
![]() |
||||
Тема | Ответов | |||
Группировка по полю GUID | 6 | |||
Группировка сводной таблицы Excel | 4 | |||
Группировка в Lookup | 6 | |||
Группировка временной таблицы | 3 | |||
Группировка в отчетах | 14 |
|