Источник:
http://ms-dynamics-crm.com.ua/2010/1...and-parameter/
==============
Как вы знаете для Microsoft Dynamics CRM можно создавать отчеты, которые будут доступны для определенных типов записей: контактов, организаций, заказов и др. Для это необходимо использовать фильтрованные представления в базе данных: FilteredContact, FilteredAccount … и указать в настройке отчета необходимые данные в пунктах: «Связанные типы записей» и «Отобразить в».
Например, такой запрос:
select name from FilteredAccount CRMAF_FilteredAccount будет трансформировать системой в запрос вида
select name from FilteredAccount CRMAF_FilteredAccount where CRMAF_FilteredAccount.accountid = '{0000000-0000-0000-0000-000000000000}' т.е. идентификатор выбранной записи будет подставлен автоматически.
Проблема может возникнуть, когда в вашем отчете используется несколько DataSet. Почему-то идентификатор записи будет передаваться
только в 1й DataSet, а в остальные нет. Поэтому если есть необходимость использовать полученный идентификатор в нескольких DataSet, то придется выполнить следующие шаги:
1. Создать 1й DataSet с простым запросом получения идентификатора записи, н-р:
Создаю DataSet с именем
GetAccountId
select CRMAF_FilteredAccount.accountid from FilteredAccount CRMAF_FilteredAccount 2. Создать новый параметр
@AccountId со значением по умолчанию равным accountid из GetAccountId
3. После чего мы можем использовать данный параметр в других наших DataSets как:
where CRMAF_FilteredAccount.accountid = @AccountId
Примечание:
Если у вас готов отчет с несколькими DataSet, 1й из которых не является вспомогательным для создания параметра (как в примере), то просто можете отредактировать в текстовом редакторе ваш .rdl файл отчета и переместить нужный DataSet на первое место ( В студии, перемещать DataSet не получится).
Источник:
http://ms-dynamics-crm.com.ua/2010/1...and-parameter/