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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.02.2008, 17:41   #1  
Russland is offline
Russland
MCTS
Аватар для Russland
MCBMSS
 
267 / 116 (4) +++++
Регистрация: 17.10.2005
Адрес: Донеччина, Україна
SYS_ExpressionQueryBuilder
Вопрос к belugin

А не пополнить ли класс SYS_ExpressionQueryBuilder методом formula(), позволяющим вставлять арифметические выражения в запрос

X++:
SYS_ExpressionDataSourceBuilder formula(str _formula)
{
;
    dataSource.addRange( fieldname2id(dataSource.table(), "RecId") ).value('('+_formula+'))');

    return this;
}
а к нему ещё и макрос SYS_ExpressionQueryBuilder

X++:
// Created by GRR on 07.02.2008 for SYS_ExpressionQueryBuilder

    #localMacro.const
        strFmt('%1 * RecId/RecId')
    #endmacro
Данный макрос, кроме всего, будет ещё и полезен любителям сравнений на ноль и на прочие константы арифметические операции в условие Where

Например
X++:
    #macrolib.SYS_ExpressionQueryBuilder
    ;

   new DEV_QueryBrowser().run(
       SYS_ExpressionQueryBuilder::construct()
         .dataSource(tableNum(Table1))
             .formula(
                strfmt("%1 + %2*10 - %3 - %4 == %5", //f2 + 10*f4 - f5 - 3 == 0

                    fieldStr(Table1, Field2),
                    fieldStr(Table1, Field4),
                    fieldStr(Table1, Field5),
                    #const(3),
                    #const(0))
             )
   .run()
   .query());
Миниатюры
Нажмите на изображение для увеличения
Название: Запрос.JPG
Просмотров: 370
Размер:	27.2 Кб
ID:	3205  
__________________

В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню
За это сообщение автора поблагодарили: belugin (5).
 


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

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

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