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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.01.2016, 15:16   #1  
kitty is offline
kitty
Участник
 
364 / 26 (1) +++
Регистрация: 24.05.2005
Как добавить AND фильтр в запрос
Есть диалог с запросом. Пользователь накладывает на запрос критерии.
Мне в коде нужно к этому запросу по AND добавить еще один критерий.
Например, пользователь ввел ItemId range = IT00001,IT00013
А мне нужно добавить фильтр IT00015

Использую AddFilter.
Но получается,что после queryRun все Range пользователя оказываются в Where как фильтры, соединенные по OR,
where ItemId = IT00001 OR IT00013 OR IT00015
в то время, как мне нужно, чтобы мое условие было добавлено как AND:
((ItemId = IT00001) OR ItemId = IT00013)) AND (ItemId = IT00015)

Добавляю фильтр до queryRun.В запросе Outer join-ов нет.

Как добавить условие по AND?
Пока на ум приходит только временную таблицу присоединить, в кот добавлять запись с нужным Item и тогда join c ней моего запроса ограничит выборку. Если это так и это правильное решение, то было бы логично иметь TMP_Filter таблицу с полями всех основных типов и использовать ее во всех проектах, где нужно фильтровать данные. Подскажите, может, существует стандартная уже, типа той же TmpRecIdFilter?

Последний раз редактировалось kitty; 21.01.2016 в 15:24.
Старый 21.01.2016, 15:28   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Диапазон условий
За это сообщение автора поблагодарили: kitty (1).
Старый 21.01.2016, 15:34   #3  
dmn is offline
dmn
Участник
 
9 / 18 (1) ++
Регистрация: 25.09.2014
Цитата:
Сообщение от kitty Посмотреть сообщение
((ItemId = IT00001) OR ItemId = IT00013)) AND (ItemId = IT00015)
Разве такое условие хоть когда-нибудь выполнится?
Старый 21.01.2016, 15:40   #4  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от dmn Посмотреть сообщение
Разве такое условие хоть когда-нибудь выполнится?
Выполнится, если будет пересечение условий в левой (пользователь может ввести что угодно, в том числе и диапазоны) и правой части

to kitty

добавляйте ваше условие как расширенный фильтр для служебных полей, TableId и RecVersion, к примеру
__________________
Axapta v.3.0 sp5 kr2
Старый 21.01.2016, 15:42   #5  
kitty is offline
kitty
Участник
 
364 / 26 (1) +++
Регистрация: 24.05.2005
Спасибо. мне как раз по InventDim & InventTable нужны критерии, но, как-то оч уж мудрено
Почему Tmp таблица как фильтр не подойдет?
Старый 21.01.2016, 15:45   #6  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Вы не указали версию системы)

Но если речь идет о InMemory временной таблице, то ее нельзя присоединить как дочернюю в запрос - ядро будет ругаться при выполнении
__________________
Axapta v.3.0 sp5 kr2
Старый 21.01.2016, 15:49   #7  
kitty is offline
kitty
Участник
 
364 / 26 (1) +++
Регистрация: 24.05.2005
прошу прощения, Ax2012 R2
да, TempDB
Старый 21.01.2016, 15:57   #8  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от kitty Посмотреть сообщение
Почему Tmp таблица как фильтр не подойдет?
Если в качестве фильтра у вас выступает конечный набор записей, то возможно вам подойдёт Выборка произвольных записей одним запросом
Старый 21.01.2016, 16:42   #9  
dmn is offline
dmn
Участник
 
9 / 18 (1) ++
Регистрация: 25.09.2014
Цитата:
Сообщение от kitty Посмотреть сообщение
Как добавить условие по AND?
Вдруг поможет)
InnerJoin к таблице ее-же. Во вторую программно прописал свой Range. Сделал его скрытым. В итоге пользователь ползает по первой таблице, но ограничен условием на второй, которое поменять не может.
Правда Ax2009. Не знаю на сколько это правильно...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Не отрабатывает фильтр / запрос farlander DAX: Программирование 7 07.06.2011 14:23
оборотная ведомость по складу необходимо добавить ещё один фильтр jeky DAX: Программирование 21 06.04.2009 19:03
Расширенный фильтр в запрос или как то так Sada DAX: Программирование 7 15.01.2009 16:09
Как в query добавить фильтр по аналитике (Dimension)? Roman812 DAX: Программирование 21 15.07.2005 09:53
Быстрый способ добавить фильтр на FormDataSource Maxim Gorbunov DAX: База знаний и проекты 28 14.06.2005 17:16

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

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

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