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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.09.2007, 14:00   #1  
Dronas is offline
Dronas
Участник
 
213 / 14 (1) ++
Регистрация: 16.11.2004
Выборка с помощью макроса
Есть два макроса, в которых прописаны селекты на одну и ту же таблицу, но по разным полям, пытаюсь в методе сделать так:
X++:
#define.asc_desc(asc)
#define.selection(#selectField1)
if(bla-bla-bla)
{
   #define.selection(#selectField2)
}
while #selection(table, val1, val2, #asc_desc, ...)
&& ...
{
   ...
}
вот while #selection(table, val1, val2, ...) не воспринимается, синтаксическая ошибка.

Последний раз редактировалось Dronas; 18.09.2007 в 14:02.
Старый 18.09.2007, 14:03   #2  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Если это действительно необходимо, в чем я глубоко сомневаюсь,

Посмотрите макрос #InventDimSelect и сделайте также.
X++:
if(bla-bla-bla)
{
   #define.selection(#selectField2)
}
Вот это вообще некорректно.
все макроопределения и т.д. происходят в момент компиляции.
Старый 18.09.2007, 14:05   #3  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Терпеть не могу макросы.

Сорри за оффтоп.
Старый 18.09.2007, 14:11   #4  
Dronas is offline
Dronas
Участник
 
213 / 14 (1) ++
Регистрация: 16.11.2004
Да уж, накосячил...
Старый 18.09.2007, 14:16   #5  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,691 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Макрос - это НЕ процедура. Это КОНСТАНТА. Это просто способ написания констант в отдельном месте с последующей ссылкой на это место.

Подстановка вместо имени макроса его содержимого происходит еще ДО исполнения кода. В момент компиляции. Это значит, что в Вашем случае, содержимое макроса #section() никак, никоим образом, не будет зависеть от условия. Оно всегда будет равно значению, присвоенному "ниже" по телу метода. В данном примере, всегда будет равно #define.selection(#selectField2)

Соответственно, смотрите, что именно будет в теле макроса на момент выполнения цикла while
Старый 18.09.2007, 14:39   #6  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
X++:
#define.asc_desc(asc)

#localmacro.doSelect
while #selection(table, val1, val2, #asc_desc, ...)
&& ...
{
   ...
}
#endmacro

if(bla-bla-bla)
{
   #define.selection(#selectField2)
   #doSelect
}
else
{
   #define.selection(#selectField1)
   #doSelect
}
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Переход по полям грида с помощью стрелочек на клавиатуре SorNick DAX: Программирование 16 07.10.2008 12:39
отправка писем с помощью SysMailer Lucky13 DAX: Программирование 1 09.03.2007 12:04
Как с помощью Axaptы...послать файл на другой комп? velk DAX: Программирование 6 11.02.2005 12:03
BugFix: В форме складских журналов нельзя перемещаться с помощью клавиш курсора Maxim Gorbunov DAX: Программирование 5 21.01.2005 01:20
можно ли сделать с помощью join следующий запрос: SergAY DAX: Программирование 1 29.07.2003 11:39
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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