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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.02.2005, 14:32   #1  
Koriolis is offline
Koriolis
Участник
 
20 / 10 (1) +
Регистрация: 14.02.2005
Адрес: Москва
Возможность использования Like в QueryBuildRange
После долгого изучения этого форума так и не нашел ответа на вопрос.
Можно ли как-то использовать Like в запросе типа такого:

query.dataSourceTable(TableNum(State)).addRange(State, 'Recid').value('((StateId like "77*") || (Name like "77*"))');

При такой записи получаю ошибку: "не хватает скобки". Если заменить "Like" на "=", то ошибки нет, но и результата тоже нет.

Возможно, кто-то подскажет другой путь решения этой проблемы (по крайней мере Mazzy неоднократно в этом форуме (и не только в этом) упоминал, что если я пытаюсь использовать "Like", то что-то я делаю не так).
Итак, имеем Web portal. Обычная веб форма для ввода адреса. У строки с выбором региона есть кнопка lookup, по которой открывается окошко со списком регионов с полями Id и Name. Есть там строчка для ввода фильтра и при ней кнопка "Поиск".
Требуется, чтобы при нажатии на эту кнопку поиск введенного значения происходил как по полю Id, так и по полю Name (причем именно ИЛИ). При этом поиск должен быть именно по подстроке.
Старый 14.02.2005, 14:45   #2  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
А как реанирует на "=="?

query.dataSourceTable(TableNum(State)).addRange(State, 'Recid').value('((StateId == "77*") || (Name == "77*"))');

С Уважением,
Георгий.
Старый 14.02.2005, 15:03   #3  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
с like 'или' по разным полям не пройдёт
Старый 14.02.2005, 15:16   #4  
Koriolis is offline
Koriolis
Участник
 
20 / 10 (1) +
Регистрация: 14.02.2005
Адрес: Москва
Цитата:
Изначально опубликовано George Nordic
А как реанирует на "=="?
Точно также, как и на "=". Пробовал. Like не выходит. "=" и "==" накладывают условие по точному сравнению, а не по подстроке.
Старый 14.02.2005, 16:33   #5  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
http://www.axforum.info/forums/showt...?threadid=4247
Старый 14.02.2005, 17:43   #6  
Koriolis is offline
Koriolis
Участник
 
20 / 10 (1) +
Регистрация: 14.02.2005
Адрес: Москва
Спасибо. Я уж думал, что все ветки на этом форуме просмотрел. Оказалось, что были еще 3, которых я не видел.

Итого. Собственно варианта предлагалось 2.
1) Добавление стольких датасорсов, сколько полей необходимо включить в фильтр.
2) Использование select вместо query.

1-й вариант не нравится из-за своей громоздкости и корявости. С ужасом думаю о том, что пользователю вдруг понадобится поиск(фильтр) по 10 полям...
2-й вариант был бы неплох, но он неуниверсален. Даже в моем примере, query уже имеет один range: CountryId = RU. Если я вместо добавления фильтров буду их заменять, может повылезать много лишнего.

Ввиду того, что красивого и правильного решения найти не удалось, было решено забить на это. Добавил на форму дополнительный контрол для выбора поля, по которому будет проводиться поиск(фильтрация). Поскольку поля по ИЛИ теперь связывать не надо, то оставил стандартный AddRange().Value('*подстрока*').
Теги
запрос (query), ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Fred Shen: 'Not Like' in Dynamics AX Blog bot DAX Blogs 0 28.10.2006 16:40
Использование "like" при работе с классом "QueryBuildRange" poul DAX: Программирование 18 11.08.2006 12:20
как правильно использовать not like polygris DAX: Программирование 1 06.05.2006 16:59
like запрос с использованием query Vadik Shiryakoff DAX: Программирование 7 13.03.2006 12:05
Где работают like'и? Mechanizm DAX: Программирование 4 16.04.2004 11:33

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

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

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