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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 31.01.2011, 17:13   #1  
Alexius is offline
Alexius
Участник
Аватар для Alexius
 
461 / 248 (9) ++++++
Регистрация: 13.12.2001
А такой вариант ?
X++:
    qbdsInventTrans.addRange(fieldNum(InventTrans, DateFinancial)).value(strfmt('(((%1.%2 + %3.%4 - %5) > 0))',
                                                                                 query.dataSourceTable(tableNum(InventTrans)).name(),
                                                                                 fieldStr(InventTrans, DateFinancial),
                                                                                 query.dataSourceTable(tableNum(Table2)).name(),
                                                                                 fieldStr(Table2, Days),
                                                                                 date2StrXpp(systemDateGet()));
Старый 31.01.2011, 17:28   #2  
Corel is offline
Corel
Участник
Ex AND Project
 
73 / 15 (1) ++
Регистрация: 19.04.2007
Цитата:
Сообщение от Alexius Посмотреть сообщение
А такой вариант ?
X++:
    qbdsInventTrans.addRange(fieldNum(InventTrans, DateFinancial)).value(strfmt('(((%1.%2 + %3.%4 - %5) > 0))',
                                                                                 query.dataSourceTable(tableNum(InventTrans)).name(),
                                                                                 fieldStr(InventTrans, DateFinancial),
                                                                                 query.dataSourceTable(tableNum(Table2)).name(),
                                                                                 fieldStr(Table2, Days),
                                                                                 date2StrXpp(systemDateGet()));
Не-не-не... Не получится никак заставить SQL прибавлять / вычитать из даты дни так, как аксапта это делает с типом Date, т.к. в SQL это поле имеет формат DateTime. Это будет сложение километров с милиметрами. Кстати, похоже, и вычитание даты из даты тоже даёт эффект только при сравнении с нулём, то есть, в таком случае можно просто свести к сравнению. Ищу, где же косяк в варианте с предварительно составленным мапом, может скобку где пропустил...

Последний раз редактировалось Corel; 31.01.2011 в 17:32.
Старый 31.01.2011, 17:42   #3  
Alexius is offline
Alexius
Участник
Аватар для Alexius
 
461 / 248 (9) ++++++
Регистрация: 13.12.2001
Цитата:
Сообщение от Corel Посмотреть сообщение
Не-не-не... Не получится никак заставить SQL прибавлять / вычитать из даты дни так, как аксапта это делает с типом Date, т.к. в SQL это поле имеет формат DateTime.
Не понимаю, следующий запрос на MS SQL корректно отрабатывает, т.е. вторая дата на один день меньше (для Oracle должно быть аналогично):
Код:
SELECT TOP 1 DATEFINANCIAL, DATEFINANCIAL - 1
FROM INVENTTRANS
WHERE DATEFINANCIAL <> '19000101'
PS. Неплохо бы отслеживать профайлером результирующий запрос
PS2. Городить полноценный полигон мне лень
Теги
querybuildrange, дата, расширенный фильтр

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axaptafreak: Label for query range cannot be modified in AX 5.0 Blog bot DAX Blogs 0 30.08.2007 16:50
axaptafreak: Label for Query Range cannot be modified (still) Blog bot DAX Blogs 2 25.07.2007 10:09
Fred Shen: Date data type in Query Range Value Expression Blog bot DAX Blogs 0 28.10.2006 16:40
Автоматическая подстановка Range в Query Владимир Максимов DAX: Программирование 9 30.03.2004 16:48
Как вытащить информацию о Range из Query raz DAX: База знаний и проекты 1 26.03.2004 11:10

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

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

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