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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.11.2015, 08:45   #1  
Talgat_imported is offline
Talgat_imported
Участник
 
3 / 10 (1) +
Регистрация: 10.11.2015
Запрос на SQL Server

Код:
SELECT w.* FROM dbo.WMSLOCATION w
  WHERE w.INVENTLOCATIONID = N'ЦС_Акб' AND 
        NOT EXISTS(SELECT d.INVENTDIMID FROM dbo.INVENTDIM d
                   INNER JOIN dbo.INVENTSUM i
                     ON (i.INVENTDIMID = d.INVENTDIMID) AND (i.CLOSED = 0) AND (i.CLOSEDQTY = 0)
                   WHERE d.INVENTLOCATIONID = w.INVENTLOCATIONID
                     AND d.WMSLOCATIONID = w.WMSLOCATIONID
                   );

не получается на Axapta-e


Код:
void init()
{
    Query                   q;
    QueryBuildDataSource    qbds;
    // <Talgat 10/11/2015 10:43>
    // QueryBuildDataSource    qbdsDim, qbdsSum;
    // </Talgat>
    super();

    q = new Query();
    qbds = q.addDataSource(tablenum(WMSLocation));
    // <Talgat 09/11/2015 10:54>
    qbds = qbds.addDataSource(tablenum(InventDim));
    //qbds = qbds.addDataSource(tableNum(InventSum));

    //qbds.addRange(fieldNum(InventSum, Closed)).value("0");
    //qbds.addRange(fieldNum(InventSum, ClosedQty)).value("0");
    qbds.relations(true);
    qbds.joinMode(JoinMode::NoExistsJoin);
    // </Talgat>
    qbds.addSortField(fieldnum(WMSLocation,InventLocationId));
    qbds.addSortField(fieldnum(WMSLocation,wmsLocationId));

    this.query(q);
}
Старый 10.11.2015, 08:53   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Talgat Посмотреть сообщение
Запрос на SQL Server

не получается на Axapta-e
почему же не получается...
насколько я вижу в аксапте вы недоопределили условий. и надо смотреть какие именно условия поставил метод relation(true)

мой совет - не создавайте query в коде.
а создайте в AOT. там проконтролируйте какие relations и какие условия накладываются

а в коде просто сделайте
Код:
Query q = new Query(querystr(myAotQueryName));
SysQuery::findOrCreateRange(q.datasourcetable(....), fieldnum(....)).value(....);
так и код будет намного проще для понимания, и перекрестные ссылки работать будут, и обновлять будет намного легче.
и следующие программисты скажут вам спасибо.
__________________
полезное на axForum, github, vk, coub.
Старый 10.11.2015, 09:17   #3  
Talgat_imported is offline
Talgat_imported
Участник
 
3 / 10 (1) +
Регистрация: 10.11.2015
Цитата:
Сообщение от mazzy Посмотреть сообщение
Цитата:
Сообщение от Talgat Посмотреть сообщение
Запрос на SQL Server

не получается на Axapta-e
почему же не получается...
насколько я вижу в аксапте вы недоопределили условий. и надо смотреть какие именно условия поставил метод relation(true)

мой совет - не создавайте query в коде.
а создайте в AOT. там проконтролируйте какие relations и какие условия накладываются

а в коде просто сделайте
Код:
Query q = new Query(querystr(myAotQueryName));
SysQuery::findOrCreateRange(q.datasourcetable(....), fieldnum(....)).value(....);
так и код будет намного проще для понимания, и перекрестные ссылки работать будут, и обновлять будет намного легче.
и следующие программисты скажут вам спасибо.
Дело в том, что это стандартная форма и существующий код, поэтому хочу просто дописывать. Задача состоит в том, чтобы по выборке определить свободные ячейки на складе...
Старый 10.11.2015, 12:33   #4  
Talgat_imported is offline
Talgat_imported
Участник
 
3 / 10 (1) +
Регистрация: 10.11.2015
Все-таки пришлось создать Query в АОТ, работает нормально, спасибо за советы!
 


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

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

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