AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.03.2012, 16:09   #1  
NickMDAX is offline
NickMDAX
Участник
 
16 / 11 (1) +
Регистрация: 12.09.2011
Адрес: Moscow
? Отсортировать записи после группировки через Query
Добрый вечер всем!!
Есть проблема:
необходимо выбрать всех сотрудников, сгруппировать их по табельному номеру и вывести в алфавитном порядке!Вроде бы простая задача, но возникает вопрос как отсортировать по алфавиту????Вычитал на форуме про метод .addOrderByField
И вроде бы все красиво, но некоторые сотрудники выводятся по два раза!
X++:
protected QueryRun queryEmpl()
{
    QueryBuildDataSource    qbdrTrans;
    Query                   q = new Query(queryRun.query());
    QueryRun                qr;
    ;

    qbdrTrans = q.dataSourceTable(tableNum(RPayTrans));
    qbdrTrans.addOrderByField(fieldNum(RPayTrans, EmplName),SortOrder::Ascending);
    qbdrTrans.orderMode(OrderMode::GroupBy);
    qbdrTrans.addSortField(fieldNum(RPayTrans, EmplId));

    return new QueryRun(q);
}
если убрать
X++:
qbdrTrans.addOrderByField(fieldNum(RPayTrans, EmplName),SortOrder::Ascending);
все хорошо, но пропадает сортировку по алфавиту, а она очень нужна!
Помогите пожалуйста новичку!
з.ы. в поле EmplName хранится ФИО
Старый 12.03.2012, 16:29   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от NickMDAX Посмотреть сообщение
Вычитал на форуме про метод .addOrderByField
И вроде бы все красиво, но некоторые сотрудники выводятся по два раза!
Странно. Может быть у них разные ФИО. Ну там пробел какой лишний или не та буква
Попробуйте на всякий случай ещё вот так (хотя это по идее тоже самое):
X++:
protected QueryRun queryEmpl()
{
    QueryBuildDataSource    qbdrTrans;
    Query                   q = new Query(queryRun.query());
    QueryRun                qr;
    ;

    qbdrTrans = q.dataSourceTable(tableNum(RPayTrans));
//    qbdrTrans.addOrderByField(fieldNum(RPayTrans, EmplName),SortOrder::Ascending);
    qbdrTrans.addSortField(fieldNum(RPayTrans, EmplName),SortOrder::Ascending);
    qbdrTrans.orderMode(OrderMode::GroupBy);
    qbdrTrans.addSortField(fieldNum(RPayTrans, EmplId));

    return new QueryRun(q);
}
Старый 12.03.2012, 17:13   #3  
ivas is offline
ivas
Участник
Аватар для ivas
 
252 / 68 (3) ++++
Регистрация: 22.12.2005
Цитата:
Сообщение от NickMDAX Посмотреть сообщение
Добрый вечер всем!!
Есть проблема:
необходимо выбрать всех сотрудников, сгруппировать их по табельному номеру...
Отфильтруйте EmplTable экзистджойном по RPayTrans и группировка не понадобиться следовательно сортировка будет работать. Или в крайнем случае добавьте группировку по EmplName.

Нельзя сделать сортировку по полям которых нет в группировке при её наличии.
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy
Старый 13.03.2012, 07:10   #4  
NickMDAX is offline
NickMDAX
Участник
 
16 / 11 (1) +
Регистрация: 12.09.2011
Адрес: Moscow
Спасибо большое за советы, буду пробовать!)
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
AIF: OData Query Service Blog bot DAX Blogs 0 24.08.2011 09:11
sumitax: AX Queries – Passing query range as parameter Blog bot DAX Blogs 0 29.06.2011 13:11
jinx: Dynamics AX – Query-Ranges und Filtereinstellungen des Benutzers Blog bot DAX auf Deutsch 0 04.02.2010 00:05
paruvella: Dynamics Ax - Simple SSRS report example by using Ax-Query and Ranges Blog bot DAX Blogs 0 08.01.2010 16:05
Table Scan через QueryRun maximka DAX: Программирование 8 05.10.2007 10:46
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 08:12.