Fonctionnement des datasets de rapport

Vous pouvez visualiser les données d'un dataset de rapport sous la forme d'un ensemble de lignes et de colonnes. Il doit comporter au moins une colonne, et aucune ou plusieurs lignes. Au moment de la conception, vous créez une requête qui indique les colonnes à récupérer de la source de données. Vous utilisez alors des métadonnées afin de pouvoir lier des champs de dataset à des régions de données et des éléments de rapport sur l'aire de conception. Lors de la conception, le processeur de rapports extrait les données réelles et les combine avec la mise en page de rapport. Le rapport est alors transmis au convertisseur de rapport, que vous utilisez pour afficher le rapport.

Lorsque vous exécutez une requête de dataset dans un concepteur de requêtes lors de la conception, vous voyez s'afficher un ensemble de lignes extrait de la source de données en guise de données d'exemple. Au moment de l'exécution, lorsqu'un utilisateur consulte le rapport, la requête de dataset peut produire des valeurs différentes, car les données sur la source de données ont changé. Chaque fois que le rapport est traité, de nouvelles données peuvent apparaître.

Fonctionnement des données de dataset de rapport

Un dataset de rapport peut être constitué des types de données suivants :

  • Jeu de résultats provenant d'une base de données relationnelles, qui peut résulter de l'exécution de commandes de base de données, de procédures stockées ou de fonctions définies par l'utilisateur. Si plusieurs jeux de résultats sont extraits par l'intermédiaire d'une requête unique, seul le premier jeu de résultats est traité et tous les autres jeux de résultats sont ignorés. Par exemple, lorsque vous exécutez la requête suivante dans le concepteur de requêtes textuel, seul le jeu de résultats pour Production.Product apparaît dans le volet de résultats :

    SELECT ProductID FROM Production.Product
    GO
    SELECT ContactID FROM Person.Contact
    
  • Ensemble de lignes aplati extrait de sources de données multidimensionnelles qui utilisent le protocole XMLA (XML for Analysis). Certains fournisseurs de données fournissent des propriétés de cellule et de dimension supplémentaires à partir de la source de données qui ne sont pas affichées dans le jeu de résultats, mais qui sont disponibles dans votre rapport.

  • Jeu de résultats aplati extraits de sources de données XML qui incluent des éléments XML, leurs attributs et leurs éléments enfants.

  • Jeu de résultats extrait de tous les fournisseurs de données .NET Framework enregistrés et configurés.

  • Données d'un modèle de rapport qui a été conçu pour une source de données spécifique, avec des entités, des relations d'entités et des champs prédéfinis. Pour plus d'informations, consultez Utilisation de modèles de rapport comme datasets prédéfinis.

Lorsque le rapport est traité au moment de l'exécution, le jeu de résultats réel retourné pour une requête peut comporter aucune ou plusieurs lignes. Les colonnes définies dans la requête peuvent également être manquantes dans la source de données. Les valeurs Null de la source de données sont mappées à la valeur .NET Framework value System.DBNull.Value.

Définition des propriétés des données

Lorsque vous définissez un dataset de rapport, vous pouvez définir des propriétés de données dans la requête ou accepter les paramètres par défaut définis par le fournisseur de données. Pour modifier un type de données, vous pouvez utiliser l'une des méthodes suivantes :

  • Réécrivez la requête de dataset pour convertir spécifiquement un champ en un type de données différent.

  • Modifiez le champ dans le dataset et fournissez un format personnalisé.

  • Créez un champ personnalisé en fonction d'un champ de base de données et fournissez un format personnalisé.

Pour les sources de données qui prennent en charge des données internationales, vous devrez éventuellement modifier les propriétés d'un dataset qui affectent l'ordre de tri, les propriétés des caractères internationaux, et indiquer si la différenciation majuscules/minuscules doit être appliquée. Ces propriétés incluent : casse, jeu de caractères Kana, largeur, accent et classement. Pour plus d'informations, consultez Observations à caractère international sur les bases de données et les applications de moteur de base de données et Utilisation des classements. Pour plus d'informations sur la façon de définir ces propriétés, consultez Boîte de dialogue Propriétés du dataset, Options.

Fonctionnement des types de données dans une collection de champs de dataset

Dans la source de données, les données sont stockées dans des types de données pris en charge par la source de données. Par exemple, les données d'une base de données SQL Server doivent correspondre à l'un des types de données SQL Server pris en charge, tels que nvarchar ou datetime. Lorsque vous récupérez des données à partir de la source de données, celles-ci sont transmises par l'intermédiaire d'une extension pour le traitement des données ou d'un fournisseur de données associé au type de source de données. Selon l'extension pour le traitement des données utilisée, les données peuvent être converties à partir des types de données utilisés par la source de données en types de données pris en charge par l'extension pour le traitement des données. Reporting Services utilise des types de données pris en charge par le Common Language Runtime (CLR) qui est installé avec Business Intelligence Development Studio. Le fournisseur de données mappe chaque colonne contenue dans le jeu de résultats du type de données natif en un type de données CLR (Common Language Runtime) .NET Framework.

À chaque étape, les données sont représentées par les types de données comme décrit dans la liste suivante :

  • Source de données   Il s'agit des types de données pris en charge par la version du type de source de données à laquelle vous vous connectez.

    Par exemple, les types de données classiques pour une source de données SQL Server incluent int, datetime et varchar. Les types de données introduits par SQL Server 2008 ont ajouté la prise en charge de date, time, datetimetz et datetime2. Pour plus d'informations, consultez Types de données (Transact-SQL).

  • Fournisseur de données ou extension pour le traitement des données   Il s'agit des types de données pris en charge par la version du fournisseur de données ou de l'extension pour le traitement des données que vous sélectionnez lorsque vous vous connectez à la source de données. Les fournisseurs de données se basant sur le .NET Framework utilisent des types de données pris en charge par le CLR. Pour plus d'informations sur les types de données des fournisseurs de données .NET Framework, consultez Mappages de types de données (ADO.NET) et Utilisation des types de base sur MSDN.

    Par exemple, des types de données classiques pris en charge par le .NET Framework sont notamment Int32 et String. Les dates et heures de calendrier sont prises en charge par la structure DateTime. .NET Framework 2.0 Service Pack 1 a introduit la prise en charge de la structure DateTimeOffset pour les dates ayant un décalage de fuseau horaire.

    [!REMARQUE]

    Le serveur de rapports utilise les fournisseurs de données qui sont installés et configurés sur le serveur de rapports. Les clients de création de rapports en mode Aperçu utilisent les extensions pour le traitement des données installées et configurées sur l'ordinateur client. Vous devez tester votre rapport à la fois dans l'environnement de client de rapports et dans l'environnement de serveur de rapports.

  • Processeur de rapports   Les types de données se basent sur la version du CLR installée lorsque vous avez installé Reporting Services. SQL Server 2008Reporting Services installe le CLR en se basant sur .NET Framework 3.5.

    Par exemple, les types de données que le processeur de rapports utilise pour les nouveaux types de date et d'heure introduits dans SQL Server 2008 sont indiqués dans le tableau ci-dessous :

    Type de données SQL

    Type de données CLR

    Description

    Date

    DateTime

    Date uniquement

    Time

    TimeSpan

    Heure uniquement

    DateTimeTZ

    DateTimeOffset

    Date et heure avec décalage de fuseau horaire

    DateTime2

    DateTime

    Date et heure avec fractions de milliseconde

Pour plus d'informations sur les types de bases de données SQL Server, consultez Types de données (Moteur de base de données) et Types de données et fonctions de date et d'heure (Transact-SQL).

Pour plus d'informations sur l'inclusion de références dans un champ de dataset à partir d'une expression, consultez Utilisation des types de données dans les expressions (Reporting Services).

Utilisation de plusieurs datasets

Un rapport comporte généralement plusieurs datasets. La liste suivante décrit la manière dont vous pouvez utiliser les datasets dans un rapport :

  • Vous affichez les données provenant de chaque dataset à l'aide d'une région de données distincte. Pour plus d'informations, consultez Utilisation de régions de données.

  • Vous pouvez lier plusieurs régions de données à un dataset et fournir plusieurs vues des mêmes données. Pour plus d'informations, consultez Liaison de plusieurs régions de données à un même dataset.

  • Vous pouvez utiliser des datasets pour fournir une liste déroulante des valeurs disponibles et des valeurs par défaut pour un paramètre de rapport. Pour plus d'informations, consultez Ajout de paramètres à votre rapport.

  • À l'aide de paramètres, vous pouvez associer des données liées provenant de plusieurs datasets à des rapports ou des sous-rapports d'extraction. Par exemple, un état des ventes peut afficher les données de synthèse pour tous les magasins et un lien d'extraction peut spécifier l'identificateur de magasin en tant que paramètre à un rapport avec une requête de dataset qui extrait les ventes individuelles pour le magasin spécifié. Pour plus d'informations, consultez Ajout de rapports d'extraction et Ajout de sous-rapports.

  • Vous ne pouvez pas afficher de données de détail provenant de plusieurs datasets dans une région de données unique. Toutefois, vous pouvez afficher des valeurs de fonction d'agrégation ou de fonction intégrée pour plusieurs datasets dans une région de données. Pour plus d'informations, consultez Utilisation de fonctions de rapport et d'agrégation intégrées dans des expressions (Reporting Services). Si vous devez combiner les données de détail de plusieurs datasets en une région de données unique, vous devez réécrire votre requête pour extraire les données sous la forme d'un dataset unique.

Importation de requêtes existantes pour un dataset

Lorsque vous créez un dataset, vous pouvez créer une requête ou vous pouvez importer une requête existante à partir d'un fichier ou d'un autre rapport. Seuls les types de fichiers .sql et .rdl sont pris en charge. Les requêtes MDX (Multidimensional Expression) ou DMX (Data Mining Prediction) peuvent être générées uniquement par un concepteur de requêtes Reporting Services, car un jeu de résultats doit être extrait sous la forme d'un ensemble de lignes aplati.

Lorsque vous importez une requête à partir d'un autre rapport, vous pouvez choisir la requête à importer de la liste des datasets du rapport.

Affichage d'un message lorsque aucune ligne de données n'est récupérée lors de l'exécution

Durant le traitement du rapport, lorsque la requête pour un dataset s'exécute, le jeu de résultats peut ne contenir aucune ligne. Dans le rapport rendu, une région de données liée à un dataset vide s'affiche comme une région de données vide. Vous pouvez spécifier le texte à afficher à la place de la région de données vide dans le rapport rendu. Vous pouvez également spécifier un message pour les sous-rapports lorsque les requêtes pour tous les datasets ne produisent aucune donnée lors de l'exécution. Pour plus d'informations, consultez Procédure : définir un message d'absence de données pour une région de données.

Détection des champs manquants

Lorsque le rapport est traité, le jeu de résultats pour un dataset peut ne pas contenir de valeurs pour toutes les colonnes spécifiées, car les colonnes n'existent plus sur la source de données. Vous pouvez utiliser la propriété de champ IsMissing pour détecter si des valeurs ont été retournées pour un champ lors de l'exécution. Pour plus d'informations, consultez Utilisation de références à la collection Champs de dataset dans des expressions (Reporting Services).

Affichage des datasets masqués

Lorsque vous créez une requête paramétrable pour plusieurs sources de données multidimensionnelles, Reporting Services crée automatiquement des datasets pour fournir des valeurs valides pour le paramètre. Par défaut, ces datasets n'apparaissent pas dans le volet Données du rapport. Pour plus d'informations, consultez Procédure : afficher les datasets masqués.