21.01.2016, 15:16 | #1 |
Участник
|
Как добавить 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 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: kitty (1). |
21.01.2016, 15:34 | #3 |
Участник
|
|
|
21.01.2016, 15:40 | #4 |
Участник
|
Выполнится, если будет пересечение условий в левой (пользователь может ввести что угодно, в том числе и диапазоны) и правой части
to kitty добавляйте ваше условие как расширенный фильтр для служебных полей, TableId и RecVersion, к примеру
__________________
Axapta v.3.0 sp5 kr2 |
|
21.01.2016, 15:42 | #5 |
Участник
|
Спасибо. мне как раз по InventDim & InventTable нужны критерии, но, как-то оч уж мудрено
Почему Tmp таблица как фильтр не подойдет? |
|
21.01.2016, 15:45 | #6 |
Участник
|
Вы не указали версию системы)
Но если речь идет о InMemory временной таблице, то ее нельзя присоединить как дочернюю в запрос - ядро будет ругаться при выполнении
__________________
Axapta v.3.0 sp5 kr2 |
|
21.01.2016, 15:49 | #7 |
Участник
|
прошу прощения, Ax2012 R2
да, TempDB |
|
21.01.2016, 15:57 | #8 |
Участник
|
Если в качестве фильтра у вас выступает конечный набор записей, то возможно вам подойдёт Выборка произвольных записей одним запросом
|
|
21.01.2016, 16:42 | #9 |
Участник
|
Вдруг поможет)
InnerJoin к таблице ее-же. Во вторую программно прописал свой Range. Сделал его скрытым. В итоге пользователь ползает по первой таблице, но ограничен условием на второй, которое поменять не может. Правда Ax2009. Не знаю на сколько это правильно... |
|