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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.10.2007, 12:20   #1  
SeregaK is offline
SeregaK
Участник
 
76 / 21 (1) +++
Регистрация: 10.11.2006
Предварительная фильтрация в отчётах (CRMAF)
Ситуация. В отчёте необходимо использовать два набора данных для заполнения двух соответствующих таблиц. Оба набора данных получаются Select-ом по одной и той же вьюхе. Необходимо фильтровать данные этих вьюх используя префикс CRMAF.
Вопрос. Пусть выборку делаем по таблице FilteredAccount, тогда если для заполнения первого набора данных использовать запрос Select * from FilteredAccount as CRMAF_FilteredAccount Where «условия для первого набора данных», а для второго использовать запрос Select * from FilteredAccount as CRMAF_FilteredAccount Where «условия для второго набора данных». Crm даст один фильтр по объекту Account, но этот фильтр отработает только на одном из селектов. А если использовать разные имена alias-ов, т.е в первом селекте CRMAF_FilteredAccount1 и во втором CRMAF_FilteredAccount2.
То CRM даст два фильтра по объекту Account, каждый из которых отработает на своём селекте. Почему в варианте с одним фильтром (т.е. с одиноковыми alias-ами)фильтр отрабатывает только на одном из запросов и как сделать так, чтобы он отрабатывал на всех?
Замечание. Такая же проблема возникает в отчёте с одним селектом, если в этом селекте необходимо несколько раз обращаться за получением одних и тех же записей с использованием предварительной фильтрации, т.е. если используется оператор UNION или подзапрос.
Старый 25.10.2007, 10:23   #2  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Интересная проблема. Никогда с этим не сталкивался. Что за задача? Можно увидеть сами запросы?
Старый 25.10.2007, 17:17   #3  
SeregaK is offline
SeregaK
Участник
 
76 / 21 (1) +++
Регистрация: 10.11.2006
Вот, пожалуйста!
SELECT TJ.new_spstage,InStepTable.New_stepnumber as StepNumber,COUNT(*) as InForThisStep,(SELECT COUNT(*) FROM (SELECT * FROM FilteredNew_TransactionJournal as CRMAF_FilteredNew_TransactionJournal) as TJOut
INNER JOIN FilteredNew_stepofvoronka as OutStepTable
ON (OutStepTable.New_Name=TJOut.new_spstage)AND(OutStepTable.New_voronka_step=TJOut.new_crater_stage)
WHERE
(TJOut.new_action=1)
AND
(TJOut.new_crater_stagename=@vorname)
AND
(OutStepTable.New_stepnumber=InStepTable.New_stepnumber-1)
)as OutFromBeforeStep
FROM (SELECT * FROM FilteredNew_TransactionJournal as CRMAF_FilteredNew_TransactionJournal) as TJ
INNER JOIN FilteredNew_stepofvoronka as InStepTable
ON (InStepTable.New_Name=TJ.new_spstage)AND(InStepTable.New_voronka_step=TJ.new_crater_stage)
WHERE
(TJ.new_action=0)
AND
(TJ.new_crater_stagename=@vorname)
AND
(TJ.new_spstage!='Потенциальное предложение')
AND
(InStepTable.New_stepnumber!=1)
Group by TJ.new_spstage,InStepTable.New_stepnumber
ORDER BY InStepTable.New_stepnumber
Старый 31.10.2007, 20:55   #4  
EvgenijM is offline
EvgenijM
Участник
 
11 / 14 (1) ++
Регистрация: 09.10.2007
Адрес: Вильнюс, Литва
Думаю эту ситуацию можно обойти, создав два под-отчёта (Sub-report) и вложив их в основной отчёт.
Старый 31.10.2007, 23:18   #5  
SeregaK is offline
SeregaK
Участник
 
76 / 21 (1) +++
Регистрация: 10.11.2006
Пробовал уже, тоже не работает!
Старый 01.11.2007, 09:16   #6  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
А что если использовать dynamic SQL? В SDK в разделе Using Filters in a Report пишут как создать параметр который будет описателем представления, на которое повесятся фильтры.
DECLARE @SQL nvarchar(4000)
SET @SQL = '
SELECT * FROM ('+@CRM_FilteredAccount+') AS FA'
EXEC (@SQL)
Возможно тогда выборки порйдут по одному и тому же фильтрованному представлению?
В свое время я пробовал сделать нечто подобное, но столкнулся с проблемой, что при построении таких запросов не удается воспользоваться всеми прелестями конструктора отчетов - он просто не увидит поля, которые возвращаются из такого запроса и не даст их использовать. Как решить эту проблему я так и не понял. Самое интересное, что все стандартные отчеты в которых используется эта фитча, после загрузки и преобразования тоже не компилятся...
Старый 01.11.2007, 16:59   #7  
SeregaK is offline
SeregaK
Участник
 
76 / 21 (1) +++
Регистрация: 10.11.2006
И динамические запросы пробовал, в подотчётах они отрабатывают но опять таки не фильтруются! По поводу динамических запросов и констуктора отчётов: в вижуал студио набору данных, который получается посредством динамичекого SQL можно указать какие поля будут возврашены запросом (в свойствах этого DataSet)!
Старый 02.11.2007, 09:41   #8  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Цитата:
Сообщение от SeregaK Посмотреть сообщение
можно указать какие поля будут возврашены запросом (в свойствах этого DataSet)!
Подробнее можно?
Старый 02.11.2007, 15:27   #9  
SeregaK is offline
SeregaK
Участник
 
76 / 21 (1) +++
Регистрация: 10.11.2006
Во вложении скрин! Жмыхаем на троеточии около поля выбора DataSet-ов, появляется окошко Dataset, переходим на вкладку Fields и указываем имена возврашаемых динамическим запросом полей, а если в запросе есть элиасы, то элиасов! после чего поля этого датаСет будут доступны в конструкторе отчётов!
Миниатюры
Нажмите на изображение для увеличения
Название: ReportDesigner.JPG
Просмотров: 538
Размер:	124.9 Кб
ID:	3018  

Последний раз редактировалось SeregaK; 02.11.2007 в 15:30.
За это сообщение автора поблагодарили: Артем Enot Грунин (1).
Старый 06.11.2007, 07:59   #10  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Спасибо, никогда б там искать не стал! Я на закладке со списком датасетов пытался что-то добавить, но там такой функциональности не предусмотрено. Страно, что готовые отчеты при этом импортируются без этих филдов. ???
Старый 06.11.2007, 13:33   #11  
SeregaK is offline
SeregaK
Участник
 
76 / 21 (1) +++
Регистрация: 10.11.2006
Не знаю почему, но у меня импортируются нормально!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
не отображаются значения из picklist в отчетах valk Dynamics CRM: Разработка 6 19.02.2009 22:51
Фильтрация многоуровневых отчетов Олег Михайлов Dynamics CRM: Разработка 7 28.09.2008 13:36
Неполная информация в отчетах Pete V Dynamics CRM: Администрирование 6 22.07.2008 11:38
Предварительная фильтрация по теме Черничкин Станислав Dynamics CRM: Разработка 3 21.12.2007 08:10
фильтр CRMAF_ в отчетах kras Dynamics CRM: Разработка 5 15.12.2006 12:44

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

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

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