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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.06.2012, 10:26   #1  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Как наложить фильтр внутри View?
Вот есть вьюшка из приджойненных таблиц:

InventTable
InventSum

Записи группируются по ItemId
Выводится сумма по AvailablePhys
Проблема в том, что мне в коде нужно добавить фильтр на одно из строковых полей InventSum, а для этого приходится добавлять группировку по этому полю во вьюшку (чтобы вывести это поле как одно из полей вьюшки), но мне не нужна эта группировка, а нужен фильтр внутри вьюшки, внутри InventSum. Потому что в таком случае, на гриде записи начинают биться по этой группировке. Как тут быть вообще?

И еще, подскажите, пожалуйста, что означает св-во Relations во вложенном датасорсе (InventSum) внутри вьюшки?
Старый 21.06.2012, 10:42   #2  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Во view в datasource есть ranges туда можно добавить поле, и в его свойствах задать значение (свойсво Value).
Это не работает?
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 21.06.2012, 10:45   #3  
Dark Light is offline
Dark Light
Участник
 
64 / 49 (0) +++
Регистрация: 17.02.2009
Адрес: Омск
- Relations - это по каким полям InventSum привязан к InventTable. Если он у Вас пустой - значит связи нет. Поставьте у датасорса InventSum свойство relations=true.
- Нельзя динамически навесить ограничение на поле InventSum. Единственный способ - это править в коде объект АОТ. НЕ ВЗДУМАЙТЕ ТАК ДЕЛАТЬ!
- Раз у Вас View сразу суммирует по AvailablePhys, то просто добавьте в View группировку по нужному вам полю, в запросе на форме сделайте ограничение на это поле, а затем ещё одно суммирование по AvailablePhys (но это уже будет поле View, а не InventSum'а).

А чего хотите добиться? Действительно ли здесь нужен View?
За это сообщение автора поблагодарили: Eldar9x (3), S.Kuskov (2).
Старый 21.06.2012, 11:14   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от lev Посмотреть сообщение
Во view в datasource есть ranges туда можно добавить поле, и в его свойствах задать значение (свойсво Value).
Это не работает?
Как я понял проблема в том, что сделать это нужно в runTime, т.е. значение Value заранее не известно. Т.е. параметризованное представление. Но, на сколько я знаю, такие View аксапта, да и сам MS SQL Server не поддерживает.
Старый 21.06.2012, 11:59   #5  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Цитата:
Сообщение от Dark Light Посмотреть сообщение
- Раз у Вас View сразу суммирует по AvailablePhys, то просто добавьте в View группировку по нужному вам полю, в запросе на форме сделайте ограничение на это поле, а затем ещё одно суммирование по AvailablePhys (но это уже будет поле View, а не InventSum'а).

А чего хотите добиться? Действительно ли здесь нужен View?
Мне нужен расширенный фильтр по компаниям+складам. Но аксапта не позволяет такое сделать. При попытке наложить фильтр в Query на поле DataAreaId при AllowCrossCompany = true выходит ошибка:

Цитата:
Фильтрация на уровне источника данных не разрешена для межфирменного запроса.
С другой стороны, она позволяет это сделать в том случае, если в качестве источника данных выступает не таблица, а вьюшка, у которой создано поле по DataAreaId, например, CompanyId. Так вот на это поле фильтр накладывается без проблем.

Можно поподробнее о повторном суммировании по AvailablePhys? Вот, допустим, есть грид. Так как на вьюшке стоит группировка по складам, то строчки дробятся в разрезе складов. Каким образом их схлопнуть на этом гриде?
Старый 21.06.2012, 12:23   #6  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
Можно поподробнее о повторном суммировании по AvailablePhys? Вот, допустим, есть грид. Так как на вьюшке стоит группировка по складам, то строчки дробятся в разрезе складов. Каким образом их схлопнуть на этом гриде?
А собственно также, как если бы это была бы не вьюшка, а обыкновенная таблица
Старый 21.06.2012, 14:27   #7  
Dark Light is offline
Dark Light
Участник
 
64 / 49 (0) +++
Регистрация: 17.02.2009
Адрес: Омск
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
Мне нужен расширенный фильтр по компаниям+складам. Но аксапта не позволяет такое сделать. При попытке наложить фильтр в Query на поле DataAreaId при AllowCrossCompany = true выходит ошибка:
Да, есть такое ограничение. Если нужно только ради этого, тогда зачем вообще делать суммирование/группировку на уровне View? Не думаю, что будет быстрее.

P.S.: думаю, если немного напрячься, то можно написать джоб, который автоматически делает AllowCrossCompany View для любой таблицы и обновляет его, когда таблица меняется.

Последний раз редактировалось Dark Light; 21.06.2012 в 14:29.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Возможность наложить фильтр на форму на DisplayField. dynamax DAX: Программирование 3 27.10.2009 15:17
Reread() на форме c View KpecT DAX: Программирование 8 11.11.2008 13:00
Обновление данных в View rrkrivov DAX: Программирование 5 08.04.2005 20:56
View's - возможность добавления новых записей Андре DAX: Программирование 13 16.02.2005 12:16
Как наложить на запрос сложный фильтр? glibs DAX: Программирование 10 04.02.2003 12:50

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

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

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