Leçon 1 : Définition d'une requête de dataset pour un rapport de matrice

Dans cette leçon, vous allez ajouter un nouveau rapport au projet Report Server que vous avez créé dans le didacticiel Création d'un rapport de tableau de base, définir une source de données et une requête de dataset. Vous allez utiliser l'exemple de base de données AdventureWorks2008R2 comme source de données. Le didacticiel suppose que cette base de données est située dans l'instance par défaut de SQL Server installée sur votre ordinateur local.

Pour ouvrir un projet Reporting Services existant

  1. Cliquez sur Démarrer, pointez sur Tous les programmes, puis sur Microsoft SQL Server 2008 R2 et cliquez sur Business Intelligence Development Studio.

  2. Dans le menu Fichier, pointez sur Ouvrir, puis cliquez sur Projet/Solution.

  3. Naviguez jusqu'au projet de serveur de rapports nommé Didacticiel.

  4. Dans le dossier Didacticiel, cliquez sur Didacticiel.sln.

  5. Cliquez sur Ouvrir pour ouvrir le projet.

    Le projet Didacticiel s'affiche dans l'Explorateur de solutions.

Pour créer un nouveau rapport

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Rapports, pointez sur Ajouter, puis cliquez sur Nouvel élément.

    Notes

    Si l'Explorateur de solutions n'apparaît pas, dans le menu Affichage, cliquez sur Explorateur de solutions.

  2. Dans le volet Modèles de la boîte de dialogue Ajouter un nouvel élément, sélectionnez l'option Rapport.

  3. Dans le champ Nom, tapez Ventes par zone et par année.rdl, puis cliquez sur Ajouter.

    Le Concepteur de rapports s'ouvre en mode Création et affiche une définition de rapport vide.

Pour définir une requête Transact-SQL pour les données du rapport

  1. Dans le volet Données du rapport, cliquez sur Nouveau, puis sur Source de données. La boîte de dialogue Propriétés de la source de données s'ouvre.

  2. Dans Nom, tapez AdventureWorks2008R2.

    Vérifiez que l'option Connexion incorporée est sélectionnée et que le Type est bien Microsoft SQL Server.

  3. Dans Chaîne de connexion, tapez ce qui suit :

    Data source=localhost; initial catalog=AdventureWorks2008R2
    
  4. Cliquez sur OK.

    La source de données apparaît dans le volet Données du rapport.

  5. Dans le volet Données du rapport, cliquez avec le bouton droit sur AdventureWorks2008R2, puis cliquez sur Ajouter un dataset.

  6. Dans le champ Nom, tapez Ventes.

  7. Dans Type de requête, vérifiez que l'option Texte est sélectionnée.

  8. Sous le volet Requête, cliquez sur Concepteur de requêtes pour ouvrir le concepteur de requêtes textuel.

  9. Dans le volet de requête, collez la requête Transact-SQL suivante :

    SELECT 
       SOH.SalesPersonID AS ID, P.FirstName, P.LastName,
       SOH.SalesOrderNumber AS [Order], 
       SOH.OrderDate AS [Date], 
       DATEPART(yy, SOH.OrderDate) AS [Year], 
       DATEPART(mm, SOH.OrderDate) AS [Month],
       ST.[Group] AS [Geography],  
       ST.CountryRegionCode AS CountryRegion, 
       ST.Name AS Territory, 
       PPC.Name AS Category, PPS.Name AS Subcat, PP.Name AS Product,
       PP.Color, PP.Size, 
       CASE
          WHEN PP.Size = 'S' THEN 1
          WHEN PP.Size = 'M' THEN 2
          WHEN PP.Size = 'L' THEN 3
          WHEN PP.Size = 'XL' THEN 4
          ELSE PP.Size
       END AS SizeSortOrder,  
       SUM(SD.OrderQty) AS Qty,
       SUM(SD.LineTotal) AS LineTotal
    FROM Sales.SalesPerson AS SP 
       INNER JOIN Sales.SalesOrderHeader AS SOH
          ON SP.BusinessEntityID = SOH.SalesPersonID
       INNER JOIN Person.Person AS P 
          ON P.BusinessEntityID = SP.BusinessEntityID
       INNER JOIN Sales.SalesOrderDetail AS SD 
          ON SD.SalesOrderID = SOH.SalesOrderID
       INNER JOIN Production.Product AS PP 
          ON SD.ProductID = PP.ProductID
       INNER JOIN Sales.SalesTerritory AS ST 
          ON ST.TerritoryID = SP.TerritoryID
       INNER JOIN Production.ProductSubcategory AS PPS 
          ON PP.ProductSubcategoryID = PPS.ProductSubcategoryID
       INNER JOIN Production.ProductCategory AS PPC
          ON PPC.ProductCategoryID = PPS.ProductCategoryID
    GROUP BY PPC.Name, SOH.OrderDate, SOH.SalesOrderNumber, 
       PPS.Name, PP.Name, 
       SOH.SalesPersonID, P.LastName, P.FirstName,
       ST.[Group], ST.CountryRegionCode, ST.Name,
       PP.Color, PP.Size
    HAVING (DATEPART(yy,SOH.OrderDate) IN ('2003','2004') 
       AND ST.[Group] = 'North America' 
       AND LEFT(PPS.Name,1) IN ('C','T')
       AND LEFT(PPC.Name,1) = 'C')
    
  10. Pour afficher les résultats de la requête, cliquez sur Exécuter (!) dans la barre d'outils du concepteur de requêtes.

    Dans le jeu de résultats, les données de 18 champs s'affichent dans sept tables différentes dans la base de données AdventureWorks2008R2. Cette requête inclut divers champs qui peuvent être utilisés pour regrouper des données dans le rapport, notamment l'année et le mois de la commande, l'emplacement géographique du secteur de vente (région et pays), ainsi que la catégorie et la sous-catégorie du produit. De plus, les données de vente ont été filtrées pour extraire uniquement les commandes des années 2003 et 2004, pour des ventes qui ont eu lieu en Amérique du Nord et pour les catégories Habillement et Composants et les sous-catégories qui commencent par la lettre C. L'option de filtrage est utilisée dans ce didacticiel pour créer des exemples succincts qui peuvent être affichés dans une page unique.

  11. Cliquez sur OK. Cliquez de nouveau sur OK.

    Les champs de la requête de dataset apparaissent dans le volet Données du rapport.

Tâche suivante

Vous venez de spécifier une requête qui permet d'extraire les données pour votre rapport. Vous allez maintenant ajouter une région de données de matrice à l'aire de conception et organiser des données dans la matrice en y ajoutant des groupes. Consultez Leçon 2 : ajout d'une région de données de matrice avec des groupes de lignes et de colonnes.