Création de datasets de rapport à partir d'une base de données relationnelle SQL Server (Générateur de rapports version 2.0)

Le Générateur de rapports version 2.0 fournit une extension pour le traitement des données prenant en charge la récupération de données de rapport à partir de bases de données relationnelles MicrosoftSQL Server. Vous pouvez récupérer des données de rapport pour un dataset de rapport à partir de tables de bases de données, de vues, de procédures stockées et de fonctions table.

Avant de créer un dataset de rapport, vous devez créer une source de données ayant le type de source de données MicrosoftSQL Server. Après avoir créé une source de données MicrosoftSQL Server, vous pouvez créer un dataset des manières suivantes :

  • Utilisez l'Assistant Nouveau tableau ou nouvelle matrice ou l'Assistant Nouveau graphique. Vous pouvez sélectionner un dataset existant dans le rapport ou utiliser les Assistants pour vous aider à créer un dataset différent et une requête.

  • Créez un dataset et une requête de dataset à partir du volet Données du rapport.

Spécification d'une requête de dataset de rapport

Une requête spécifie les données à extraire d'une base de données MicrosoftSQL Server pour un dataset de rapport. Les colonnes dans le jeu de résultats d'une requête remplissent la collection de champs pour un dataset. Un rapport traite uniquement le premier jeu de résultats extrait par une requête.

Pour aider à spécifier les données souhaitées, vous pouvez choisir parmi les options suivantes :

  • Générer une requête de manière interactive. Utilisez le Concepteur de requêtes relationnelles, qui affiche une vue hiérarchique des tables, vues, procédures stockées et autres éléments de base de données, organisés par schéma de base de données. Sélectionnez des colonnes à partir des tables ou des vues ou spécifiez des procédures stockées ou des fonctions table. Limitez le nombre de lignes de données à extraire en spécifiant des critères de filtre. Personnalisez le filtre lorsque le rapport s'exécute en définissant l'option de paramètre.

  • Taper ou coller une requête. Utilisez le Concepteur de requêtes textuel pour entrer directement du texte Transact-SQL, coller du texte de requête depuis une autre source, entrer des requêtes complexes impossibles à créer à l'aide du Concepteur de requêtes relationnelles ou pour entrer des expressions basées sur des requêtes.

  • Importer une requête existante à partir d'un fichier ou rapport. Utilisez le bouton Importer une requête de l'un des Concepteurs de requêtes afin de naviguer jusqu'à un fichier .sql ou .rdl et d'importer une requête.

Pour plus d'informations, consultez Interface utilisateur du Concepteur de requêtes relationnelles (Générateur de rapports version 2.0), Interface utilisateur du Concepteur de requêtes textuel (Générateur de rapports version 2.0) et Procédure : récupérer des données d'une source de données SQL Server (Générateur de rapports version 2.0).

Utilisation du type de requête Texte

Dans le Concepteur de requêtes textuel, vous pouvez taper des commandes Transact-SQL pour définir les données d'un dataset. Par exemple, la requête Transact-SQL suivante sélectionne les noms de tous les employés qui occupent la fonction d'assistants marketing.

SELECT
  HumanResources.Employee.BusinessEntityID
  ,HumanResources.Employee.JobTitle
  ,Person.Person.FirstName
  ,Person.Person.LastName
FROM
  Person.Person
  INNER JOIN HumanResources.Employee
    ON Person.Person.BusinessEntityID = HumanResources.Employee.BusinessEntityID
WHERE HumanResources.Employee.JobTitle = 'Marketing Assistant' 

Cliquez sur le bouton Exécuter (!) de la barre d'outils pour exécuter la requête et afficher un jeu de résultats.

Pour paramétrer cette requête, ajoutez un paramètre de requête. Par exemple, modifiez la clause WHERE comme suit :

WHERE HumanResources.Employee.JobTitle = (@JobTitle)

Lorsque vous exécutez la requête, les paramètres de rapport qui correspondent aux paramètres de requête sont créés automatiquement. Pour plus d'informations, consultez Paramètres de requête plus loin dans cette rubrique.

Utilisation du type de requête StoredProcedure

Vous pouvez spécifier une procédure stockée pour une requête de dataset en procédant de l'une des manières suivantes :

  • Dans la boîte de dialogue Propriétés du dataset, définissez l'option Procédure stockée. Effectuez un choix dans la zone de liste déroulante de procédures stockées et de fonctions table.

  • Dans le Concepteur de requêtes relationnelles, dans le volet Base de données, sélectionnez une procédure stockée ou une fonction table.

  • Dans le Concepteur de requêtes textuel, sélectionnez StoredProcedure dans la barre d'outils.

Après avoir sélectionné une procédure stockée ou une fonction table, vous pouvez exécuter la requête. Vous serez invité à fournir les valeurs des paramètres d'entrée. Lorsque vous exécutez la requête, les paramètres de rapport qui correspondent aux paramètres d'entrée sont créés automatiquement. Pour plus d'informations, consultez Paramètres de requête plus loin dans cette rubrique.

Seul le premier jeu de résultats extrait pour une procédure stockée est pris en charge. Si une procédure stockée retourne plusieurs jeux de résultats, seul le premier est utilisé.

Si une procédure stockée possède un paramètre doté d'une valeur par défaut, vous pouvez accéder à cette dernière en utilisant le mot clé DEFAULT comme valeur pour le paramètre. Si le paramètre de requête est lié à un paramètre de rapport, l'utilisateur peut taper ou sélectionner le mot DEFAULT dans la zone d'entrée pour le paramètre de rapport.

Pour plus d'informations sur les procédures stockées, consultez « Procédures stockées (Moteur de base de données) » dans la documentation en ligne de SQL Server.

Utilisation de paramètres de requête

Pour le texte de requête qui contient des paramètres ou pour les procédures stockées dotées de paramètres d'entrée, les paramètres de rapport correspondants sont créés automatiquement. Lors de l'exécution du rapport, les valeurs des paramètres de rapport sont passées aux paramètres de requête. Par exemple, la requête SQL suivante crée un paramètre de rapport nommé EmpID :

SELECT FirstName, LastName FROM HumanResources.Employee E INNER JOIN
       Person.Contact C ON  E.ContactID=C.ContactID 
WHERE EmployeeID = @EmpID

Vous pouvez gérer la relation entre les paramètres de rapport et les paramètres de requête à l'aide de la Boîte de dialogue Propriétés du dataset, Paramètres (Générateur de rapports version 2.0). Les requêtes comportant des paramètres liés à des paramètres de rapport ne nécessitent pas l'instruction DECLARE.

Bien que les paramètres de rapport soient automatiquement créés à partir des paramètres de requête, ils sont gérés séparément dans le volet Données du rapport.

[!REMARQUE]

Si vous renommez ou supprimez un paramètre de requête, le paramètre de rapport correspondant n'est pas renommé ou supprimé pour autant. Vous pouvez supprimer ou modifier l'ordre des paramètres de rapport en utilisant les boutons de la barre d'outils du volet Données du rapport. Pour plus d'informations, consultez Ajout de paramètres à un rapport (Générateur de rapports version 2.0).

Modification d'un dataset

Après avoir créé un dataset, vous pouvez afficher le dataset et sa collection de champs dans le volet Données du rapport. Vous souhaiterez peut-être également utiliser la boîte de dialogue Propriétés du dataset pour effectuer certaines des tâches suivantes :

  • Modifier la collection de champs en ajoutant des champs calculés. Les champs calculés disposent de valeurs basées sur des expressions qui sont évaluées après l'exécution de la requête. Les types de données des champs sont mappés à un sous-ensemble de types de données CLR (Common Language Runtime) à partir du .NET Framework.

  • Spécifier des propriétés de dataset telles que Timeout, CaseSensitivity et Collation.

  • Modifier la requête pour ajouter des paramètres permettant à un utilisateur ou à un auteur de rapport de personnaliser les données d'un rapport au moment de l'exécution.

Pour modifier la manière dont les données sont triées ou filtrées dans un dataset, consultez également les rubriques suivantes :