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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.07.2011, 16:40   #42  
Pudd is offline
Pudd
Участник
 
34 / 10 (1) +
Регистрация: 31.03.2010
Народ подскажите как в AddRange вставить дипозон значений?
Обясняю, суть такая:
есть запрос
часть запроса qbdsrpayHistory.addRange(fieldnum(rpayHistory, StartDate)).value(strfmt("> %1", startDate - 1));
и если добавить ещё одну строку qbdsrpayHistory.addRange(fieldnum(rpayHistory, StartDate)).value(strfmt("< %1", endDate + 1));
то они соединяются по OR т к rpayHistory.StartDate в обоих полях
а по смыслу нужно через AND
В запросе через интерфейс можно ввести диапозон через 2 точки и все хорошо
Вопрос как сделать тоже програмно
запрос получается такой
SELECT * FROM RPayHistory WHERE ((StartDate>{ts '2010-05-05 00:00:00.000'}) OR (StartDate<{ts '2010-05-07 00:00:00.000'})) AND ((operationType=2)) JOIN * FROM EmplTable WHERE RPayHistory.Number = EmplTable.EmplId

Извеняюсь если туплю или объяснил сумбурно
Старый 29.07.2011, 17:20   #43  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
X++:
qbdsrpayHistory.addRange(fieldnum(rpayHistory, StartDate)).value(SysQuery::range(startDate, endDate));
уже не модно?
За это сообщение автора поблагодарили: Pudd (1).
Старый 29.07.2011, 17:39   #44  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Pudd Посмотреть сообщение
В запросе через интерфейс можно ввести диапозон через 2 точки
Вы не поверите , но "через интерфейс" и через addRange это одно и тоже
Wamr правильно подсказал метод SysQuery::range как раз и использует те самые две точки. Есть ещё некоторые ньансы для случая открытого диапазона. Посмотрите сами код метода SysQuery::range и всё сразу поймёте
Старый 16.10.2013, 17:41   #45  
IvanS is offline
IvanS
Участник
Аватар для IvanS
 
241 / 44 (2) +++
Регистрация: 30.06.2006
Адрес: Екатеринбург
Подниму тему. Тоже столкнулся с проблемой сложного запроса с участие Dimension.
Как понимаю решения так и нет?
То есть не получается реализовать такой запрос
X++:
'((Dimension[5] == "%1") || (Author == "%1"))'

Последний раз редактировалось IvanS; 16.10.2013 в 17:47.
Старый 16.10.2013, 19:16   #46  
IvanS is offline
IvanS
Участник
Аватар для IvanS
 
241 / 44 (2) +++
Регистрация: 30.06.2006
Адрес: Екатеринбург
В общем решение уже есть
Взято с axaptapedia.
и из темы Ошибка в QueryBuildRange
Цитата:
Query Expressions syntax for array fields such as the Dimension field is known to be suppported since the version 5.0.1500.2116 (RU4) for AX 2009. Previous kernel versions are not tested to support Query Expressions syntax for array fields; it is also known not to work at all in Axapta 3.
X++:
queryBuildRange.value(strFmt('((%1.%2 == "%4") || (%1.%3 == "%5"))', 
    queryBuildDataSource.name(),
    fieldid2name(tablenum(<table>), fieldid2ext(fieldnum(<table>, Dimension), Dimensions::code2ArrayIdx(SysDimension::Center))), 
    fieldid2name(tablenum(<table>), fieldid2ext(fieldnum(<table>, Dimension), Dimensions::code2ArrayIdx(SysDimension::Purpose))), 
    "some dim2 value", 
    "some dim3 value"));

Последний раз редактировалось IvanS; 16.10.2013 в 19:18.
За это сообщение автора поблагодарили: leva (1).
Теги
query, программно, фильтр, запрос (query)

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вопрос по Query с агрегатной функцией Jarad DAX: Программирование 11 31.10.2006 21:10
Вопрос про Query 6apcyk DAX: Программирование 5 16.11.2005 19:08
Вопрос по query и join tischenko DAX: Программирование 2 20.07.2005 13:05
Вопрос по запросу (query) Александр_1975 DAX: Программирование 2 23.01.2004 17:35
Вопрос знатокам QBE и Query в AXAPTA Maxim Gorbunov DAX: Программирование 6 27.12.2002 13:19

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

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

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