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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.01.2005, 17:32   #1  
AlterEgo is offline
AlterEgo
Участник
 
7 / 10 (1) +
Регистрация: 13.01.2005
Адрес: Донецк
Расширение макроса InventDimJoin
Доброго времени суток!
Хотел добавить к указанному макросу следующую функциональность - группировку по "включенным" в InventDimParm полям
Собственно получил такую конструкцию
-------------------------------------------
/* %1 InventDim */
/* %2 InventDimCriteria */
/* %3 InventDimParm */

#DEFINE.CIF(%3.ConfigIdFlag)
#DEFINE.ISzIF(%3.InventSizeIdFlag)
#DEFINE.ICIF(3%InventColorIdFlag)
#DEFINE.ILIF(3%.InventLocationIdFlag)
#DEFINE.IBIF(3%.InventBatchIdFlag)
#DEFINE.WLIF(3%.WMSLocationIdFlag)
#DEFINE.WPIF(3%.WMSPalletIdFlag)
#DEFINE.ISIF(3%.InventSerialIdFlag)
#DEFINE.IGIF(3%.InventGTDIdFlag_RU)

join * from %1
group by DataAreaId

#IF.CIF(NoYes::Yes)
,ConfigId
#ENDIF
#IF.ISzIF(NoYes::Yes)
,InventSizeId
#ENDIF
#IF.ICIF(NoYes::Yes)
,InventColorId
#ENDIF
#IF.ILIF(NoYes::Yes)
,InventLocationId
#ENDIF
#IF.IBIF(NoYes::Yes)
,InventBatchId
#ENDIF
#IF.WLIF(NoYes::Yes)
,WMSLocationId
#ENDIF
#IF.WPIF(NoYes::Yes)
,WMSPalletId
#ENDIF
#IF.ISIF(NoYes::Yes)
,InventSerialId
#ENDIF
#IF.IGIF(NoYes::Yes)
,InventGTDId_RU
#ENDIF

where (%1.ConfigId == %2.ConfigId || ! %3.ConfigIdFlag) &&
(%1.InventSizeId == %2.InventSizeId || ! %3.InventSizeIdFlag) &&
(%1.InventColorId == %2.InventColorId || ! %3.InventColorIdFlag) &&
(%1.InventLocationId == %2.InventLocationId || ! %3.InventLocationIdFlag) &&
(%1.InventBatchId == %2.InventBatchId || ! %3.InventBatchIdFlag) &&
(%1.WMSLocationId == %2.WMSLocationId || ! %3.WMSLocationIdFlag) &&
(%1.WMSPalletId == %2.WMSPalletId || ! %3.WMSPalletIdFlag) &&
(%1.InventSerialId == %2.InventSerialId || ! %3.InventSerialIdFlag) &&
(%1.InventGTDId_RU == %2.InventGTDId_RU || ! %3.InventGTDIdFlag_RU)

#InventDimDevelop
-------------------------------------
Однако как показала все блоки условия #IF.___(NoYes::Yes) результируют ложь...и соответственно групировка не добавляется..
Внимание Вопрос!
С чем сравнивать макропеременные ???
ЗЫ. Варианты #IF.CIF(1), #IF.CIF(true), #IF.CIF("Да")... положительного результата не принесли
Старый 13.01.2005, 18:16   #2  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Ну знаете ли! Макрос на момент компиляции уж точно не знает, что хранится в InventDimParm
__________________
Андрей.
Старый 14.01.2005, 05:03   #3  
Alks is offline
Alks
Участник
 
336 / 41 (2) +++
Регистрация: 23.07.2004
Адрес: г. Новокузнецк
Работайте через классы Query и QueryRun - для них в InventDimParm есть замечательные методы начинающиеся на query* - например queryAddSortField и т.п.
Старый 14.01.2005, 10:30   #4  
AlterEgo is offline
AlterEgo
Участник
 
7 / 10 (1) +
Регистрация: 13.01.2005
Адрес: Донецк
Thumbs up
Ага.. всем спасибо..!!!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Расширение возможностей стандартных прав доступа Stainless DAX: Программирование 2 19.06.2008 10:36
Расширение запроса на форме InventOnHand gefr DAX: Программирование 5 19.09.2007 16:05
Выборка с помощью макроса Dronas DAX: Программирование 5 18.09.2007 14:39
Dynamics AX Geek: #InventDimJoin Blog bot DAX Blogs 0 28.10.2006 16:40
Расширение .PFD vr DAX: Прочие вопросы 1 30.11.2004 10:33
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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