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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.02.2014, 11:24   #1  
gefr is offline
gefr
Участник
Аватар для gefr
MCBMSS
 
147 / 17 (1) ++
Регистрация: 01.11.2004
Адрес: МО, Котельники
Angry А другой вариант addRange и outer join
Цитата:
Сообщение от Alex P Посмотреть сообщение
Спасибо всем, кто ответил. Проблема разрешилась по методу - "А если немного подумать-?". Простая ошибка. Если Data Source привязан по join к master - таблице, то у него номер в query не 1, а 2. ( this.query().dataSourceNo(2).addRange( ....) )
По поводу баяна - простая задача типа : Есть услуги, есть районы , есть тарифы на услуги, которые зависят от районов. Делается grid в котором услуги и тарифы в одной строке (для ввода тарифов), есть еще один grid по районам, перемещение по районам отбирает тариф для данной услуги только для этого района.
Не срабатывает в другой ситуации:
есть запрос на форме типа
X++:
select * from SalesLine outer join Name from EcoResCategory where...
Запрос стандартный, отрабатывает правильно.
Нужно наложить фильтр на EcoResCategory.Name
Делаю так:
X++:
    crCategoryFilter = salesLine_ds.query().dataSourceTable(tableNum(EcoResCategory)).addRange(fieldNum(EcoResCategory, Name));
...
X++:
void crSetRange(){
    crCategoryFilter.value(UseCategory.checked()?CategoryFilter.valueStr():"");
    SalesLine_ds.executeQuery();
    }
В результате этого просто значения EcoResCategory , не подпадающие под фильтр, показываются, как не выбранные.
Если просто накладывать фильтр на поле прямо на форме - работает.
Как побороть?

Последний раз редактировалось gefr; 28.02.2014 в 11:26. Причина: уточнение
Старый 28.02.2014, 12:06   #2  
gefr is offline
gefr
Участник
Аватар для gefr
MCBMSS
 
147 / 17 (1) ++
Регистрация: 01.11.2004
Адрес: МО, Котельники
Сам разобрался: надо было использовать другой фильтр.

Неправильно для outer join:
crCategoryFilter = salesLine_ds.query().dataSourceTable(tableNum(EcoResCategory)).addRange(fieldNum(EcoResCategory, Name));

Правильно для outer join:
crCategoryFilter = salesLine_ds.query().addQueryFilter( salesLine_ds.query().dataSourceTable(tableNum(EcoResCategory)),"Name");
Теги
addqueryfilter, addrange, outer join

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проблема с Lookup gefr DAX: Программирование 2 05.07.2007 14:45
Расширенный AddRange и OuterJoin Russland DAX: Программирование 0 04.07.2006 16:36
Опять про OuterJoin нескольких таблиц murad DAX: Программирование 1 15.05.2006 10:26
Как добавить в addRange условие по "или" на контейнерные поля? Lora DAX: Программирование 9 29.11.2004 13:52
Проблема: русские шрифты в отчетах, формируемых на сервере. Anais DAX: Администрирование 3 17.11.2003 13:20

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

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

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