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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.06.2005, 11:16   #1  
malex is offline
malex
Участник
 
164 / 19 (1) ++
Регистрация: 10.08.2004
Адрес: Тверь, Москва
? Условные директивы в макросах
Никак не могу понять как пользоваться директивой #if.<macro variable>
Например код приведенный ниже работает:
PHP код:
    #localmacro.testMacro
        #define.arg(%1);
        #if.arg(2)
            
Info("2");
        
#endif
        #undef.arg
    #endmacro

    #testMacro(2) 
но если вставить между определением макроса и его вызовом любой оператор - то будет ошибка компиляции.

Есть ли какой-нибудь способ использовать условные директивы в любом месте кода.
Старый 08.06.2005, 12:25   #2  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
В строке с #define в конце не требуется (а в данном случае - мешает) ставить точку с запятой, синтаксис такой...
__________________
Андрей.
Старый 08.06.2005, 12:42   #3  
BVN is offline
BVN
Участник
 
88 / 13 (1) ++
Регистрация: 07.04.2005
Адрес: г. Королёв МО
Всё работает как надо!
void clicked()
{
;
#localmacro.testMacro
#define.arg(%1)
#if.arg(2)
Info("2");
#endif
#undef.arg
#endmacro
info(" dsfdfs ");
#testMacro(2)
super();
}
Ты просто поставь " ; " и будет тебе счастье
Старый 08.06.2005, 16:57   #4  
malex is offline
malex
Участник
 
164 / 19 (1) ++
Регистрация: 10.08.2004
Адрес: Тверь, Москва
Неа, счастье отменяется
PHP код:
    int a;
    
#localmacro.testMacro
        #define.arg(%1)
        #if.arg(0)
            
Info("test");
        
#endif
        #undef.arg
    #endmacro
    
;
    
0;
    
#testMacro(a) 
Т.е. переменные в макросах поюзать не получится

На самом деле, задача была следующая: в некий навороченный select нужно было добавлять where-условие либо не добавлять в зависимости от параметра диалога.
Через if выглядело некрасиво, видимо придется через Query.

Отсюда вопрос - есть ли разница по производительности между двумя этими подходами.
Старый 08.06.2005, 17:08   #5  
ALES is offline
ALES
Участник
Злыдни
 
220 / 45 (2) +++
Регистрация: 11.08.2004
Цитата:
Изначально опубликовано malex в некий навороченный select нужно было добавлять where-условие либо не добавлять в зависимости от параметра диалога.
Не вижу препятствий
where ...
&& (table.field == parm || ! parm)
...
Старый 08.06.2005, 17:47   #6  
malex is offline
malex
Участник
 
164 / 19 (1) ++
Регистрация: 10.08.2004
Адрес: Тверь, Москва
Цитата:
Изначально опубликовано ALES

Не вижу препятствий
where ...
&& (table.field == parm || ! parm)
...
Действительно:
... (inventTrans.TransType == emumParm && notAllBooleanParm || !notAllBooleanParm) && ...

Thanks
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Условные начисления Kozerog DAX: Функционал 1 02.06.2008 12:45

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

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

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