Создание отчета Customers_Near_Stores_2008R2 (SSRS)
Этот учебник поможет в построении отчета Customers_Near_Stores_2008R2 из набора образцов отчетов AdventureWorks 2008R2.
В этом отчете отображается список клиентов и демографические данные отдельных клиентов AdventureWorks, проживающих в пределах указанного радиуса от указанного географического расположения. Географическое расположение передается в качестве параметра типа String, который содержит хорошо известный текст (WKT) представления географического положения. Дополнительные сведения о комплекте отчетов и их связях см. в разделе Учебники. Создание образцов отчетов AdventureWorks 2008R2 (SSRS).
Обзор учебника
В этом учебнике рассматриваются следующие задачи.
Добавление набора данных со сведениями об отдельных клиентах, включающими расстояние от места их проживания до указанного местоположения.
Добавление набора данных со сведениями об оптово-розничном магазине.
Настройка параметра, содержащего географическое расположение в виде текста.
Настройка параметра, указывающего расстояние от магазина.
Отображение источника данных, набора данных и значений выбранных параметров на последней странице отчета.
Добавление заголовка отчета, включающего сведения о назначении отчета.
Добавление описания отчета.
Добавление таблицы, содержащей демографические характеристики заказчиков, проживающих в пределах указанного расстояния от магазина.
Определение сообщения NoRowsMessage, отображаемого, если в пределах указанного расстояния не проживает ни один клиент.
Просмотр и проверка отчета.
Предполагаемое время выполнения заданий учебника: 15 минут.
Системные требования
Список требований см. в разделе Предварительные требования для образцов отчетов AdventureWorks 2008R2 (SSRS).
Прежде чем приступать к работе с данным учебником, необходимо изучить учебник Создание проекта сервера отчетов и отчета AdventureWorks2008R2_Base (SSRS).
Открытие проекта и создание копии отчета
В среде Business Intelligence Development Studio откройте проект сервера отчетов AdventureWorks 2008R2.
В обозревателе решений выполните следующие действия.
Щелкните правой кнопкой мыши отчет AdventureWorks2008R2_Base.rdl и выберите команду Копировать.
Щелкните правой кнопкой мыши узел проекта и выберите команду Вставить.
Переименуйте скопированный отчет в Customers_Near_Stores_2008R2.rdl.
Создание набора данных со сведениями о клиентах
В области данных отчета добавьте внедренный набор данных с именем CustomerLocations. Используйте общий источник данных AdventureWorks2008R2 и следующий запрос:
SELECT [CustomerID] , [PersonID] as BusinessEntityID , p.FirstName as Name1 , p.LastName AS Name2 , ea.EmailAddress -- , t.Name as AddressType -- Home or Shipping , ad.City, ad.PostalCode , sp.Name as StateProvince , sp.StateProvinceCode , ad.SpatialLocation.STDistance((@GeoLocation))/1609.344 as DistanceinMiles , ad.SpatialLocation , p.Demographics.value('declare namespace awns="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; (awns:IndividualSurvey/awns:NumberCarsOwned) [1]','int') as NumberCarsOwned , p.Demographics.value('declare namespace awns="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; (awns:IndividualSurvey/awns:CommuteDistance) [1]','varchar(30)') as CommuteDistance FROM [Sales].[Customer] c INNER JOIN Person.Person p ON p.BusinessEntityID = c.PersonID INNER JOIN Person.BusinessEntityAddress a ON a.BusinessEntityID = p.BusinessEntityID INNER JOIN Person.AddressType t ON a.AddressTypeID = t.AddressTypeID INNER JOIN Person.[Address] ad ON ad.AddressID = a.AddressID INNER JOIN Person.EmailAddress ea ON ea.BusinessEntityID = p.BusinessEntityID INNER JOIN Person.StateProvince sp ON sp.StateProvinceID = ad.StateProvinceID WHERE -- StoreID IS NULL means Customer is an Individual StoreID IS NULL AND t.Name = N'Home' AND sp.CountryRegionCode = N'US' -- 1 Mile = 1609.344 Meters AND (ad.SpatialLocation.STDistance((@GeoLocation))/1609.344) < (@Radius)
Запрос к набору данных возвращает сведения о клиентах, включая демографические данные клиентов, проживающих в пределах @Radius миль от @GeoLocation.
В отчете эти данные отображаются в матрице.
Создание списка допустимых значений для параметра Geolocation
В области данных отчета добавьте внедренный набор данных с именем StoreLocation. Используйте общий источник данных AdventureWorks2008R2 и следующий запрос:
SELECT [StoreID] as BusinessEntityID , s.Name as Store -- , t.Name as AddressType -- Main Office or Shipping , ad.PostalCode -- , sp.CountryRegionCode --, sp.Name as StateProvince --, sp.StateProvinceCode , ad.SpatialLocation.ToString() as GeoLocation FROM [Sales].[Customer] c INNER JOIN Sales.Store s ON s.BusinessEntityID = c.StoreID INNER JOIN Person.BusinessEntityAddress a ON a.BusinessEntityID = s.BusinessEntityID INNER JOIN Person.AddressType t ON a.AddressTypeID=t.AddressTypeID INNER JOIN Person.[Address] ad ON ad.AddressID = a.AddressID INNER JOIN Person.StateProvince sp ON sp.StateProvinceID = ad.StateProvinceID WHERE -- PersonID IS NULL means Customer is a store PersonID IS NULL AND t.Name = N'Main Office' AND sp.CountryRegionCode = N'US'
Запрос к набору данных возвращает список головных офисов магазинов AdventureWorks и их географических расположений.
В отчете эти данные отображаются в списке допустимых значений для параметра @Geolocation. На панели инструментов средства просмотра отчетов отображается метка параметра, которая содержит название магазина, а не его географическое положение.
Настройка параметра отчета @Geolocation
Откройте Свойства параметра @Geolocation.
Измените Запрос на Укажите расположение магазина.
На странице Доступные значения выберите Получать значения из запроса.
В поле Набор данных выберите StoreLocation.
В поле Значение выберите GeoLocation.
В поле Метка выберите Store.
В области Значения по умолчанию добавьте значение и задайте для него следующий текст:
POINT (-82.4151596338717 40.7459610884615)
Это значение соответствует магазину с названием The Bike Mechanics.
Настройка параметра отчета @Radius
Откройте окно свойств параметра @Radius.
В поле Запрос введите Расстояние в милях.
Измените Тип данных на Integer.
В области Значения по умолчанию добавьте значение 100.
Добавление к верхнему колонтитулу страницы указаний по возврату к родительскому отчету
Разверните во всю высоту верхний колонтитул страницы.
Добавьте под логотипом текстовое поле tbBackInstructions со следующим текстом: Для возврата в родительский отчет используйте кнопку «Назад» браузера.
Отформатируйте текстовое поле.
Добавление заголовка отчета
В верхней правой части отчета, под верхним колонтитулом страницы, добавьте текстовое поле tbTitle, содержащее следующий текст:
Демографические сведения для [NCustomers] [Customers],
проживающих в пределах [@Radius] миль от магазина
[@GeoLocation.Label]
Сгруппированы по полю Commute Distance
Щелкните правой кнопкой мыши [NCustomers], чтобы открыть диалоговое окно Свойства заполнителя, и установите для параметра Имя значение NCustomers, а для параметра Значение — значение =CountDistinct(Fields!CustomerID.Value,"CustomerLocations").
Щелкните правой кнопкой мыши [Customers], чтобы открыть диалоговое окно Свойства заполнителя, и установите для параметра Имя значение Customers, а для параметра Значение — значение =IIF(CountDistinct(Fields!CustomerID.Value,"CustomerLocations")=1,"Customer","Customers").
Отцентрируйте текстовое поле в отчете и отформатируйте соответствующим образом каждую строку текста.
Удаление текстовых полей сценария
- Удалите текстовое поле ToggleInformation и текстовое поле, содержащее текст сценария.
Для данного отчета эти сведения о сценарии уже включаются в добавленный ранее заголовок отчета.
Добавление описания
Добавление описания
В нижнем колонтитуле страницы замените текст в текстовом поле описания следующим текстом:
Назначение: Детализированный отчет на основе маркеров магазинов в отчете Sales_by_Region_2008R2. Отображает сведения о клиентах, проживающих в пределах указанного расстояния от магазина. Географическое расположение магазина задается параметром типа String, содержащим значение WKT.
Щелкните фон отчета, чтобы отобразить раздел Свойства отчета на панели свойств.
В поле Описание вставьте текст описания.
Отображение демографических данных о заказчиках в таблице
Добавление таблицы
Добавьте таблицу с названием tblxTable_Demographics, отображающую следующие поля из набора данных CustomerLocations:
[Name2], [Name1]
[DistanceinMiles]
[NumberCarsOwned]
[EmailAddress]
Добавьте группу строк, основанную на поле [CommuteDistance].
Отформатируйте таблицу.
Добавление сообщения, отображаемого при отсутствии данных
Выберите таблицу.
На панели свойств найдите поле NoRowsMessage и введите следующее выражение: ="No customers live within " & Parameters!Radius.Value & " miles. Display the parameters on the toolbar and enter a different distance."
Предварительный просмотр и проверка отчета
Предварительный просмотр и проверка отчета
Запустите отчет и проверьте следующее:
Значения параметров отображаются в заголовке отчета.
Таблица упорядочена по расстоянию до работы.
При изменении значения радиуса изменяется количество клиентов.
Если в пределах указанного расстояния нет клиентов, отображается значение свойства NoRowsMessage.
Следующие шаги
Построение отчета завершено. Сведения о построении других образцов отчетов AdventureWorks см. в разделе Учебники. Создание образцов отчетов AdventureWorks 2008R2 (SSRS).
Журнал изменений
Обновленное содержимое |
---|
|