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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.08.2009, 00:05   #1  
Blog bot is offline
Blog bot
Участник
 
25,643 / 848 (80) +++++++
Регистрация: 28.10.2006
Мелкомягкий CRM: Панель управления для MS CRM с помощью Reporting Services
Источник: http://mmcrm.ru/?p=638
==============

Как Вы уже поняли из заголовка, сегодня будем делать небольшой пример панели управления на основе отчетов Reporting Services. В этой панель управления изобразим следующее:
  1. Две воронки продаж, состоящих из Возможных сделок, Предложений и Заказов, в разрезах:
    • количественном;
    • стоимостном.
  2. Две столбчатые диаграммы показывающих соотношение (за последний месяц):
    • интересов к клиентам;
    • оплаченных заказов к неоплаченным.
  3. И линейную диаграмму показывающую интенсивность Действий совершаемых сотрудниками (соответственно в разрезе Встреч, Звонков, Писем и т.д.).
Период, за который будут строиться эти графики, будет задаваться динамически (пользователем)!

Прежде чем начать создайте некоторое количество записей для объектов Интересы, Бизнес-партнеры, Возможные сделки (обязательно заполните поле Предполагаемый доход), Предложения (должно быть заполнено поле Общая сумма) и Заказы (должно быть заполнено поле Общая сумма), а также насозлавайте различных действий (и в поле createdon поставьте различные значения – возможно, Вам придется предварительно вынести это поле на форму)!

Предварительная настройка
  • Откройте Visual Studio (я буду показывать пример в Visual Studio 2008, т.к. у меня установлен SQL Server 2008, но работа в Visual Studio 2005, которая необходима для SQL Server 2005, очень похожа). Перейдите File – New – Project – в Business Intelligence Projects выберите Report Server Project и Ок!
  • В Solution Explorer щелкните правой кнопкой мыши по Reports – Add – New Item – в качестве шаблона выберите Report1 и Ок!
  • На левой панели Report Data выберите New – Data Source… – далее:
    • Введите произвольное имя нового источника данных;
    • В качестве тbпа подключения укажите Microsoft SQL Server;
    • Нажмите Edit. Откроется окно параметров подключения к SQL Server: укажите имя SQL сервера, способ проверки подлинности для подключении к SQL серверу и имя БД MS CRM (_MSCRM).
      Жмите Ок!






  • На левой панели щелкните правой кнопкой мыши по Parameters – Add Parameter… – далее:
    • Введите имя переменной «startdate»;
    • Введите в поле Promt подпись для этого параметра, которая буду отображаться на форме отчета;
    • В качестве типа дата поставьте Date/Time;
    • На левой стороне перейдите к пункту Default Values, выделите Specify Valueу, нажмите Add и в Value вбейте:=DateAdd("d",-Day(Today())+1,Today())
      Таким образом, по умолчанию начальная дата периода, за который будут строиться диаграммы, будет равна первому дню текущего месяца.
  • Создайте еще один аналогичный параметр, но уже с именем «enddate» и в качестве значения по умолчанию поставьте:=Today
    В результате чего, конечная дата периода, за который будут строиться диаграммы, по умолчанию будет равна сегодняшнему дню.





Воронки продаж
  • На левой панели Report Data выберите New – Dataset… – далее:
    • Задайте имя нового набора данных
    • В качестве источника данных укажите тот, что мы сделали в предыдущих шагах
    • Вставьте в поле Query следующий SQL-запрос:select 'Возможные сделки' as Type, count(*) as Kolvo, 'Summa' = CASE WHEN sum(CRMAF_fo.estimatedvalue) is not null THEN sum(CRMAF_fo.estimatedvalue) ELSE 0 ENDfrom dbo.FilteredOpportunity as CRMAF_fowhere CRMAF_fo.createdon between DATEADD(day,-1,@startdate) and DATEADD(day,1,@enddate)UNIONselect 'Предложения' as Type, count(*) as Kolvo, 'Summa' = CASE WHEN sum(CRMAF_fq.totalamount) is not null THEN sum(CRMAF_fq.totalamount) ELSE 0 ENDfrom dbo.FilteredQuote as CRMAF_fqwhere CRMAF_fq.createdon between DATEADD(day,-1,@startdate) and DATEADD(day,1,@enddate)UNIONselect 'Заказы' as Type, count(*) as Kolvo, 'Summa' = CASE WHEN sum(CRMAF_fso.totalamount) is not null THEN sum(CRMAF_fso.totalamount) ELSE 0 ENDfrom dbo.FilteredSalesOrder as CRMAF_fsowhere CRMAF_fso.createdon between DATEADD(day,-1,@startdate) and DATEADD(day,1,@enddate)
      этот запрос возвращает табличку следующего вида:
      TypeKolvoSummaВозможные сделки49441,92Заказы33421,44Предложения21774,08
    • На левой стороне перейдите к Parameters. В этой области Вы увидите две колонки: в левой будут переменные, который Visual Studio смог идентифицировать в запросе, а с правой нужно задать им какие-либо значения по умолчанию (иначе отчет не будет автоматически запускаться, а будет запрашивать у Вас значения для этих параметров). Так вот… на правой стороне сопоставьте этим переменных параметры, которые мы создали в предыдущих шагах (т.е параметры startdate и enddate, соответственно)!


  • На крайней левой стороне Visual Studio есть закладка Toolbox – щелкните по ней и она раскроется. Перетащите с нее на рабочую (Design) область объект Chart (график). Сразу же появится диалоговое окно выбора типа графика. В нем выберите воронку продаж!
  • Щелкните по диаграмме два раза, но не быстро – с небольшим интервалом! Появятся дополнительные поля. На левой панели (Report Data) раскройте подветку созданного ранее датасета (в данном примере это датасет Voronki) и перетащите в верхнюю добавочную область графика поле «Kolvo», а в правую добавочную область поле «Type».
  • Щелкните правой кнопкой на изображении самой воронки, далее Series Properties. В области Action поставьте переключатель в Go to URL. Нажмите кнопочку «функции» справа от поля Select URL. В открывшемся диалоговом окне Expression введите:
    Пояснение: как вы поняли этим действием мы делаем нашу диаграмму кликабельной, но диаграмма состоит из нескольких областей и чтобы задать каждой области свой URL мы производим проверку на то, какая строчка (Возможные сделки, Предложения или Заказы) сейчас проходит обработку и в зависимости от этого задаем ей соответствующую урлу. Кстати урла имеет такой вид (нужно только поменять имя организации на Ваше):http://crm2008/superfirma/_root/homepage.aspx?etc=
    Коды стандартных объектов Вы можете посмотреть в статье «Прямой доступ к объектам MS CRM». А коды кастомных объектов можете посмотреть открыв одни из их записей и нажав Ctrl + N – откроется новое окно браузера в адресной строке которого и будет код объекта.
    Жмите Ок.






  • Теперь отобразим количественное значение на диаграмме (т.к. все в мире относительно и наша воронка не исключение, то по красивой картинке сложно определить точные значения):
    • Щелкните правой кнопкой на изображении воронки, далее Series Properties. В области Series Data в поле Tooltip (т.е. всплывающая подсказка) выберите то же поле, что Вы добавили в верхнюю добавочную область (в данном случаи это «Kolvo»). Таким образом, при наведении на какую-либо область диаграммы будет появляться всплывающая подсказка со значением, которое соответствует этой области.
    • Второй способ: щелкните правой кнопкой мыши по полю Type (которую мы вынесли на правую добавочную область) и выберите Series Group Properties. Далее щелкните по кнопке функции справа от поля Label и вбейте в открывшемся окне Expression:=Fields!Type.Value & "\n[" & Fields!Kolvo.Value & "]"
      в результате в легенду у нас будет отображаться категории и количественное значение соответствующее этой категории (а \n переводит число в квадратных скобках на следующую строку). Ок.
    • Ну и последний способ – щелкните правой кнопкой на самой диаграмме, далее Show Data Labels. Появятся числовые выноски для воронки продаж! Но я не буду использовать его в данном примере (и так мало места ).




  • Создайте еще один график воронки и поместите его рядом с первым (можете его скопипастить). Перетащите из того же датасета (Voronki) в верхнюю добавочную область поле «Summa», а в правую добавочную область так же поле «Type». А для Label’а легенды задайте:=Fields!Type.Value & "\n[" & Fields!Summa.Value & "]"
    т.е. таким образом, мы сделали так, что первая воронка будет показывать числовые значения, а вторая стоимостные! Также в качестве всплывающей подсказке установите «Summa». Все остальное аналогично!


  • Измените заголовки для воронок, если хотите…
    Перейдите на закладку Preview основной области и посмотрите как выглядит наша панель управления на данный момент.



Сравнение по интересам и клиентам
  • Создайте новый датасет для столбчатой диаграммы, а в качестве запроса в ней укажите:select 'Интересы' as klients, 'Новые' as status, COUNT(*) as kolvofrom dbo.FilteredLead as CRMAF_flwhere 1=1 and CRMAF_fl.statecodename = 'Открыть' and CRMAF_fl.createdon between DATEADD(day,-1,@startdate) and DATEADD(day,1,@enddate)unionselect 'Интересы' as klients, 'Потеряные' as status, COUNT(*) as kolvofrom dbo.FilteredLead as CRMAF_flwhere 1=1 and CRMAF_fl.statecodename = 'Дисквалифицирован' and CRMAF_fl.modifiedon between DATEADD(day,-1,@startdate) and DATEADD(day,1,@enddate)unionselect 'Бизнес-партнеры' as klients, 'Новые' as status, COUNT(*) as kolvofrom dbo.FilteredAccount as CRMAF_fawhere 1=1 and CRMAF_fa.statecodename = 'Активный' and CRMAF_fa.createdon between DATEADD(day,-1,@startdate) and DATEADD(day,1,@enddate)unionselect 'Бизнес-партнеры' as klients, 'Потеряные' as status, COUNT(*) as kolvofrom dbo.FilteredAccount as CRMAF_fawhere 1=1 and CRMAF_fa.statecodename = 'Неактивный' and CRMAF_fa.modifiedon between DATEADD(day,-1,@startdate) and DATEADD(day,1,@enddate)он вернет вот такую табличку:

    klientsstatuskolvoБизнес-партнерыНовые2Бизнес-партнерыПотеряные1ИнтересыНовые2ИнтересыПотеряные4
  • Добавьте в рабочую область столбчатую диаграмму.
  • В качестве ссылки пропишите:= Switch ( Fields!klients.Value = "Интересы", "http://crm2008/superfirma/_root/homepage.aspx?etc=1", Fields!klients.Value = "Бизнес-партнеры", "http://crm2008/superfirma/_root/homepage.aspx?etc=4")
  • Я визуально немного подкорректировал область диаграммы: легенду переместил вниз, удалил подпись нижней оси.







Сравнение по оплаченным и не оплаченным заказам
  • Создайте новый датасет для столбчатой диаграммы, а в качестве запроса в ней укажите:select 'Оплачено' as Type, ( select SUM(CRMAF_fso.totalamount) from dbo.FilteredSalesOrder as CRMAF_fso where CRMAF_fso.createdon between DATEADD(day,-1,@startdate) and DATEADD(day,1,@enddate)) as Summaunionselect 'Задолженность' as Type, ( (select SUM(CRMAF_fso.totalamount) from dbo.FilteredSalesOrder as CRMAF_fso where CRMAF_fso.createdon between DATEADD(day,-1,@startdate) and DATEADD(day,1,@enddate) ) - ( select SUM(CRMAF_fi.totalamount) from dbo.FilteredInvoice as CRMAF_fi, dbo.FilteredSalesOrder as CRMAF_fso where 1=1 and CRMAF_fi.salesorderid is not null and CRMAF_fi.salesorderid = CRMAF_fso.salesorderid and CRMAF_fso.createdon between DATEADD(day,-1,@startdate) and DATEADD(day,1,@enddate) )) as Summaрезультат работы этого запроса будет следующим:

    TypeSummaЗадолженность1393,92Оплачено3421,44
  • Добавьте в рабочую область круговую диаграмму и поместите в ее верхнюю добавочную область поле Summa, а в правую Type.
  • Щелкните правой кнопкой мыши по самой диаграмме, затем Show Date Labels – тем самым мы отобразим на диаграмме числовые значения соответствующие участку диска.
  • В качестве ссылки пропишите:= Switch ( Fields!Type.Value= "Оплачено", "http://crm2008/superfirma/_root/homepage.aspx?etc=1090", Fields!Type.Value = "Не оплачено", "http://crm2008/superfirma/_root/homepage.aspx?etc=1088")
  • Измените другие элементы диаграммы (легенду заголовки и т.д.)





Линейная диаграмма по действиям
  • Создайте новый датасет для линейной диаграммы и в качестве запроса укажите в ней:select CRMAF_fap.activitytypecodename as Type, DATEPART(WW, CRMAF_fap.createdon) as Nedelya, count(*) as Kolvofrom dbo.FilteredActivityPointer as CRMAF_fapwhere CRMAF_fap.createdon between DATEADD(day,-1,@startdate) and DATEADD(day,1,@enddate)group by CRMAF_fap.activitytypecodename, DATEPART(WW, CRMAF_fap.createdon)Этот sql-запрос возвращает данные в таком виде:

    TypeNedelyaKolvoВстреча313Встреча323Задача322Звонок321Встреча336………
  • Добавьте в рабочую область линейную диаграмму и поместите в ее верхнюю добавочную область поле Kolvo, в правую Type, а в нижнуюю Nedelya.
  • В качестве ссылки пропишите:= Switch ( Fields!Type.Value= "Звонок", "http://crm2008/superfirma/_root/homepage.aspx?etc=4210", Fields!Type.Value = "Письмо", "http://crm2008/superfirma/_root/homepage.aspx?etc=4207", Fields!Type.Value = "Электронная почта", "http://crm2008/superfirma/_root/homepage.aspx?etc=4202", Fields!Type.Value = "Факс", "http://crm2008/superfirma/_root/homepage.aspx?etc=4204", Fields!Type.Value = "Задача", "http://crm2008/superfirma/_root/homepage.aspx?etc=4212", Fields!Type.Value = "Встреча", "http://crm2008/superfirma/_root/homepage.aspx?etc=4201", Fields!Type.Value = "Действия сервиса", "http://crm2008/superfirma/_root/homepage.aspx?etc=4214", Fields!Type.Value = "Контракты от ккампании", "http://crm2008/superfirma/_root/homepage.aspx?etc=4401")
  • Ну, и подкорректируйте внешний вид диаграммы







Подключаем панель управления к CRM
  • В Visual Studio, находясь на вкладке Design основной рабочей области, выполните File – Save as – и сохраните где-нибудь на диске!
  • Откройте менеджер отчетов Reporting Services. По умолчанию его адрес всегда http:///Reports
    На верхней панели инструментов нажмите Передать файл.
  • Откроется страница загрузки фала, нажмите Browse и выберите rdl-файл выгруженный из VS. Ок. Файлик успешно (должен по крайней мере ) подгрузится…
  • Далее нам нужно открыть его через Report Viewer (это инструмент Reporting Services для отображения отчетов, а репорт менеджер это инструмент администрирования, хотя с некоторыми ограничениями и через него можно смотреть отчеты) и запомнить его URL. Откройте следующую урлу http:///ReportServer. Тут Вы увидите среди прочего название загруженного отчет – щелкните по нему. Сформируется отчет – скопируйте куда-нибудь строчку URL, которая будет выглядеть примерно так:http://crm2008/ReportServer/Pages/Re...mmand=Renderи припишите к ней вот такую строчку (она делает так, чтобы при формировании отчета строка с параметрами была по умолчанию свернута, другие параметры можете посмотреть в статье «Using URL Access Parameters»):

    &rc:Parameters=collapsedВ получившейся строке замените все символы & на &
    В конечном итоге должно получиться что-то вроде этого:

    http://crm2008/ReportServer/Pages/Re...ters=collapsed




  • Теперь выгрузите из CRM файл SiteMap (Схему узла) и откройте его в каком-нибудь текстовом редакторе и добавьте в область Workplace следующие строчки:
    и замените параметр Url для отчета на свой (тот, что мы скопировали на предыдущем шаге)!
  • Экспортируйте схему сайта обратно;



На этом Все Обновите сайт CRM (F5) и перейдите к узлу Панель управления.



Маленькие подсказки
  • Если хотите чтобы по дефолту в CRM отображалась панель управления перейдите Сервис – Параметры… – на первой вкладке в поле «Вкладка по умолчанию» выберите Панель управления!
  • Чтобы задать другой период отбора данных, раскройте спойлер (справа вверху в панели управлении) и введите нужный Вам период.
  • Щелкнув средней кнопкой мыши какой-либо области графика откроется окно содержащее список соответствующих объектов!



Улучшения

Помимо ссылок на CRM можно ссылаться на подотчеты, т.е. при щелчке на какой-либо области графика будет открывать другой отчет, содержащий более детализированную информации по этой области! Может быть расскажу как-нибудь в другой раз



Источник: http://mmcrm.ru/?p=638
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
За это сообщение автора поблагодарили: Elka (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
CRM DE LA CREME! Configuring Microsoft Dynamics CRM 4.0 for Internet-facing deployment Blog bot Dynamics CRM: Blogs 0 18.08.2009 11:05
Microsoft Dynamics CRM Team Blog: CRM Online: Reporting Options Blog bot Dynamics CRM: Blogs 0 18.06.2009 06:14
Microsoft Dynamics CRM Team Blog: Building a Self-Contained Virtual CRM Development Server Blog bot Dynamics CRM: Blogs 0 05.05.2009 10:05
Microsoft Dynamics CRM Team Blog: List Web Part for Microsoft Dynamics CRM 4.0 Deployment Scenarios Blog bot Dynamics CRM: Blogs 0 30.01.2009 22:05
Microsoft Dynamics CRM Team Blog: How it Works: SQL Server Reporting Services and Dynamics CRM Blog bot Dynamics CRM: Blogs 0 19.07.2008 04:42

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

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

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