|
![]() |
#1 |
Участник
|
![]() Цитата:
Сообщение от 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(); } Если просто накладывать фильтр на поле прямо на форме - работает. Как побороть? Последний раз редактировалось gefr; 28.02.2014 в 11:26. Причина: уточнение |
|
![]() |
#2 |
Участник
|
Сам разобрался: надо было использовать другой фильтр.
Неправильно для 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"); |
|