Utilisation de champs dans un dataset de rapport

Les champs de dataset sont utilisés pour fournir un lien entre les éléments de rapport (comme les tables et graphiques) et les données de rapport. Un champ peut être un lien direct vers une colonne retournée par une requête ou il peut s'agir d'un champ calculé que vous définissez.

Les champs de dataset sont différents des champs prédéfinis. Les champs prédéfinis sont un ensemble de champs fournis par Reporting Services qui indiquent des informations sur le rapport, telles que le nom du rapport ou l'horodateur de son traitement. Pour plus d'informations, consultez Utilisation de références à des champs prédéfinis dans des expressions (Reporting Services).

Pour afficher les valeurs de champ de dataset dans un rapport, vous les faites glisser vers des zones de texte dans l'aire de conception ou les cellules de la région de données ou vers les zones de dépôt de graphiques et de jauges. Les champs de dataset peuvent représenter des données numériques et non numériques, aussi bien que d'autres types de données d'une base de données, par exemple des URL pour les rapports d'extraction, des images et des adresses de messagerie pour les abonnés.

Utilisation de la collection de champs

Les champs de dataset sont spécifiés par la requête de dataset et par tout champ calculé que vous définissez. Après avoir créé un dataset, vous pouvez afficher sa collection de champs si vous développez le nœud de dataset dans le volet Données du rapport. Chaque fois que vous modifiez la requête du dataset, les champs de base de données sont actualisés automatiquement.

Vous spécifiez un champ calculé manuellement en créant une expression. Les champs calculés peuvent être utilisés pour créer de nouvelles valeurs qui n'existent pas dans la source de données. Un champ calculé peut par exemple représenter une nouvelle valeur, un ordre de tri personnalisé pour un jeu de valeurs de champ ou un champ existant converti en un type de données différent. Pour plus d'informations, consultez Procédure : ajouter, modifier ou supprimer un champ dans le volet Données du rapport.

Liaison d'un champ de dataset à un élément de rapport

Les éléments de rapport suivants peuvent afficher des données d'un dataset : zone de texte, table, matrice, liste, graphique et jauge. Pour lier un champ à un élément de rapport, vous pouvez faire glisser le champ à partir du volet Données du rapport ou vous pouvez utiliser l'icône de sélecteur de champ sur l'élément de rapport. Par exemple, la méthode la plus simple pour lier un champ aux zones de dépôt de catégorie de graphique consiste à utiliser le sélecteur de champ. Pour un tableau matriciel doté d'un groupe de lignes existant, vous pouvez faire glisser un champ vers la zone du groupe de lignes du tableau matriciel pour ajouter des champs imbriqués supplémentaires. Lorsque vous faites glisser un champ vers la zone du corps du tableau matriciel, vous pouvez ajouter une nouvelle colonne avec les valeurs par défaut automatiquement remplies pour le champ.

Pour plus d'informations sur l'ajout de champs aux éléments de rapport sur l'aire de conception, consultez les types d'élément de rapport spécifiques dans Conception de la disposition du rapport.

Si vous ne voyez pas les résultats escomptés dans votre collection de champs de dataset, consultez Dépannage de rapports : rapports exportés dans un format de fichier spécifique.

Présentation des expressions par défaut

Une zone de texte peut correspondre à un élément de rapport de zone de texte dans le corps du rapport ou il peut s'agir d'une zone de texte dans une cellule d'une région de données de tableau matriciel. Lorsque vous liez un champ à une zone de texte, l'emplacement de celle-ci détermine l'expression par défaut pour la référence du champ. Dans le corps du rapport, une expression de valeur de zone de texte doit spécifier un agrégat et un dataset. S'il n'existe qu'un seul dataset dans le rapport, cette expression par défaut est créée à votre place. Pour un champ qui représente une valeur numérique, la fonction d'agrégation par défaut est Sum. Pour un champ qui représente une valeur non numérique, l'agrégat par défaut est First.

Dans une région de données de tableau matriciel, l'expression de champ par défaut dépend des appartenances aux lignes et aux groupes de la zone de texte à laquelle vous ajoutez le champ. L'expression de champ pour le champ Sales, lorsqu'il est ajouté à une zone de texte dans la ligne de détails d'une table, est [Sales]. Si vous ajoutez ce même champ à une zone de texte dans un en-tête de groupe, l'expression par défaut est (Sum[Sales]), car l'en-tête de groupe affiche des valeurs résumées pour le groupe et non des valeurs de détails. Lors de l'exécution du rapport, le processeur de rapports évalue chaque expression et substitue le résultat dans le rapport.

Utilisation des propriétés de champ étendues

Les sources de données qui prennent en charge des requêtes multidimensionnelles, comme SQL ServerAnalysis Services, prennent en charge les propriétés de champ sur les champs. Les propriétés de champ apparaissent dans le jeu de résultats d'une requête, mais ne sont pas visibles dans le volet Données du rapport. Elles sont néanmoins disponibles pour les utiliser dans votre rapport. Pour vous référer à la propriété d'un champ, faites glisser le champ dans le rapport et remplacez la propriété par défaut Value par le nom de champ de la propriété souhaitée. Dans un cube Analysis Services par exemple, vous pouvez définir des formats pour les valeurs dans les cellules de cube. La valeur mise en forme est disponible à l'aide de la propriété de champ FormattedValue. Pour utiliser directement la valeur au lieu d'utiliser une valeur, puis de définir la propriété de format de la zone de texte, faites glisser le champ vers la zone de texte et remplacez l'expression par défaut =Fields!FieldName.Value par =Fields!FieldName.FormattedValue.

[!REMARQUE]

Certaines propriétés Field ne peuvent pas être utilisées pour toutes les sources de données. Les propriétés Value et IsMissing sont définies pour toutes les sources de données. D'autres propriétés prédéfinies (comme Key, UniqueName et ParentUniqueName pour les sources de données multidimensionnelles) ne sont prises en charge que si la source de données fournit ces propriétés. Certains fournisseurs de données prennent en charge les propriétés personnalisées. Pour plus d'informations, consultez les rubriques spécifiques relatives aux propriétés de champ étendues correspondant à votre type de source de données dans Création d'un dataset de rapport. Par exemple, pour une source de données SQL ServerAnalysis Services, consultez Utilisation de propriétés de champ étendues pour un dataset Analysis Services.

Utilisation des types de données de champ

Lorsque vous créez un dataset, il se peut que les types de données des champs sur la source de données ne soient pas exactement les types de données utilisés dans un rapport. Les types de données peuvent passer par une ou deux couches de mappage. L'extension pour le traitement des données ou le fournisseur de données peuvent mapper les types de données de la source de données en types de données CLR (Common Language Runtime). Les types de données retournés par les extensions pour le traitement des données sont mappés à un sous-ensemble de types de données CLR (Common Language Runtime) à partir du .NET Framework.

Présentation 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 les types de données pris en charge par la version CLR (Common Language Runtime) installée avec Business Intelligence Development Studio.

Les données de rapport voyagent de la source de données via le fournisseur de données ou l'extension pour le traitement des données jusqu'au composant de traitement de rapports. À chaque étape, les données sont représentées par les types de données, comme la liste suivante le décrit :

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 Microsoft.NET Framework :

  • 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, des types de données classiques pour une source de données SQL Server 2005 sont notamment 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.

    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. Pour plus d'informations sur les dates assorties de fuseaux horaires, consultez

    [!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 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 2.0 Service Pack 1.

    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 base 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 les types de données CLR, consultez Utilisation des types de base.

Pour plus d'informations sur les types de données des fournisseurs de données Microsoft.NET Framework, consultez Mappage de types de données (ADO.NET).

Pour plus d'informations, consultez Utilisation des types de données dans les expressions (Reporting Services) et Types de données RDL (Report Definition Language).