Partager via


Création de sources de données pour un rapport

Le mode de traitement d'un contrôle ReportViewer détermine le type de données que vous pouvez utiliser derrière un rapport.

Dans un mode de traitement distant, où les rapports sont traités sur un serveur de rapports SQL Server 2005, des extensions pour le traitement des données sur le serveur de rapports déterminent les types de sources de données que vous pouvez utiliser. Des extensions pour le traitement des données par défaut sont disponibles pour SQL Server, Analysis Services, SQL Server Integration Services, Oracle, SAP NetWeaver® Business Intelligence, XML, ODBC et OLE DB. Des connexions aux sources de données et aux requêtes qui extraient des données pour un rapport sont spécifiées dans une définition de rapport lors de la conception, quand vous créez le rapport dans Business Intelligence Development Studio (il s'agit de l'outil de création de rapport qui est inclus dans SQL Server 2005). Les champs qui sont retournés par la requête peuvent être utilisés dans la mise en page du rapport lorsque vous les faites glisser vers l'aire de conception du rapport. Pour plus d'informations sur l'utilisation de données dans un rapport de serveur, consultez Connexion à une source de données (Reporting Services) dans la documentation en ligne de SQL Server.

Dans un mode de traitement local, où les rapports sont traités par le contrôle au sein de votre application, vous pouvez spécifier des sources de données et des champs Visual Studio pour définir les données derrière le rapport. Les connexions à la source de données et aux requêtes qui extraient des données pour un rapport sont définies dans votre projet d'application au moment de la conception. Un rapport client peut utiliser des données de n'importe quelle source à condition qu'elles puissent être fournies en tant que DataTable ADO.NET ou collection énumérable d'objets d'entreprise. La table de données où l'objet d'entreprise retourne une liste de champs qui peuvent être utilisés par le rapport. Les champs contiennent un pointeur vers un champ de base de données et une propriété de nom. Vous pouvez faire glisser les champs de la fenêtre Source de données sur une disposition de rapport.

Liaison des données dans un rapport

Les définitions de rapport utilisent des régions de données pour lier des données au rapport. Vous pouvez choisir parmi plusieurs régions de données pour prendre en charge différentes structures de données dans votre rapport. La table, la matrice, le graphique et la liste constituent des exemples de région de données que vous pouvez utiliser dans une définition de rapport. Pour lier des données dans un rapport, vous devez procédez comme suit :

  • Définissez des sources de données et des datasets a utiliser dans le rapport (vous pouvez utiliser les informations et les liens fournis dans cette rubrique pour en savoir plus). La fenêtre Source de données affiche les sources de données et les champs que vous pouvez utiliser.

  • Faites glisser les régions de données que vous souhaitez utiliser à partir de la boîte à outils du rapport sur l'aire de conception.

  • Vous pouvez faire glisser les champs de la fenêtre Source de données sur une région de données.

    Chaque région de données peut utiliser des champs d'un dataset unique. Ni le contrôle ReportViewer, ni le serveur de rapports ne peut effectuer des jointures entre différents jeux de données. Par exemple, si vous utilisez des objets d'entreprise, la jointure doit être effectuée à l'intérieur de l'objet d'entreprise. Pour plus d'informations sur les régions de données, consultez Ajout de régions de données à un rapport (Concepteur de rapports Visual Studio).

Comment ajouter des sources de données pour des rapports ReportViewer

Les approches suivantes sont recommandées pour l'établissement d'une source de données pouvant être utilisée dans une définition de rapport client.

  • Ajouter une source de données au projet d'application et configurer la connexion des données aux données sous-jacentes. Pour une banque de données sous-jacente, sélectionnez les données spécifiques que vous souhaitez utiliser. Les données que vous souhaitez utiliser dans le rapport doivent être disponibles dans la fenêtre Sources de données. Pour une table de données, la source de donnnées montre les noms de colonnes retournés à partir d'une requête. Pour une collection énumérable d'objets d'entreprise, la source de données montre une liste de propriétés publiques de types de données simples exposés par l'objet de classe.

  • Pour créer une table de données, ajoutez un dataset au projet et utilisez l'Assistant TableAdapter pour configurer la table de données. L'Assistant TableAdapter fournit un générateur de requête et une fonction d'aperçu de données afin que vous puissiez vérifier immédiatement les résultats de la requête.

  • Pour créer des objets d'entreprise, utilisez la commande Ajouter un nouvel élément du menu Projet et sélectionnez l'objet de la classe. Fournissez des implémentations qui exposent des propriétés publiques de types de données simples en vue d'une utilisation au moment de la conception. Fournissez des méthodes pour retourner des collections énumérables des propriétés en vue d'une utilisation au moment de l'exécution.

Une fois qu'une source de données a été configurée, les données pouvant être liées apparaissent dans une hiérarchie dans la fenêtre Source de données. Pour relier des données à un rapport, faites glisser les nœuds de la hiérarchie étendue sur des zones de texte ou des régions de données dans une mise en page de rapport. Si vous modifiez ultérieurement les datasets après la définition du rapport, vous devez mettre à jour les liaisons de données dans le rapport et le contrôle. Pour plus d'informations, consultez Mise à jour et reliaison des références de source de données (Concepteur de rapports Visual Studio).

Vous pouvez avoir n'importe quel nombre de sources de données dans votre projet. Pour afficher la liste de sources de données actuellement employées par un rapport, choisissez Sources de données dans le menu Rapport. Pour prévisualiser le rapport et ses données dans votre application, vous devez construire ou déployer l'application pour vérifier que le rapport contient les données attendues. Pour plus d'informations sur la configuration du contrôle et la définition de la mise en page du rapport, consultez Configuration de ReportViewer pour le traitement local et Création de fichiers de définition de rapport client (.rdlc).

Pour démarrer immédiatement, utilisez les procédures pas à pas suivantes pour apprendre comment ajouter chaque type de source de données à un projet :

Utilisation d'objets d'entreprise

Un objet d'entreprise est un objet d'application qui expose les propriétés publiques de types de données simples. Les exemples d'objets d'entreprise peuvent inclure une collection d'objets de client provenant d'une banque de données sous-jacentes, un groupe d'objets de titre d'ouvrage créés par votre application ou une liste d'objets de canal que vous créez à partir d'une source RSS XML.

Pour être accessible en tant que source de données, la collection doit prendre en charge IEnumerable. Les données pouvant être liées apparaissent dans une vue hiérarchique dans la fenêtre Sources de données. Pour une collection énumérable d'objets d'entreprise, la source de données montre une liste de propriétés publiques de types de données simples exposés par l'objet de classe. Vous pouvez les lier à des régions de données et des zones de texte dans une définition de rapport.

Pour fournir une collection d'objets d'entreprise, vous pouvez ajouter une classe et une référence à l'assembly pour une classe à votre projet.

Utilisation de tables de données

Un DataTable, en tant que partie intégrante d'un DataSet ADO.NET, peut être facilement ajouté à votre projet à partir du menu Projet en sélectionnant Ajouter un nouvel élément. Pour configurer la connexion de données, démarrez l'Assistant Configuration de TableAdapter. Dans le menu Données, sélectionnez Ajouter, puis sélectionnez TableAdapter. Vous pouvez également définir une requête pour limiter votre jeu de résultats. À la fin de l'Assistant, les colonnes du DataTable sont accessibles par le biais de la fenêtre Sources de données afin que vous puissiez les lier à des régions de données et des zones de texte dans une définition de rapport client.

Définition de sources de données pour des contrôles de serveur Web ReportViewer

Les contrôles de sources de données fournissent la prise en charge pour l'abstraction de la couche d'accès aux données afin que les contrôles sur une page Web soient liés à une source de données, qui à son tour est liée aux données réelles. Cela vous permet de changer facilement la source de données sans devoir relier chaque contrôle à chaque élément de données.

Lors de la conception d'une page Web, la section Données de boîte à outils répertorie plusieurs contrôles de sources de données tels que SqlDataSource et XmlDataSource. Certains contrôles de source de données assurent la prise en charge de la mémoire de pages dans des pages Web et d'autres utilisent des données partagées. Les rapports n'utilisant pas la mémoire de pages, il est préférable qu'un contrôle de serveur Web ReportViewer utilise le contrôle ObjectDataSource. Ce contrôle fournit une passerelle entre les objets mis en mémoire cache (collections d'objets DataTables ou Business) et les régions de données du rapport. Lorsque vous ajoutez un contrôle ReportViewer dans une page Web, un contrôle ObjectDataSource est automatiquement ajouté et configuré.

Pour minimiser la nécessité d'écrire du code supplémentaire, la prise en charge ASP.NET pour pages Web fournit le traitement d'arrière-plan supplémentaire permettant de détecter les collections qui fournissent des objets d'entreprise pouvant être liés. Lorsque vous ajoutez une classe à votre projet qui retourne une collection d'objets pouvant être identifiés comme objets d'entreprise, la collection est automatiquement ajoutée dans la fenêtre Sources de données de sites Web.

Voir aussi

Référence

Microsoft.Reporting.WinForms.ReportViewer.Drillthrough
Microsoft.Reporting.WinForms.LocalReport.SubreportProcessing
Microsoft.Reporting.WebForms.ReportViewer.Drillthrough
Microsoft.Reporting.WebForms.LocalReport.SubreportProcessing

Concepts

Configuration de ReportViewer pour un traitement distant
Mise à jour et reliaison des références de source de données (Concepteur de rapports Visual Studio)

Autres ressources

Vue d'ensemble de TableAdapter
Exemples et procédures pas à pas