Partager via


Création du rapport Customers_Near_Stores_2008R2 (SSRS)

Ce didacticiel vous aide à générer le rapport Customers_Near_Stores_2008R2 à partir de la suite d'exemples de rapports AdventureWorks 2008R2.

Ce rapport affiche une liste de clients et de données démographiques pour des clients AdventureWorks particuliers qui vivent dans un rayon spécifié d'une géolocalisation. La géolocalisation est transmise en tant que paramètre String qui contient la représentation de texte WKT (Well Known Text) d'un emplacement géographique. Pour plus d'informations sur la suite de rapports et leurs relations, consultez Didacticiels : Création d'exemples de rapports AdventureWorks 2008R2 (SSRS).

Contenu du didacticiel

Dans ce didacticiel, vous effectuerez les tâches suivantes :

  • Ajouter un dataset avec des informations sur un client particulier, notamment la distance entre le domicile et un emplacement spécifié.

  • Ajouter un dataset avec des informations sur le magasin du revendeur.

  • Configurer un paramètre qui contient une géolocalisation sous forme de texte.

  • Configurer un paramètre qui spécifie une distance à partir du magasin.

  • Afficher la source de données, le dataset et les valeurs de paramètre choisies dans la dernière page du rapport.

  • Ajouter un titre de rapport qui inclut des informations relatives à l'objectif du rapport.

  • Ajouter la description du rapport.

  • Ajouter une table pour afficher les données démographiques pour les clients qui vivent dans le rayon spécifié du magasin spécifié.

  • Définir une propriété NoRowsMessage à afficher lorsqu'aucun client ne vit dans le rayon spécifié.

  • Afficher un aperçu du rapport et le vérifier.

Durée estimée pour effectuer ce didacticiel : 15 minutes.

Conditions requises

Pour obtenir la liste des conditions requises, consultez Composants requis pour les exemples de rapports AdventureWorks 2008R2 (SSRS).

Ce didacticiel part du principe que vous avez terminé le didacticiel Création du projet Report Server et du rapport AdventureWorks2008R2_Base (SSRS).

Pour ouvrir le projet et effectuer une copie d'un rapport

  1. Dans Business Intelligence Development Studio, ouvrez le projet Report Server AdventureWorks 2008R2.

  2. Dans l'Explorateur de solutions, procédez comme suit :

    1. Cliquez avec le bouton droit sur le rapport AdventureWorks2008R2_Base.rdl, puis cliquez sur Copier.

    2. Cliquez avec le bouton droit sur le nœud du projet, puis cliquez sur Coller.

    3. Renommez le rapport copié en Customers_Near_Stores_2008R2.rdl.

Pour créer le dataset pour les informations sur le client

  • Dans le volet Données du rapport, ajoutez un dataset incorporé nommé CustomerLocations. Utilisez la source de données partagée AdventureWorks2008R2 et la requête suivante :

    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 requête de dataset retourne des informations sur le client, notamment les données démographiques, pour les clients qui vivent dans @Radius miles de @GeoLocation.

Dans le rapport, ces données sont affichées dans la matrice.

Pour créer une liste de valeurs valides pour le paramètre Geolocation

  • Dans le volet Données du rapport, ajoutez un dataset incorporé nommé StoreLocation. Utilisez la source de données partagée AdventureWorks2008R2 et la requête suivante :

    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 requête de dataset retourne une liste des sièges sociaux des magasins AdventureWorks et leurs géolocalisations.

Dans le rapport, ces données sont affichées sous la forme d'une liste de valeurs valides pour le paramètre @Geolocation. Dans la barre d'outils de la visionneuse de rapports, l'affichage indique l'étiquette de paramètre qui contient le nom de magasin et non la valeur qui contient la géolocalisation.

Pour configurer le paramètre de rapport @Geolocation

  1. Ouvrez Propriétés du paramètre pour @Geolocation.

  2. Remplacez Demander par Emplacement du magasin ?

  3. Dans Valeurs disponibles, sélectionnez Obtenir les valeurs à partir d'une requête.

  4. Pour Dataset, sélectionnez StoreLocation.

  5. Pour Valeur, sélectionnez GeoLocation.

  6. Pour Étiquette, sélectionnez Store.

  7. Dans Valeurs par défaut, ajoutez une valeur et affectez-lui le texte suivant :

    POINT (-82.4151596338717 40.7459610884615)

Cette valeur correspond au magasin nommé The Bike Mechanics.

Pour configurer le paramètre de rapport @Radius

  1. Ouvrez les propriétés de paramètre pour @Radius.

  2. Dans Demander, tapez Distance en miles ?

  3. Remplacez Type de données par Entier.

  4. Dans Valeurs par défaut, ajoutez une valeur et définissez-la sur 100.

Pour ajouter à l'en-tête de page des instructions permettant de revenir au rapport parent

  1. Augmentez la hauteur de l'en-tête de page.

  2. Sous le logo, ajoutez une zone de texte nommée tbBackInstructions avec le texte suivant : Utilisez le bouton Précédent du navigateur pour revenir au rapport parent.

  3. Mettez en forme la zone de texte, si nécessaire.

Pour ajouter le titre du rapport

  1. Dans la partie supérieure du rapport, sous l'en-tête de page, ajoutez une zone de texte nommée tbTitle avec le texte suivant :

    Données sociodémographiques pour les [NCustomers] [Clients]

    vivant dans un rayon de [@Radius] miles du magasin

    [@GeoLocation.Label]

    Regroupés par distances domicile-travail

  2. Cliquez avec le bouton droit sur [NCustomers] pour ouvrir la boîte de dialogue Propriétés de l'espace réservé et affectez à Nom la valeur NCustomers et à Valeur la valeur =CountDistinct(Fields!CustomerID.Value,"CustomerLocations").

  3. Cliquez avec le bouton droit sur [Customers] pour ouvrir la boîte de dialogue Propriétés de l'espace réservé et affectez à Nom la valeur clients et à Valeur la valeur =IIF(CountDistinct(Fields!CustomerID.Value,"CustomerLocations")=1,"Customer","Customers").

  4. Centrez la zone de texte sur le rapport et mettez en forme chaque ligne de texte, si nécessaire.

Pour supprimer les zones de texte de scénario

  • Supprimez la zone de texte ToggleInformation et la zone de texte qui contiennent le texte de scénario.

Pour ce rapport, les informations de scénario sont incluses dans le titre de rapport que vous venez d'ajouter.

Ajouter la description

Pour ajouter la description

  1. Dans le pied de page, remplacez le texte figurant dans la zone de texte de description par le texte suivant :

    Objectif : rapport d'extraction de marqueurs de magasins dans Sales_by_Region_2008R2. Affiche des informations sur les clients qui vivent dans le rayon spécifié en nombre de miles d'un magasin. La géolocalisation de magasin est un paramètre String qui contient une valeur texte WKT.

  2. Cliquez sur l'arrière-plan du rapport pour afficher Propriétés du rapport dans le volet de propriétés.

  3. Dans Description, collez le texte de description.

Afficher les données sociodémographiques des clients dans une table

Pour ajouter la table

  1. Ajoutez une table nommée tblxTable_Demographics qui affiche les champs suivants du dataset CustomerLocations :

    • [Name2], [Name1]

    • [DistanceinMiles]

    • [NumberCarsOwned]

    • [EmailAddress]

  2. Ajoutez un groupe de lignes basé sur [CommuteDistance].

  3. Mettez en forme la table autant que nécessaire.

Pour ajouter un message à afficher en l'absence de données

  1. Sélectionnez la table.

  2. Dans le volet Propriétés, recherchez NoRowsMessage et tapez l'expression suivante : ="No customers live within " & Parameters!Radius.Value & " miles. Display the parameters on the toolbar and enter a different distance."

Afficher un aperçu du rapport et le vérifier

Pour afficher un aperçu du rapport et le vérifier

  • Exécutez le rapport et vérifiez les éléments suivants :

    1. Les valeurs de paramètre s'affichent dans le titre de rapport.

    2. La table est classée par distances domicile-travail.

    3. Lorsque vous modifiez la valeur du paramètre de rayon, le nombre de clients change.

    4. Lorsqu'il n'y a pas de clients dans le rayon spécifié, la valeur NoRowsMessage s'affiche.

Étapes suivantes

Vous avez terminé la génération de ce rapport. Pour générer d'autres exemples de rapports AdventureWorks, consultez Didacticiels : Création d'exemples de rapports AdventureWorks 2008R2 (SSRS).

Voir aussi

Autres ressources

Historique des modifications

Mise à jour du contenu

  • Rapport modifié à baser sur AdventureWorks2008R2_Base.rdl