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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.02.2003, 14:05   #1  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
? Как наложить на запрос сложный фильтр?
Друзья мои,

У меня такое чувство, что данный вопрос уже обсуждался, но поиск мне не помогает. Может, подскажете ключевые слова?

Суть проблемы (на простом отвлеченном примере). Предположим, в форме План счетов я хочу увидеть:

1. только активные счета, удовлетворяющие шаблону «20*»
2. балансовые счета, удовлетворяющие шаблону «10*»

Можно ли в в форме План счетов получить набор счетов, удовлетворяющих обоим условиям одновременно с помощью стандартной функциональности фильтрации (кнопка [F3])? Возможно ли такое в Х++?
__________________
С уважением,
glibs®
Старый 03.02.2003, 14:33   #2  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
1. только активные счета, удовлетворяющие шаблону «20*»
2. балансовые счета, удовлетворяющие шаблону «10*»
Это два различных фильтра или интересует именно объединение результатов этих двух фильтров ?
Старый 03.02.2003, 15:22   #3  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Именно объединение. Как по очереди наложить — это понятно.
__________________
С уважением,
glibs®
Старый 03.02.2003, 17:02   #4  
Vladislav Yushakov is offline
Vladislav Yushakov
Участник
 
47 / 10 (1) +
Регистрация: 10.01.2003
range.value("20*,10*")
Старый 03.02.2003, 17:09   #5  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
А остальное?

Нужно:
Номер LIKE '10*' AND Тип == "Балансовый" OR Номер LIKE '20*' AND Блокировано == "Нет"
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 03.02.2003, 17:28   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
вроде обсуждалось. и на technet'е, и здесь.

В range можно в скобках указывать названия полей.
Сделать можно только при помощи программирования.
В AOT'е накидыванием при помощи drag'n'drop'а этого сделать нельзя.
Старый 03.02.2003, 17:31   #7  
Vladislav Yushakov is offline
Vladislav Yushakov
Участник
 
47 / 10 (1) +
Регистрация: 10.01.2003
Увы, но в общем случае такое нельзя, по крайней мере через query.
Через select - пожалуйста- нет проблем
Хотя для некоторых конкретных случаев (возможно и данного) можно извернуться (или извратиться) с прилинковкой таблиц (в том числе самих себя). Но гарантировать ничего не могу

После такого тупика я обычно пересматривал постановочные условия и в 99%(!) это действительно оказывалось излишним и требовалось нечто более простое.

Что касается F3 то все что ты сможешь задать в этой форме - ты сможешь сделать и на програмном уровне
Старый 03.02.2003, 17:51   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Еще раз спасибо fed'у.
http://www.axforum.info/forums/showt...=1634#post1634
Старый 03.02.2003, 17:55   #9  
DDA is offline
DDA
Участник
Аватар для DDA
 
61 / 10 (1) +
Регистрация: 02.02.2003
Адрес: Москва
А разве нельзя так ?
Разве нельзя просто нажать правой кнопкой мышЫ и выбрать там найти.
И ввести в поле поиска 10*, 20* и все
???

Или обязательно необходимо программирование?
Старый 03.02.2003, 18:15   #10  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Re: Как наложить на запрос сложный фильтр?
Цитата:
Изначально опубликовано glibs
1. только активные счета, удовлетворяющие шаблону «20*»
2. балансовые счета, удовлетворяющие шаблону «10*»
В такой постановке в форме F3 сделать нельзя, в Х++ можно.

В форме F3 можно выразить условие
1. только счета, удовлетворяющие шаблону «20*»
2. или счета, удовлетворяющие шаблону «10*»

Выразить ИЛИ условие по разным полям в форме F3 сложно. На это есть причины.


В общем случае, в форме F3 можно выразить коньюктивную форму логического выражения... хм, как бы это объяснить...
(<условие_поля1> ИЛИ <условие_поля1> ИЛИ...) И (<условие_поля2> ИЛИ <условие_поля2> ИЛИ...) И...

ИЛИ - это запись в одной строке запроса F3
И - это запись в нескольких строках.
Если одно и то же поле присутствует в нескольких строках запроса, то аксапта подставляет ИЛИ условие.

Если интересно, можно поискать в интернете по ключевым словам "query by example" или QBE и почитать про теорию и ограничения, непрограммистских запросов, а также почему и зачем сделано именно так.
Старый 04.02.2003, 12:50   #11  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Re: Re: Как наложить на запрос сложный фильтр?
Андре, Vladislav Yushakov, Maxim Gorbunov, mazzy, большое спасибо за исчерпывающий ответ.
Цитата:
Изначально опубликовано mazzy
Если интересно, можно поискать в интернете по ключевым словам "query by example" или QBE и почитать про теорию и ограничения, непрограммистских запросов, а также почему и зачем сделано именно так.
Спасибо за совет. Я с QBE'шным редактором сталкивался только в MS Access. Эта штуковина в нем довольно мощная (она меня учила SQL'ю). Видать и разбаловала.

Реального насущного примера необходимости такой фильтрации сейчас привести не могу. Меня насторожило то, что практически любой отчет, — а главное, — любое задание для пакетной обработки натравливаются на определенный диапазон данных. Более того, есть ряд интерфейсных форм, в которые данные попадают исключительно по запросу (на базе фильтра). Вот и хотелось узнать, какие возможности есть у системы в этом отношении. Честно говоря, я так и думал, но хотел подстраховаться. Заодно, думаю, все получили много полезной информации.

Еще раз спасибо.
__________________
С уважением,
glibs®
Теги
query, range

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Расширенный фильтр в запрос или как то так Sada DAX: Программирование 7 15.01.2009 16:09
Сложный фильтр складских журналов Perc DAX: Программирование 13 31.08.2005 12:42
Как вызывается lookup-форма InventLocationIdLookup из InventJournalTransfer? brm DAX: Программирование 9 09.02.2005 15:37
Ещё один "сложный" запрос Atani DAX: Программирование 5 30.12.2003 11:48
Сложный запрос в DataSoource формы Vasilenko Alexsandr DAX: Программирование 11 27.12.2003 14:54

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

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

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