Criando o relatório Customers_Near_Stores_2008R2 (SSRS)

Este tutorial ajuda a criar o relatório Customers_Near_Stores_2008R2 a partir do pacote de relatórios de exemplo da AdventureWorks 2008R2.

Este relatório exibe uma lista de clientes e dados demográficos de cada cliente da AdventureWorks que residem em um raio especificado de uma localização geográfica. A localização geográfica é transmitida como um parâmetro String que contém a representação de WKT (Well Known Text) de uma localização geográfica. Para obter mais informações sobre o pacote de relatórios e suas relações, consulte Tutoriais: Criando relatórios de exemplo do AdventureWorks 2008R2 (SSRS).

O que você aprenderá

Neste tutorial, você aprenderá a realizar as seguintes tarefas:

  • Adicionar um conjunto de dados com informações individuais de clientes, inclusive a distância do endereço residencial até um local especificado.

  • Adicionar um conjunto de dados com informações das lojas dos revendedores.

  • Configurar um parâmetro que contém uma localização geográfica como texto.

  • Configurar um parâmetro que especifica uma distância da loja.

  • Exibir a fonte de dados, o conjunto de dados e os valores dos parâmetros escolhidos na última página do relatório.

  • Adicionar um título de relatório que inclua informações sobre o objetivo do relatório.

  • Adicionar a descrição do relatório.

  • Adicionar uma tabela para exibir os dados demográficos dos clientes que residem a uma distância especificada da loja especificada.

  • Definir uma NoRowsMessage a ser exibida quando nenhum cliente residir dentro da distância especificada.

  • Visualizar e verificar o relatório.

Tempo estimado para concluir este tutorial: 15 minutos.

Requisitos

Para obter a lista de requisitos, consulte Pré-requisitos para os relatórios de exemplo AdventureWorks 2008R2 (SSRS).

Este tutorial pressupõe que você tenha concluído Criando o projeto do servidor de relatório o projeto AdventureWorks2008R2_Base (SSRS).

Para abrir o projeto e fazer uma cópia de um relatório

  1. No Business Intelligence Development Studio, abra o projeto do Servidor de Relatório AdventureWorks 2008R2.

  2. No Gerenciador de Soluções, proceda da seguinte maneira:

    1. Clique com o botão direito do mouse em AdventureWorks2008R2_Base.rdl e clique em Copiar.

    2. Clique com o botão direito do mouse no nó do projeto e clique em Colar.

    3. Renomeie o relatório copiado para Customers_Near_Stores_2008R2.rdl.

Para criar o conjunto de dados de informações de clientes

  • No painel Dados do Relatório, adicione um conjunto de dados incorporado denominado CustomerLocations. Use a fonte de dados compartilhada AdventureWorks2008R2 e a seguinte consulta:

    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)
    

A consulta do conjunto de dados gera informações dos clientes, entre elas dados demográficos dos clientes, para clientes que residem a @Radius miles da @GeoLocation.

No relatório, esses dados são exibidos na matriz.

Para criar uma lista válida de valores para o parâmetro Geolocation

  • No painel Dados do Relatório, adicione um conjunto de dados incorporado denominado StoreLocation. Use a fonte de dados compartilhada AdventureWorks2008R2 e a seguinte consulta:

    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'
    

A consulta ao conjunto de dados gera uma lista dos principais escritórios das lojas da AdventureWorks e suas localizações geográficas.

No relatório, esses dados são exibidos como uma lista de valores válidos para o parâmetro @Geolocation. Na barra de ferramentas do visualizador de relatórios, a tela exibe o rótulo do parâmetro que contém o nome da loja, não o valor que contém a localização geográfica.

Para configurar o parâmetro de relatório @Geolocation

  1. Abra Propriedades do Parâmetro para @Geolocation.

  2. Altere Aviso para Local da loja?

  3. Em Valores Disponíveis, selecione Obter valores de uma consulta.

  4. Em Conjunto de dados, selecione StoreLocation.

  5. Em Valor, selecione GeoLocation.

  6. Em Rótulo, selecione Store.

  7. Em Valores padrão, adicione um valor e defina-o com o seguinte texto:

    POINT (-82.4151596338717 40.7459610884615)

Este valor corresponde à loja denominada The Bike Mechanics.

Para configurar o parâmetro de relatório @Radius

  1. Abra as propriedades do parâmetro para @Radius.

  2. Em Aviso, digite Distância em milhas?

  3. Altere Tipo de dados para Inteiro.

  4. Em Valores padrão, adicione um valor e defina-o como 100.

Para adicionar ao cabeçalho da página instruções para retornar ao relatório pai

  1. Expanda a altura do cabeçalho da página.

  2. Abaixo do logotipo, adicione uma caixa de texto denominada tbBackInstructions com o seguinte texto: Use o botão Voltar do navegador para retornar ao relatório pai.

  3. Formate a caixa de texto conforme necessário.

Para adicionar o título do relatório

  1. Na parte superior do relatório, abaixo do cabeçalho da página, adicione uma caixa de texto denominada tbTitle com o seguinte texto:

    Dados demográficos para [NCustomers] [Customers]

    residentes em um [@Radius] de milhas da loja

    [@GeoLocation.Label]

    Agrupados pela Distância do Trabalho

  2. Clique com o botão direito do mouse em [NCustomers] para abrir a caixa de diálogo Propriedades de Espaço Reservado e defina Nome como NCustomers e Valor como =CountDistinct(Fields!CustomerID.Value,"CustomerLocations").

  3. Clique com o botão direito do mouse em [Customers] para abrir a caixa de diálogo Propriedades de Espaço Reservado e defina Nome como Customers e Valor como =IIF(CountDistinct(Fields!CustomerID.Value,"CustomerLocations")=1,"Customer","Customers").

  4. Centralize a caixa de texto no relatório e formate cada linha de texto conforme necessário.

Para excluir as caixas de texto do cenário

  • Exclua a caixa de texto ToggleInformation e a caixa de texto que contém o texto do cenário.

Para este relatório, as informações de cenário são incluídas no título do relatório que você acabou de adicionar.

Adicionar a descrição

Para adicionar a descrição

  1. No rodapé da página, substitua o texto da caixa de texto de descrição com o seguinte texto:

    Objetivo: relatório de detalhamento dos marcadores da loja em Sales_by_Region_2008R2. Exibe informações sobre clientes que residem dentro do número especificado de milhas a partir de uma loja. A localização geográfica da loja é um parâmetro String que contém um valor de WKT (Well Known Text).

  2. Clique no plano de fundo do relatório para exibir Propriedades do Relatório no painel Propriedades.

  3. Em Descrição, cole o texto da descrição.

Exibir dados demográficos dos clientes em uma tabela

Para adicionar a tabela

  1. Adicione uma tabela denominada tblxTable_Demographics que exiba os campos do conjunto de dados CustomerLocations:

    • [Name2], [Name1]

    • [DistanceinMiles]

    • [NumberCarsOwned]

    • [EmailAddress]

  2. Adicione um grupo de linhas baseado em [CommuteDistance].

  3. Formate a tabela conforme necessário.

Para adicionar uma mensagem a ser exibida quando não houver dados

  1. Selecione a tabela.

  2. No painel Propriedades, localize NoRowsMessage e digite a seguinte expressão: ="No customers live within " & Parameters!Radius.Value & " miles. Display the parameters on the toolbar and enter a different distance."

Visualizar e verificar o relatório

Para visualizar e verificar o relatório

  • Execute o relatório e verifique o seguinte:

    1. Os valores de parâmetros aparecem no título do relatório.

    2. A tabela é organizada por distância do trabalho.

    3. Quando você altera o valor do parâmetro de raio, o número de clientes muda.

    4. Quando não houver nenhum cliente dentro da distância especificada, você verá o valor NoRowsMessage.

Próximas etapas

Você concluiu a criação deste relatório. Para criar outros relatórios de exemplo da AdventureWorks, consulte Tutoriais: Criando relatórios de exemplo do AdventureWorks 2008R2 (SSRS).

Consulte também

Outros recursos

Histórico de alterações

Conteúdo atualizado

  • Relatório alterado para ter como base o AdventureWorks2008R2_Base.rdl