Compartir a través de


Crear el informe Customers_Near_Stores_2008R2 (SSRS)

Este tutorial le ayuda a crear el informe Customers_Near_Stores_2008R2 de los informes de ejemplo de AdventureWorks 2008R2.

En este informe se muestra una lista de clientes y sus datos para los clientes de AdventureWorks particulares que viven dentro de un radio geográfico especificado. La ubicación geográfica se pasa en forma de parámetro String que contiene una representación de texto bien conocido (WKT, Well Known Text) de una ubicación geográfica. Para obtener más información acerca del conjunto de informes y sus relaciones, vea Tutoriales: Crear informes de ejemplo de AdventureWorks 2008R2 (SSRS).

Aprendizaje

En este tutorial realizará las tareas siguientes:

  • Agregar un conjunto de datos con información de clientes particulares, incluida la distancia de su dirección particular a una ubicación especificada

  • Agregar un conjunto de datos con información sobre tiendas distribuidoras.

  • Configurar un parámetro que contiene una ubicación geográfica como texto.

  • Configurar un parámetro que especifica una distancia desde la tienda.

  • Mostrar el origen de datos, conjunto de datos y los valores de parámetro escogidos en la última página del informe.

  • Agregar un título de informe con información sobre la finalidad del informe.

  • Agregar la descripción del informe.

  • Agregar una tabla con los datos demográficos de los clientes que viven dentro de un radio especificado desde la tienda determinada.

  • Definir un NoRowsMessage para que se muestre cuando ningún cliente viva dentro de la distancia especificada.

  • Obtenga una vista previa y compruebe el informe.

Tiempo estimado para completar este tutorial: 15 minutos.

Requisitos

Para obtener la lista de requisitos, vea Requisitos previos de los informes de ejemplo de AdventureWorks 2008R2 (SSRS).

Para este tutorial, se supone que ha llevado a cabo los pasos de Crear el proyecto del servidor de informes y el informe AdventureWorks2008R2_Base SAP (SSRS).

Para abrir el proyecto y hacer una copia de un informe

  1. En Business Intelligence Development Studio, abra el proyecto de servidor de informes AdventureWorks 2008R2.

  2. En el Explorador de soluciones, haga lo siguiente:

    1. Haga clic con el botón secundario en AdventureWorks2008R2_Base.rdl y, a continuación, haga clic en Copiar.

    2. Haga clic con el botón secundario en el nodo del proyecto y, a continuación, haga clic en Pegar.

    3. Cambie el nombre del informe copiado a Customers_Near_Stores_2008R2.rdl.

Para crear el conjunto de datos con información de los clientes

  • En el panel Datos de informe, agregue un conjunto de datos incrustado denominado CustomerLocations. Use el origen de datos compartido AdventureWorks2008R2 y la siguiente 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)
    

La consulta del conjunto de datos devuelve información de los clientes, con sus datos demográficos, sobre los clientes que viven en un radio de millas determinado de una ubicación geográfica.

En el informe, estos datos se muestran en la matriz.

Para crear una lista de valores válidos para el parámetro de ubicación geográfica, Geolocation

  • En el panel Datos de informe, agregue un conjunto de datos incrustado denominado StoreLocation. Use el origen de datos compartido AdventureWorks2008R2 y la siguiente 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'
    

La consulta del conjunto de datos devuelve una lista de las oficinas centrales de las tiendas de AdventureWorks y sus ubicaciones.

En el informe, estos datos se muestran como una lista de valores válidos para el parámetro de ubicación. En la barra de herramientas de visor de informes se muestra la etiqueta de parámetro con el nombre de la tienda, no el valor de la ubicación.

Para configurar el parámetro de informe @Geolocation

  1. Abra Propiedades de parámetro para @Geolocation.

  2. Cambie Indicador a ¿Ubicación de tienda?

  3. En Valores disponibles, seleccione Obtener valores de una consulta.

  4. En Conjunto de datos, seleccione StoreLocation.

  5. En Valor, seleccione GeoLocation.

  6. Para Etiqueta, seleccione Store.

  7. En Valores predeterminados, agregue un valor y establézcalo en el siguiente texto:

    POINT (-82.4151596338717 40.7459610884615)

Este valor corresponde a la tienda The Bike Mechanics.

Para configurar el parámetro de informe @Radius

  1. Abra las propiedades de parámetro de @Radius.

  2. En Indicador, escriba Distancia en millas

  3. Cambie Tipo de datos a Integer.

  4. En Valores predeterminados, agregue un valor y establézcalo en 100.

Para agregar al encabezado de página instrucciones para volver al informe primario

  1. Expanda el alto del encabezado de página.

  2. Bajo el logotipo, agregue un cuadro de texto denominado tbBackInstructions con el siguiente texto: Utilice el botón Atrás para volver al informe primario.

  3. Dé formato al cuadro de texto según convenga.

Para agregar un título de informe

  1. En la parte superior del informe, debajo del encabezado de página, agregue un cuadro de texto denominado tbTitle con el siguiente texto:

    Datos demográficos para [NCustomers] [Customers]

    que viven a [@Radius] millas de la tienda

    [@ GeoLocation.Label]

    Agrupado por distancia de viaje

  2. Haga clic con el botón secundario en [NCustomers] para abrir el cuadro de diálogo Propiedades de marcador de posición y establezca Nombre en NCustomers y Valor en =CountDistinct(Fields!CustomerID.Value,"CustomerLocations").

  3. Haga clic con el botón secundario en [Customers] para abrir el cuadro de diálogo Propiedades de marcador de posición y establezca Nombre en Customers y Valor en =IIF(CountDistinct(Fields!CustomerID.Value,"CustomerLocations")=1,"Customer","Customers").

  4. Centre el cuadro de texto en el informe y dé formato según sea necesario a cada línea de texto.

Para eliminar los cuadros de texto de escenario

  • Elimine el cuadro de texto ToggleInformation y el cuadro de texto que contiene el texto del escenario.

En este informe, la información de escenario se encuentra en el título del informe que acaba de agregar.

Agregue la descripción

Para agregar la descripción

  1. En el pie de página, cambie el texto del cuadro de texto de descripción al texto siguiente:

    Finalidad: informe de detalles de los marcadores de tienda de Sales_by_Region_2008R2. Muestra información sobre los clientes que viven en un radio especificado de millas de una tienda. La ubicación de la tienda es un parámetro String que contiene un valor de texto bien conocido (WKT).

  2. Haga clic en el fondo del informe para mostrar Propiedades del informe en el recuadro de propiedad.

  3. En Descripción, pegue el texto de la descripción.

Mostrar datos demográficos de clientes en una tabla

Para agregar la tabla

  1. Agregue una tabla denominada tblxTable_Demographics con los siguientes campos del conjunto de datos CustomerLocations:

    • [Name2], [Name1]

    • [DistanceinMiles]

    • [NumberCarsOwned]

    • [EmailAddress]

  2. Agregue un grupo de filas basado en [CommuteDistance].

  3. Aplique a la tabla el formato que desee.

Para agregar un mensaje que se muestre cuando no haya datos

  1. Seleccione la tabla.

  2. En el panel Propiedades, busque NoRowsMessage y escriba la siguiente expresión: ="No customers live within " & Parameters!Radius.Value & " miles. Display the parameters on the toolbar and enter a different distance."

Obtenga una vista previa y compruebe el informe.

Para obtener una vista previa y comprobar el informe

  • Ejecute el informe y compruebe lo siguiente:

    1. Los valores de parámetro aparecen en el título del informe.

    2. La tabla se organiza por la distancia de viaje.

    3. Al cambiar el valor del parámetro de radio, cambia el número de clientes.

    4. Cuando no hay ningún cliente dentro de la distancia especificada, se ve el valor NoRowsMessage.

Pasos siguientes

La compilación de este informe se ha completado. Para crear otros informes de ejemplo de AdventureWorks, vea Tutoriales: Crear informes de ejemplo de AdventureWorks 2008R2 (SSRS).

Vea también

Otros recursos

Historial de cambios

Contenido actualizado

  • Se ha cambiado el informe para que esté basado en AdventureWorks2008R2_Base.rdl