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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.10.2009, 11:02   #1  
dynamax is offline
dynamax
Участник
 
62 / 11 (1) +
Регистрация: 28.09.2009
вернулся вчера опять к теме, переменил методу executeQuery(). Теперь выглядит вот-так:

X++:
public void executeQuery()
{
    Query query                                                 = new Query();
    QueryRun                queryRun;
    QueryBuildDatasource    dsForInventTrans                    = query.addDataSource(tablenum(InventTrans));
    QueryBuildDatasource    dsForInventTransPosting             = dsForInventTrans.addDataSource(tablenum(InventTransPosting));

    QueryBuildRange         rangeForItemId                      = dsForInventTrans.addRange(fieldnum(InventTrans,ItemId));
    QueryBuildRange         rangeForPeriod                      = dsForInventTransPosting.addRange(fieldnum(InventTransPosting, TransDate));
    ;

    dsForInventTransPosting.relations(true);
    dsForInventTransPosting.joinMode(JoinMode::InnerJoin);
    
    rangeForItemId.enabled(true);
    rangeForPeriod.enabled(true);
    rangeForItemId.value(itemIdFilter);
    rangeForPeriod.value(SysQuery::range(StartDate, EndDate));
        
        
    //ItemId
    dsForInventTrans.addSortField(fieldnum(inventTrans, itemId));
    dsForInventTrans.addSelectionField(fieldnum(InventTrans, Qty), SelectionField::Sum);
    dsForInventTrans.addSelectionField(fieldnum(InventTrans, CostAmountPosted), SelectionField::Sum);
    dsForInventTrans.orderMode(OrderMode::GroupBy);
        
    //Dimension
    dsForInventTransPosting.addSortField(fieldId2Ext(fieldnum(InventTransPosting, Dimension), 1));
    dsForInventTransPosting.addSelectionField(fieldId2Ext(fieldnum(InventTransPosting, Dimension), 1));
    dsForInventTransPosting.orderMode(OrderMode::GroupBy);
    
    this.query(query);
    super();

}
Это SQL-запрос:

X++:
SELECT SUM(Qty), SUM(CostAmountPosted) FROM InventTrans GROUP BY InventTrans.ItemId ASC WHERE ((ItemId = N'M0003')) JOIN Dimension[1] FROM InventTransPosting GROUP BY InventTransPosting.Dimension[1] ASC WHERE InventTrans.InventTransId = InventTransPosting.InventTransId AND ((TransDate>={ts '2008-10-01 00:00:00.000'} AND TransDate<={ts '2009-10-14 00:00:00.000'}))
Вроде все правильно, но подразделение остается пустым. Если делаю refresh - F5, то показываются подразделения. Вернее, то одно на все строки, то другое, хотя их несколько. Где я ошибаюсь?
Старый 14.10.2009, 11:27   #2  
dynamax is offline
dynamax
Участник
 
62 / 11 (1) +
Регистрация: 28.09.2009
Вопрос снимается!

я перегрузил init() и еxecuteQuery() второрго dataSource. Все работает!
Теги
query, запрос (query), финансовая аналитика

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
palleagermark: Sample union query from AX 2009 Blog bot DAX Blogs 0 11.07.2008 20:05
Сводное планирование и статистика номенклатуры slava09 DAX: Функционал 6 22.01.2007 10:39
Dynamics AX Geek: Using query() Blog bot DAX Blogs 0 28.10.2006 16:40
Как построить Query? Bukovka DAX: Программирование 9 26.03.2004 16:35
Как правильно построить Query Bukovka DAX: Программирование 0 25.03.2004 11:55

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

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

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