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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.04.2012, 16:45   #1  
in.dc is offline
in.dc
Участник
 
29 / 53 (2) ++++
Регистрация: 09.04.2009
Цитата:
Сообщение от yahenz Посмотреть сообщение
Всем привет!

Пытаюсь написать что-то подобное в АХ 3.0:
X++:
    QueryRun qr;
    Query query = new Query();
    QueryBuildDataSource dsTable2 = query.addDataSource(tableNum(Table2));
    QueryBuildRange qbr;
    Table2 t2;
    ;

    qbr = dsTable2.addRange(fieldNum(Table2, DataAreaId));
    qbr.value(strfmt('((%1 + %2) > 0)', fieldStr(Table2, Field1), fieldStr(Table2, Field2)));

    qr = new QueryRun(query);

    while(qr.next())
    {
        t2 = qr.get(tablenum(Table2));
        info(int2str(t2.Field1) + "+" + int2str(t2.Field2));
    }
Выдает ошибку:

Описание ошибки SQL: [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near '='.
Оператор SQL: SELECT A.FIELD1,A.FIELD2,A.RECVERSION,A.RECID FROM TABLE2 A WHERE ((DATAAREAID=?) AND ((FIELD1+FIELD2)>1=?)) ORDER BY A.DATAAREAID,A.RECID OPTION(FAST 45)

В АХ 5.0 все работает. Неужели в 3.0 ничего не получится?

В качестве workaround для Axapta 3.0 могу предложить на рассмотрение следующий подход - необходимо постараться избавиться от числовой константной составляющей в правой части неравенства заменив ее выражением (с использованием некоторого числового поля).

К примеру для этого можно воспользоваться нехитрым тождеством N = N * RecId / RecId. В частном случе '0' можно представить как 0*RecId или привести Ваше выражение вида (a+b)>0 к тождественному виду a > -1*b

X++:
qbr.value(strfmt('((%1 + %2) > 0*%3)', fieldStr(Table2, Field1), fieldStr(Table2, Field2), fieldStr(Table2, RecId)));

P.S. Тестировалось на версии ядра 1951.7609 (Axapta 3.0 SP3 KR3)
__________________
Dynamics AX 4.0 SP2
За это сообщение автора поблагодарили: yahenz (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Универсальный изменятель значений полей wojzeh DAX: Программирование 17 26.09.2013 17:47
Изменение идентификаторов(id) полей Dron AKA andy DAX: База знаний и проекты 30 17.06.2009 10:11
Как перекрыть lookup для поля входящего в группу полей ATimTim DAX: Программирование 2 05.10.2005 11:26
Реализация функциональной зависимости полей в Query levsha DAX: Программирование 2 22.12.2003 09:40
очистка полей. простой вопрос Антон Солдатов DAX: Программирование 4 04.04.2003 10:28

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

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

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