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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 31.01.2011, 14:28   #1  
Corel is offline
Corel
Участник
Ex AND Project
 
73 / 15 (1) ++
Регистрация: 19.04.2007
Цитата:
Сообщение от AndyD Посмотреть сообщение
Ну, по идее, это должно и в обратную строну работать
По идее-то да. Но вот в таком варианте наблюдаю вываливание на QueryRun.next() в тарссировку стека с ошибкой "неверный параметр".

Цитата:
Хотя, вы бы привели запрос полностью, что бы было видно, как таблицы между собой соединяются
Ок. Убрал из запроса лишнее, Table1 - это InventTrans.
Запрос должен находить номенклатуры, относящиеся к выбранным Table2 (на Table2 накладывается пользовательский фильтр), у которых текущие остатки больше 0 и по которым есть приходные проводки с датой раньше, чем текущая минус кол-во дней, указанное в соответствующей Table2.
X++:
    query = new Query();
    qbdsTable2 = query.addDataSource(tableNum(Table2));
    qbdsInventTable = qbdsTable2.addDataSource(tableNum(InventTable));
    qbdsInventTable.addLink(fieldNum(Table2, Id), fieldNum(InventTable, Table2Id));
    qbdsInventTable.addGroupByField(fieldNum(InventTable, ItemId));
    qbdsInventSum = qbdsInventTable.addDataSource(tableNum(InventSum));
    qbdsInventSum.relations(true);
    qbdsInventSum.addRange(fieldNum(InventSum, PostedQty)).value('(PostedQty>0)');
    qbdsInventSum.addSelectionField(fieldNum(InventSum, PostedQty), SelectionField::Sum);
    qbdsInventTrans = qbdsInventSum.addDataSource(tableNum(InventTrans));
    qbdsInventTrans.relations(true);
    qbdsInventTrans.addRange(fieldNum(InventTrans, StatusReceipt)).value(queryValue(StatusReceipt::Purchased));
    qbdsInventTrans.addRange(fieldNum(InventTrans, DateFinancial)).value(strfmt('(((%1 - %2) > %3.%4))',
                                                                                 date2StrXpp(systemDateGet()),
                                                                                 fieldStr(InventTrans, DateFinancial),
                                                                                 query.dataSourceTable(tableNum(Table2)).name(),
                                                                                 fieldStr(Table2, Days)));
    qbdsInventTrans.joinMode(JoinMode::ExistsJoin);
Теги
querybuildrange, дата, расширенный фильтр

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axaptafreak: Label for query range cannot be modified in AX 5.0 Blog bot DAX Blogs 0 30.08.2007 16:50
axaptafreak: Label for Query Range cannot be modified (still) Blog bot DAX Blogs 2 25.07.2007 10:09
Fred Shen: Date data type in Query Range Value Expression Blog bot DAX Blogs 0 28.10.2006 16:40
Автоматическая подстановка Range в Query Владимир Максимов DAX: Программирование 9 30.03.2004 16:48
Как вытащить информацию о Range из Query raz DAX: База знаний и проекты 1 26.03.2004 11:10

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

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

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