Share via


Creazione del report Customers_Near_Stores_2008R2 (SSRS)

Questa esercitazione consente di compilare il report Customers_Near_Stores_2008R2 dall'insieme di report di esempio di AdventureWorks 2008R2.

In questo report viene visualizzato un elenco di clienti e di dati demografici dei singoli clienti di AdventureWorks che risiedono entro un raggio specificato da una geolocazione. La geolocazione viene passata come parametro String contenente una rappresentazione Well Known Text (WKT) di una posizione geografica. Per ulteriori informazioni sull'insieme di report e sulle relative relazioni, vedere Esercitazioni: Creazione dei report di esempio di AdventureWorks 2008R2 (SSRS).

Lezioni dell'esercitazione

In questa esercitazione verranno effettuate le attività seguenti:

  • Aggiungere un set di dati con le informazioni sui singoli clienti, inclusa la distanza dall'indirizzo dell'abitazione a una posizione specificata.

  • Aggiungere un set di dati con le informazioni sui negozi rivenditori.

  • Configurare un parametro contenente una geolocazione come testo.

  • Configurare un parametro che specifica una distanza dal negozio.

  • Visualizzare l'origine dati, il set di dati e i valori del parametro scelti nell'ultima pagina del report.

  • Aggiungere un titolo del report che include informazioni sullo scopo del report.

  • Aggiungere la descrizione del report.

  • Aggiungere una tabella per visualizzare i dati demografici dei clienti che risiedono entro la distanza specificata dal negozio indicato.

  • Definire la proprietà NoRowsMessage da visualizzare quando nessun cliente risiede entro la distanza specificata.

  • Visualizzare l'anteprima del report ed eseguirne una verifica.

Il tempo stimato per completare l'esercitazione è di 15 minuti.

Requisiti

Per l'elenco di requisiti, vedere Prerequisiti per i report di esempio di AdventureWorks 2008R2 (SSRS).

Per questa esercitazione si presuppone che sia stata completata la sezione Creazione del progetto server di report e del report AdventureWorks2008R2_Base (SSRS).

Per aprire il progetto e creare una copia di un report

  1. In Business Intelligence Development Studio aprire il progetto server di report AdventureWorks 2008R2.

  2. In Esplora soluzioni effettuare le operazioni seguenti:

    1. Fare clic con il pulsante destro del mouse sul report AdventureWorks2008R2_Base.rdl, quindi scegliere Copia.

    2. Fare clic con il pulsante destro del mouse sul nodo del progetto, quindi scegliere Incolla.

    3. Rinominare il report copiato in Customers_Near_Stores_2008R2.rdl.

Per creare il set di dati per le informazioni sui clienti

  • Nel riquadro Dati report aggiungere un set di dati incorporato denominato CustomerLocations. Utilizzare l'origine dati condivisa AdventureWorks2008R2 e la query seguente:

    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 query del set di dati restituisce le informazioni sui clienti, inclusi i dati demografici dei clienti che risiedono entro @Radius miglia da @GeoLocation.

Nel report questi dati vengono visualizzati nella matrice.

Per creare un elenco di valori validi per il parametro Geolocation

  • Nel riquadro Dati report aggiungere un set di dati incorporato denominato StoreLocation. Utilizzare l'origine dati condivisa AdventureWorks2008R2 e la query seguente:

    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 query del set di dati restituisce un elenco delle sedi centrali dei negozi di AdventureWorks e le relative geolocazioni.

Nel report questi dati vengono visualizzati come un elenco di valori validi per il parametro @Geolocation. Nella barra degli strumenti del visualizzatore di report viene mostrata l'etichetta del parametro che contiene il nome del negozio e non il valore che contiene la geolocazione.

Per configurare il parametro del report @Geolocation

  1. Aprire Proprietà parametri per @Geolocation.

  2. Impostare Messaggio di richiesta su Ubicazione del negozio? (Store location?)

  3. In Valori disponibili selezionare Ottieni valori da una query.

  4. Per Set di dati selezionare StoreLocation.

  5. Per Valore selezionare GeoLocation.

  6. Per Etichetta selezionare Store.

  7. In Valori predefiniti aggiungere un valore e impostarlo sul testo seguente:

    POINT (-82.4151596338717 40.7459610884615)

Questo valore corrisponde al negozio denominato The Bike Mechanics.

Per configurare il parametro del report @Radius

  1. Aprire le proprietà del parametro per @Radius.

  2. In Messaggio di richiesta digitare Distanza in miglia?

  3. Impostare Tipo di dati su Integer.

  4. In Valori predefiniti aggiungere un valore e impostarlo su 100.

Per aggiungere all'intestazione di pagina istruzioni per tornare al report padre

  1. Espandere l'altezza dell'intestazione di pagina.

  2. Sotto il logo aggiungere una casella di testo denominata tbBackInstructions con il testo seguente: Utilizzare il pulsante Indietro del browser per tornare al report padre.

  3. Formattare la casella di testo in base alle esigenze.

Per aggiungere il titolo del report

  1. Nella parte superiore del report sotto l'intestazione di pagina aggiungere una casella di testo denominata tbTitle con il testo seguente:

    Dati demografici per [NCustomers] [Customers]

    che risiedono entro [@Radius] miglia dal negozio

    [@GeoLocation.Label]

    Raggruppati in base alla distanza dal lavoro

  2. Fare clic con il pulsante destro del mouse su [NCustomers] per aprire la finestra di dialogo Proprietà segnaposto e impostare Nome su NCustomers e Valore su =CountDistinct(Fields!CustomerID.Value,"CustomerLocations").

  3. Fare clic con il pulsante destro del mouse su [Customers] per aprire la finestra di dialogo Proprietà segnaposto e impostare Nome su Customers e Valore su =IIF(CountDistinct(Fields!CustomerID.Value,"CustomerLocations")=1,"Customer","Customers").

  4. Centrare la casella di testo nel report e formattare ogni riga del testo in base alle esigenze.

Per eliminare le caselle di testo dello scenario

  • Eliminare la casella di testo ToggleInformation e la casella di testo contenente il testo dello scenario.

Per questo report, le informazioni sullo scenario sono incluse nel titolo del report appena aggiunto.

Aggiungere la descrizione

Per aggiungere la descrizione

  1. Nel piè di pagina sostituire il testo nella casella di testo della descrizione con il seguente:

    Scopo: Report drill-through dai marcatori dei negozi in Sales_by_Region_2008R2. Visualizza le informazioni sui clienti che risiedono entro il numero specificato di miglia da un negozio. La geolocazione del negozio è un parametro String che contiene un valore Well Known Text (WKT).

  2. Fare clic sullo sfondo del report per visualizzare Proprietà report nel riquadro delle proprietà.

  3. In Descrizione incollare il testo della descrizione.

Visualizzare i dati demografici dei clienti in una tabella

Per aggiungere la tabella

  1. Aggiungere una tabella denominata tblxTable_Demographics in cui sono visualizzati i campi seguenti del set di dati CustomerLocations:

    • [Name2], [Name1]

    • [DistanceinMiles]

    • [NumberCarsOwned]

    • [EmailAddress]

  2. Aggiungere un gruppo di righe basato su [CommuteDistance].

  3. Formattare la tabella in base alle esigenze.

Per aggiungere un messaggio da visualizzare quando non sono presenti dati

  1. Selezionare la tabella.

  2. Nel riquadro Proprietà trovare NoRowsMessage e digitare l'espressione seguente: ="No customers live within " & Parameters!Radius.Value & " miles. Display the parameters on the toolbar and enter a different distance."

Visualizzare l'anteprima e verificare il report

Per visualizzare l'anteprima e verificare il report

  • Eseguire il report e verificare gli elementi seguenti:

    1. I valori dei parametri vengono visualizzati nel titolo del report.

    2. La tabella viene organizzata in base alla distanza dal lavoro.

    3. Il numero dei clienti cambia in base al valore del parametro del raggio.

    4. Quando non esistono clienti entro la distanza specificata, viene visualizzato il valore NoRowsMessage.

Passaggi successivi

È stata completata la compilazione di questo report. Per compilare gli altri report di esempio di AdventureWorks, vedere Esercitazioni: Creazione dei report di esempio di AdventureWorks 2008R2 (SSRS).

Vedere anche

Altre risorse

Cronologia modifiche

Contenuto aggiornato

  • Report modificato che deve essere basato su AdventureWorks2008R2_Base.rdl