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
Cliquez sur Démarrer, pointez sur Tous les programmes, puis sur Microsoft SQL Server 2008 R2 et cliquez sur Business Intelligence Development Studio.
Dans le menu Fichier, pointez sur Ouvrir, puis cliquez sur Projet/Solution.
Naviguez jusqu'au projet de serveur de rapports nommé Didacticiel.
Dans le dossier Didacticiel, cliquez sur Didacticiel.sln.
Cliquez sur Ouvrir pour ouvrir le projet.
Le projet Didacticiel s'affiche dans l'Explorateur de solutions.
Pour créer un nouveau rapport
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.
Dans le volet Modèles de la boîte de dialogue Ajouter un nouvel élément, sélectionnez l'option Rapport.
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
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.
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.
Dans Chaîne de connexion, tapez ce qui suit :
Data source=localhost; initial catalog=AdventureWorks2008R2
Cliquez sur OK.
La source de données apparaît dans le volet Données du rapport.
Dans le volet Données du rapport, cliquez avec le bouton droit sur AdventureWorks2008R2, puis cliquez sur Ajouter un dataset.
Dans le champ Nom, tapez Ventes.
Dans Type de requête, vérifiez que l'option Texte est sélectionnée.
Sous le volet Requête, cliquez sur Concepteur de requêtes pour ouvrir le concepteur de requêtes textuel.
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')
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.
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.