Collection de champs de dataset (Générateur de rapports et SSRS)
Les champs de dataset représentent les données d'une connexion de données. Un champ peut représenter des données numériques ou non numériques. À titre d'exemples, citons des chiffres d'affaires, des totaux de ventes, des noms de client, des identificateurs de base de données, des URL, des images, des données spatiales et des adresses de messagerie. Sur l'aire de conception, les champs s'affichent sous la forme d'expressions dans les éléments de rapport tels que les zones de texte, les tables et les graphiques.
Un rapport comporte trois types de champs et les affiche dans le volet des données de rapport : champs de dataset, champs calculés de dataset et champs prédéfinis.
Champs de dataset. Métadonnées qui représentent la collection des champs retournés lorsque la requête de dataset s'exécute sur la source de données.
Champs calculés de dataset. Champs supplémentaires que vous créez pour le dataset. Chaque champ calculé est créé en évaluant une expression que vous définissez.
Champs prédéfinis. Métadonnées qui représentent une collection de champs fournie par le Générateur de rapports qui indique des informations sur le rapport, telles que le nom du rapport ou l'heure de son traitement. Pour plus d’informations, consultez Références à des champs Globals et Users prédéfinis (Générateur de rapports et SSRS).
Les noms de champ de dataset sont enregistrés dans la définition de dataset du rapport. Pour plus d’informations, consultez Jeux de données incorporés dans le rapport et jeux de données partagés (Générateur de rapports et SSRS).
Notes
Il est possible de créer et de modifier des fichiers de définition de rapports (.rdl) paginés dans le Générateur de rapports Microsoft, dans Power BI Report Builder et dans le Concepteur de rapports de SQL Server Data Tools.
Champs de dataset et requêtes
Les champs de dataset sont spécifiés par la commande de requête de dataset et par tout champ calculé que vous définissez. La collection de champs que vous voyez dans votre rapport dépend du type de dataset dont vous disposez :
Dataset partagé. La collection de champs correspond à la liste des champs pour la requête dans la définition du dataset partagé au moment où vous avez ajouté directement le dataset partagé à votre rapport, ou lorsque vous avez ajouté une partie de rapport incluant le dataset partagé. La collection de champs locale ne change pas lorsque la définition du dataset partagé est modifiée sur le serveur de rapports. Pour mettre à jour la collection de champs locale, vous devez actualiser la liste pour le dataset partagé local.
Notes
Les parties de rapport sont dépréciées pour toutes les versions de SQL Server Reporting Services à partir de SQL Server Reporting Services 2019 et toutes les versions de Power BI Report Server à partir de Power BI Report Server (septembre 2022).
Dataset incorporé. La collection de champs correspond à la liste de champs retournée suite à l'exécution de la requête actuelle sur la source de données.
Pour plus d’informations, consultez Ajouter, modifier ou actualiser des champs dans le volet des données de rapport (Générateur de rapports et SSRS).
Champs calculés
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 type de données différent.
Les champs calculés sont définis localement pour un rapport et ne peuvent pas être enregistrés dans le cadre d'un dataset partagé.
Pour plus d’informations, consultez Ajouter, modifier ou actualiser des champs dans le volet des données de rapport (Générateur de rapports et SSRS).
Entités et champs d'entité
Si vous utilisez une source de données de modèle de rapport, spécifiez les entités et les champs d'entité en tant que données de rapport. Dans le concepteur de requêtes d'un modèle de rapport, vous pouvez explorer et sélectionner interactivement des entités associées et choisir les champs que vous souhaitez inclure dans votre dataset de rapport. Une fois la requête créée, vous pouvez consulter l'ensemble d'identificateurs d'entité et de champs d'entité dans le volet des données de rapport. Les identificateurs d'entité sont générés automatiquement par le modèle de rapport et ne sont généralement pas visibles par l'utilisateur final.
Utilisation des propriétés de champ étendues
Les sources de données qui prennent en charge des requêtes multidimensionnelles, comme SQL Server Analysis 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
.
Notes
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, UniqueNameet ParentUniqueName pour les sources de données multidimensionnelles) sont prises en charge uniquement si la source de données les fournit. 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 Datasets incorporés dans le rapport et datasets partagés (Générateur de rapports et SSRS). Pour obtenir un exemple relatif à une source de données SQL Server Analysis Services, consultez Propriétés de champ étendues pour une base de données Analysis Services (SSRS).
Présentation des expressions par défaut pour les champs
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.
Pour plus d’informations sur les expressions, consultez Expressions (Générateur de rapports et SSRS).
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 correspondent pas exactement aux 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.
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 CLR (Common Language Runtime) installé avec SQL Server Data Tools (SSDT). 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, datetimeet varchar. SQL Server 2008 (10.0.x) a introduit la prise en charge des types de données 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.
Les types de données classiques pris en charge par le .NET Framework sont Int32 et String, par exemple. 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 avec un décalage de fuseau horaire.
Notes
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 sont basés sur la version du CLR installée lorsque vous avez installé Reporting Services.
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 (10.0.x) 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’ajout de références dans un champ de dataset à partir d’une expression, consultez Types de données dans les expressions (Générateur de rapports et SSRS).
Détection de champs manquants lors de l'exécution
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 dans 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 au moment de l’exécution. Pour plus d’informations, consultez Référence à une collection de champs de dataset (Générateur de rapports et SSRS).