Создание отчета для MS CRM
Как Вы знаете (или не знаете), в MS CRM есть два способа создавать отчеты. Первый это через интерфейс самой CRM, а второй через инструментальные средства разработки, такие как Visual Studio и Report Builder (входит в комплект SQL Server’а). Первый способ довольно ограничен в возможностях отбора данных и визуального представления. Поэтому на нем мы зацикливаться не будем, и рассмотрим сразу второй способ, а в качестве инструмента выберем Microsoft Visual Studio 2005.
Для начала создайте некоторое количество тестовых данных: несколько организаций и еще больше контактов. И обязательно прицепите эти контакты к организациям!
Приступим:
- Откройте Visual Studio 2005. File — New — Project;
- В области Project Types выделите Business Intelligence Project, а в области Templates выберите Report Server Project Wizard. В нижней части окна задайте по своему усмотрению местоположение исходных файлов и имя для нового проекта. ОК;
Возможность создавать проекты отчетов будет доступна только если установлен компонент SLQ Server’а Development Tools. Если он не установлен — доустановите его.
Появится помощник создания отчетов. Первым делом нужно задать параметры подключения к базе данных:
- Введите имя для нового источника данных и тип сервера к которому будем подключаться (в нашем случаи конечно же Microsoft SQL Server);
- Нажмите кнопку Edit. Появится окно свойств подключения: в списке Server Name выберите SQL сервер на котором у Вас расположена БД CRM. Способом аутентификации оставьте значение по умолчанию (Windows Authentication – надеюсь у Вас нет никаких проблем с доступом к БД 🙂 я то провожу эксперимент на самом сервере под учеткой админа, поэтому мне в любом случаи удастся соединиться :). В списке баз данных выберите основную БД MS CRM системы — <название_организации>_MSCRM. ОК;
- Жмем Next и тут нам нужно ввести SQL запрос, который вернет нам некоторые данные, в свою очередь на основе которых Report Server будет строить отчет. Вы можете нажать кнопочку Query Builder и воспользоваться помощником построения запросов, но т.к. наш запрос слишком просто, а описание возможностей помощника довольно объемное, то просто введите в поле Query String следующий SQL скрипт:
select accountidname as 'Организация', fullname as 'ФИО', address1_city as 'Город', emailaddress1 as 'Электропочта' from FilteredContact
… и Next;
Хочу отметить , что табличка FilteredContact, откуда мы выбираем данные, это не просто табличка а вьюха (views). Вьюхи представляют собой виртуальные таблицы, которые создаются оператором SELECT и содержат некоторые отфильтрованные определенным образом данные из других таблиц.
- В качестве типа отчеты у будет Tabular, Next;
- В следующим окне надо указать параметры группировки данных. В нашем примере будем отчет будет выглядеть следующим образом: сначала будет идти название организации а под ней все связанные с ней контакты — и так для всех организаций у которых есть хоть один контакт. Поэтому поле Организация помещаем в область Group, а ФИО, Город и Электропочта в область Details. Next;
- В окне Table Layout нужно выбрать наличие и расположение некоторых элементов отчета. Но нам сейчас эти параметры не понадобятся, поэтому Next;
- Выберите визуальный стиль отчета – на свой вкус 🙂
- Далее нужно указать сервер отчетов и папку (виртуальную) на этом сервере, где будет храниться отчет. По умолчанию тут все должно нас устраивать – жмите Next;
- Работа помощника в целом завершена, смотрим итоговые данные и Finish;
- Помощник закроется и откроется основное окно Visual Studio на вкладке Layout (где отображаются и редактируются элементы отчета). Перейдите на вкладку Preview и полюбуйтесь как будет выглядеть отчет в CRM 🙂
- Убедитесь, что справа, в разделе Solution Explorer, выделен файл отчета (расширение rdl). Перейдите File — Save <отчет> As и сохраните куда-нибудь rdl файл.
Ну, вроде бы все готово для того, чтобы опубликовать наш отчет в CRM:
- Откройте CRM. В рабочей области щелкните по Отчеты, далее Создать;
- Откроется форма создания нового отчета. В качестве типа отчета укажите Существующий файл, а в поле ниже укажите путь к тому файлу rdl, который мы создали в предыдущих пунктах. Задайте любое имя для нового отчета. Сохраняйте и закрывайте окно;
- Все готово к запуску 🙂 Дважды щелкните по имени созданного отчета. Отчет готов! 🙂
Добрый день,
У меня стоит 2008 Visual не могли подправить этот пост по 2008 пожалуйста, а то и и не смогла понять.
На этой неделе планирую написать статью, как выводит в отчеты изображения (помимо текстовой информации). Она будет на VS2008. Так что если подождете чуть-чуть… 🙂
Вот написал для VS 2008: http://mmcrm.ru/?p=932
а можно это все подредактировать под vs 2010
Не уверен… для написания отчетов под SQL Reporting Services 2005 нужен обязательно VS 2005, для SQL Reporting Services 2008 нужен VS 2008. А вот будут ли компоненты разработки SQL Reporting Services 2008 работать на VS 2010 не знаю.. не пробовал 🙂
А как добавить параметры в репорт, чтобы пользователь crm мог задать значения?
Вот так: http://mmcrm.ru/?p=539
Добрый день.
Подскажите пожалуйста. В во всех действиях, есть кастомное поле лукап, к контакту, т.е. дополнительный контакт, когда я пытаюсь вывести все действия связанные с этим контактом, получается следующая ситуация,
select something
FROM FilteredContact AS CRMAF_contact INNER JOIN
FilteredFax ON FilteredFax.new_contact_fax12 = CRMAF_contact.contactid INNER JOIN
FilteredPhoneCall ON FilteredPhoneCall.new_contact_phonecall2 = CRMAF_contact.contactid
Отчет выводит факсы нормально и по 10-2- повторений каждой записи звонок, при изменениями местами факсов и звонков в запросе — ошибка повторяется в измененном виде — много копий факсов, и нормальные звонки, SELECT DISTINCT не помогает, пробовал как внутренние соеденения inner так и внешние outer в данном случае left пробовал даже full вобщем все комбинации, ни чего не помогает, есть еще такое мнение, в конструкции:
КОНТАКТЫ JOIN ФАКСЫ JOIN ЗВОНКИ не смотря на значение TO факсы цепляются к контактам а звонки к факсам, как бы последовательно по этому так и происходит, а нет ли такой конструкции, чтобы как бы параллельно, зацепить звонки к контактам и факсы к контактом непосредственно, или я ошибаюсь в чем то еще.
Помогите пожалуйста
Спасибо.
Добрый день!
Вам нужно делать раздельную выборку из разных таблиц и объединять их с помощь конструкции UNION. Вот тут напрмер такие запросы используются:
http://mmcrm.ru/?p=1359
http://mmcrm.ru/?p=1341
http://mmcrm.ru/?p=1275
Добрый день,
а подскажите пожалуйста если есть справочник клиентов, его можно как-то прицепить к отчету. Отчет создан скриптами, поле «клиент» — текстовое. Сотрудники хотят что бы там выпадал справочник и оттуда можно было подтягивать клиента. Это возможно как то реализовать?
Здарсьте 🙂
Вроде специально для 2011 нету, но переделать я думаю не сложно 🙂
У меня возникла такая проблема: когда делаю выборку бывает приходится задавать значения некоторых полей на русском, но в выборке получаю вместо русских символов только знаки вопросов. Например:
SELECT ‘тест’ as test
в выборке получаю ‘????’.
При этом если выбрать из таблицы значение, то там русские символы отображаються корректно.
Суть вопроса: где и что посмотреть для устранения данной проблемы? Сервер 2008 и VS2008
Добрый день.
Когда делаю запрос что то типа:
SELECT ‘тест’ test
то получаю данные — ‘????’, причем если выбрать значение из таблицы с русскими символами, то отображение корректно.
Что мне поправить что бы все работало как я хочу? ну или где поискать?
Здрасьте 🙂
А Вы сейчас говорите о БД MS CRM?
Да, если конкретнее об отчете создаваемом в VS. Когда делаю DataSet и выбираю там данные, то получаю знаки вопроса в качестве содержимого полей, вместо русских символов. Причем если именовать поля на русском, то имена полей отображаються корректно.
А самая простая выборка, вроде:
Select name from FilteredAccount
тоже возвращает вопросы? А Msnsgement Studio тоже возвращаются вопросы?
«Select name from FilteredAccount» возвращает корректнуюю информацию.
В Msnsgement Studio тоже возвращаются вопросы
Я уже запустался и не понемаю где/что отображается корректно а где нет:
>причем если выбрать значение из таблицы с русскими символами, то отображение корректно
>Когда делаю DataSet и выбираю там данные, то получаю знаки вопроса в качестве содержимого полей, вместо русских символов
>«Select name from FilteredAccount» возвращает корректнуюю информацию.
>В Msnsgement Studio тоже возвращаются вопросы
Добрый день,
подскажите пожалуйста как в VS 2008 добавить к отчету элемент управления. Например пользователь может задать временной диапазон, в результате чего отчет выкатит данные за этот промежуток?
Добрый день 🙂
Вот тут есть пример с диапазоном дат: http://mmcrm.ru/?p=638
Меня интересует момент когда именно в отчете пользователь сам можжет задать дату через элемент управления, имеет ли такую возможность visual studio 2008.
Что-то не пойму, что Вам нужно. Вот ввод даты: http://mmcrm.ru/wp-content/uploads/dashboard/rs6.png
Объясните пожалуйста подробно, как поставить Development Tools на VS 2008? Я установил 2008 сервер, но Business Intelligence появился в VS 2005, а не в VS 2008. А мне, для создания отчета в ms crm 2011, необходимо создавать использовать VS 2008
=(
Для написания плагинов для CRM 2011 необходима 2010 студия.
Отчеты пишутся с помощью BIDS (модуль для студии для написания отчетов), который поставляется вместе со скулем. Т.к. CRM 2011 работает с 2008 скулем то и BIDS будут для него. А BIDS для 2008 скуля написаны для 2008 студии. Вообщем плагины пишем в 2010 студии, а отчеты в 2008 (вместе с установленными BIDS).
Спасибо!