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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.03.2008, 16:34   #6  
longson is offline
longson
Участник
 
231 / 49 (2) +++
Регистрация: 12.12.2006
Адрес: Москва
А теперь, если так

X++:
static void Job103(Args _args)
{
    InventDim            inventDim;
    InventTrans          inventTrans;
    Query                query;
    QueryBuildDataSource qbsInventTrans, qbsInventDim;
    QueryBuildLink       qbl;
    QueryRun             queryRun;
    QueryBuildRange      qbrInventSizeId, qbrStatusIssue, qbrTransType, qbrItemId;
    Qty                  mQty;
    ;

    query  = new Query();

    qbsInventTrans = query.addDataSource(tablenum(InventTrans));

    qbsInventDim   = qbsInventTrans.addDataSource(tablenum(InventDim));

    qbsInventDim.relations(true);

    qbrTransType = qbsInventTrans.addRange(fieldnum(InventTrans,TransType));
    qbrTransType.value(queryvalue(InventTransType::Sales));

    qbrStatusIssue = qbsInventTrans.addRange(fieldnum(InventTrans,StatusIssue));
    qbrStatusIssue.value(queryValue(StatusIssue::OnOrder));

    qbsInventDim.orderMode(OrderMode::GroupBy);
    qbsInventDim.addSortField(fieldnum(InventDim, InventSizeId));


    qbsInventTrans.orderMode(OrderMode::GroupBy);
    qbsInventTrans.addSortField(fieldnum(InventTrans, ItemId));
    
    qbsInventTrans.addSelectionField(fieldnum(InventTrans,Qty),SelectionField::Sum);
    qbsInventTrans.addSelectionField(fieldnum(InventTrans,ItemId));

    queryRun = new QueryRun(query);

    if(queryRun.prompt())
     {
        while(queryRun.next())
         {
            
            
            inventTrans = queryRun.get(tablenum(InventTrans));
            inventDim   = queryRun.get(tablenum(InventDim));
            info(strFmt('%1 %2 %3', inventTrans.ItemId, inventDim.InventSizeId, inventTrans.Qty));
         }
     }

}
Т.е, просто изменение порядок таблицы InventTrans и InventDim в запросе, то выводятся сгруппированные данные по номенклатурам, а не по номенклатурам и размерам.

Мне кажется, что что - то неправильно имеено в кускочке кода

X++:
    if(queryRun.prompt())
     {
        while(queryRun.next())
         {
            
            
            inventTrans = queryRun.get(tablenum(InventTrans));
            inventDim   = queryRun.get(tablenum(InventDim));
            info(strFmt('%1 %2 %3', inventTrans.ItemId, inventDim.InventSizeId, inventTrans.Qty));
         }
Или я что - то ещё не понимаю ? Почему выводятяся только сгруппированные данные именно по полю родительского источника данных ?

Последний раз редактировалось longson; 02.03.2008 в 16:36.
Теги
ax2009, ax3.0, ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Подготовка запроса(ламерские вопросы продолжаются) HorrR DAX: Программирование 4 08.07.2008 13:23
Изменить план выполнения запроса Sequel DAX: Администрирование 2 29.05.2008 15:46
Оптимизация запроса oleg_e DAX: Программирование 16 11.01.2008 10:22
Теория: Создание отчета в виде Запроса Arahnid DAX: Программирование 6 14.11.2007 16:37
Ускорение выполнения запроса Oracle + MS Axapta Горбунов Дмитрий DAX: Программирование 17 15.11.2005 18:13

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

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

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