Utilisation de champs dans un dataset de rapport (Générateur de rapports version 2.0)
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 le Générateur de rapports version 2.0 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 (Générateur de rapports version 2.0).
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 (Générateur de rapports version 2.0).
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, tableau, 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 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 (Générateur de rapports version 2.0).
Si vous n'obtenez pas les résultats attendus dans votre collection de champs de dataset, consultez la rubrique relative à la résolution des problèmes liés aux rapports dans la documentation de Reporting Services dans la documentation en ligne de SQL Server.
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 (Générateur de rapports version 2.0). Par exemple, pour une source de données SQL ServerAnalysis Services, consultez Utilisation de propriétés de champ étendues pour une base de données Analysis Services (Générateur de rapports version 2.0).
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 passent par une extension pour le traitement des données ou 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 le Générateur de rapports version 2.0.
[!REMARQUE]
Les sources de données, fournisseurs de données et types de données utilisés par le traitement de rapport lorsque vous prévisualisez un rapport varient selon que vous êtes connecté ou non à un serveur de rapports. Lorsque vous êtes connecté à un serveur de rapports, le traitement de rapport a lieu sur le serveur. Lorsque vous n'êtes pas connecté à un serveur de rapports, le traitement de rapport a lieu en prévisualisation. En prévisualisation, le processeur de rapports utilise les fournisseurs de données et types de données installés avec le Générateur de rapports version 2.0 ou requis par celui-ci.
Les données de rapport sont transmises à partir 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. 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. À 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, 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 avec fuseaux horaires, consultez Choix entre DateTime, DateTimeOffset et TimeZoneInfo.
Processeur de rapports Les types de données sont basés sur la version du CLR installée lorsque vous avez installé le Générateur de rapports version 2.0.
Par exemple, les types de données que le processeur de rapports sur un serveur 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 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 (Générateur de rapports version 2.0) et « Types de données RDL (Report Definition Language) » dans la documentation de Reporting Services dans la documentation en ligne de SQL Server.
Voir aussi