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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.05.2008, 13:34   #1  
Alex_KD is offline
Alex_KD
Участник
AxAssist
MCBMSS
Соотечественники
 
522 / 362 (14) ++++++
Регистрация: 06.07.2006
Адрес: Melbourne, Down Under
AX2009 и AX4.0 совместимый код. Как?
Есть такой запрос, как сделать так чтобы он работал как на 4ке так и на 5ке?
С 5кой все ок, а в 4ке ругается на тип utcdatetime, далее на класс DateTimeUtil. Как заставить компилятор игнорировать неизвестные типы?

X++:
    UtilIdElements utilIdElements;
    TimeOfDay  modifyTime;
    TransDate  modifyDate;

    #if.ax5
        utcdatetime datetime;
    #endif   
    ;

    modifyTime = timenow();
    modifyDate = systemdateget();

    #if.ax5
      datetime = DateTimeUtil::newDateTime(modifyDate, modifyTime);
    #endif

    while select name, id, recordType from utilIdElements
    where  
        #if.ax5
         ((utilIdElements.createdDateTime > datetime) ||
          (utilIdElements.modifiedDateTime > datetime))
        #endif

        #ifnot.ax5
        (( utilIdElements.createdDate  == modifyDate && utilIdElements.createdTime  > modifyTime) ||
         ( utilIdElements.modifiedDate == modifyDate && utilIdElements.modifiedTime > modifyTime))
        #endif

       {
          ...
       }
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0
Старый 07.05.2008, 14:52   #2  
Stitch_MS is offline
Stitch_MS
Участник
Аватар для Stitch_MS
Соотечественники
 
397 / 478 (16) +++++++
Регистрация: 27.02.2006
Адрес: Дания
Похоже, где-то в четверке прописано #define.ax5. Попробуйте эту строку закомментировать.
За это сообщение автора поблагодарили: Alex_KD (1).
Старый 07.05.2008, 15:07   #3  
Alex_KD is offline
Alex_KD
Участник
AxAssist
MCBMSS
Соотечественники
 
522 / 362 (14) ++++++
Регистрация: 06.07.2006
Адрес: Melbourne, Down Under
Угу.
Неправильно прописал, надо так:

X++:
 #AOT
    #if.ReferencesPath
        #define.Ax4
    #endif

    #if.WorkflowCategoriesPath
       #define.Ax5
    #endif
Интересно, поймет ли 3ка....
Выходит, что если не срабатывает #define компилятор не смотрит внутрь.

Комментировать не выход - должно работать везде без изменения кода.
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0
Старый 07.05.2008, 18:18   #4  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
А если вместо зашитых запросов использовать Query/QueryRun, то можно будет обойтись даже без директив условной компилляции...
Старый 07.05.2008, 18:26   #5  
Alex_KD is offline
Alex_KD
Участник
AxAssist
MCBMSS
Соотечественники
 
522 / 362 (14) ++++++
Регистрация: 06.07.2006
Адрес: Melbourne, Down Under
Цитата:
Сообщение от gl00mie Посмотреть сообщение
А если вместо зашитых запросов использовать Query/QueryRun, то можно будет обойтись даже без директив условной компилляции...
А как поймете на что Range ставить:
на createdDateTime или createdDate + createdTime?
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0
Старый 08.05.2008, 00:22   #6  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Alex_KD Посмотреть сообщение
А как поймете на что Range ставить: на createdDateTime или createdDate + createdTime?
Можно было бы проверять наличие полей createdDateTime/modifiedDateTime, к примеру, с помощью fieldname2id() - если идентификаторы полей с такими названиями ненулевые, стало быть, они существуют, и код выполняется на 5-ке. Впрочем, тогда код потеряет изрядную долю наглядности...
Старый 08.05.2008, 01:10   #7  
Alex_KD is offline
Alex_KD
Участник
AxAssist
MCBMSS
Соотечественники
 
522 / 362 (14) ++++++
Регистрация: 06.07.2006
Адрес: Melbourne, Down Under
Согласен, можно.
У меня получение Editor e; в 5ке сделано тоже через
X++:
#if.ax5
    ....
#endif
Так что думаю пусть так остается.
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0
Теги
ax2009, ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ошибка в InterCompanyInventDim (AX4 и AX2009) Bishop DAX: Программирование 2 17.12.2008 15:08
axcoder: AxPath pugin for Tabax which works with Ax3, Ax4, Ax2009 Blog bot DAX Blogs 0 08.11.2008 02:11
Код палеты Varmen DAX: Функционал 10 27.03.2008 15:54
Есть ли возможность вызывать код с вышележащих слоев ? FishLog DAX: Программирование 0 07.09.2004 13:39
Ошибка "необходимо заполнить 'основной код сотрудника' " alpin DAX: Функционал 2 04.12.2003 16:28

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

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

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