Procédure pas à pas : utilisation d'une source de données d'objet métier avec le contrôle Windows Forms ReportViewer en mode de traitement local
Cette procédure pas à pas montre comment utiliser une source de données d'objet à l'aide d'objets métier dans un rapport au sein d'une application Windows Forms Microsoft Visual Studio. Pour plus d'informations sur les objets métier et les sources de données d'objet, consultez Binding to Business Objects.
Procédez comme suit pour ajouter un rapport à un projet d'application Windows Forms. Dans le cadre de cet exemple, vous allez créer l'application en Microsoft Visual C#.
Création d'un projet d'application Windows Forms
Dans le menu Fichier, pointez sur Nouveau, puis sélectionnez Projet.
Dans la boîte de dialogue Nouveau projet, dans le volet Modèles installés, choisissez Visual C#, puis le modèle Application Windows Forms. Le nœud C# peut être situé sous Autres langages, selon les paramètres de démarrage dans Visual Studio.
Tapez BusinessObject comme nom de projet, puis cliquez sur OK.
Création d'objets métier à utiliser comme source de données
Dans le menu Projet, sélectionnez Ajouter un nouvel élément.
Dans la boîte de dialogue Ajouter un nouvel élément, choisissez Classe, tapez BusinessObjects.cs pour le nom du fichier, puis cliquez sur Ajouter.
Le nouveau fichier est ajouté au projet et est automatiquement ouvert dans Visual Studio.
Remplacez le code par défaut de BusinessObjects.cs par le code suivant :
using System; using System.Collections.Generic; // Define the Business Object "Product" with two public properties // of simple datatypes. public class Product { private string m_name; private int m_price; public Product(string name, int price) { m_name = name; m_price = price; } public string Name { get { return m_name; } } public int Price { get { return m_price; } } } // Define Business Object "Merchant" that provides a // GetProducts method that returns a collection of // Product objects. public class Merchant { private List<Product> m_products; public Merchant() { m_products = new List<Product>(); m_products.Add(new Product("Pen", 25)); m_products.Add(new Product("Pencil", 30)); m_products.Add(new Product("Notebook", 15)); } public List<Product> GetProducts() { return m_products; } }
Dans le menu Projet, sélectionnez Générer la solution. Cette opération permet de créer un assembly pour l'objet, que vous pourrez utiliser ultérieurement comme source de données du rapport.
Ajout d'un rapport au projet à l'aide de l'Assistant Rapport
Dans le menu Projet, sélectionnez Ajouter un nouvel élément.
Dans la boîte de dialogue Ajouter un nouvel élément, sélectionnez Assistant Rapport. Tapez un nom pour le rapport, puis cliquez sur Ajouter.
Cette opération lance l'Assistant Rapport avec l'Assistant Configuration de source de données.
Dans la page Choisir un type de source de données, sélectionnez Objet et cliquez sur Suivant.
Dans la page Sélectionner les objets de données, développez la hiérarchie des classes sous BusinessObject jusqu'à ce que Product apparaisse dans la liste. Sélectionnez Product et cliquez sur Terminer.
Vous revenez à présent dans l'Assistant Rapport. Notez que le nouvel objet source de données est ajouté à votre projet dans l'Explorateur de solutions.
Dans la page Propriétés du dataset, dans la zone Source de données, vérifiez que global est sélectionné.
Dans la zone Datasets disponibles, vérifiez que Product est sélectionné.
Cliquez sur Suivant.
Dans la page Organiser les champs, procédez comme suit :
Faites glisser Name à partir des champs disponibles vers la zone Groupes de lignes.
Faites glisser Price à partir des champs disponibles vers la zone Valeurs.
Cliquez sur Suivant à deux reprises, puis sur Terminer.
Le fichier .rdlc est créé et s'ouvre dans le Concepteur de rapports. Le tableau matriciel que vous avez créé est à présent affiché dans l'aire de conception.
Enregistrez le fichier .rdlc.
Ajout d'un contrôle ReportViewer au rapport
Dans l'Explorateur de solutions, ouvrez le formulaire Windows en mode Création. Par défaut, le nom du formulaire est Form1.cs.
À partir de la Boîte à outils, dans le groupe Création de rapports, faites glisser l'icône ReportViewer vers le formulaire.
Dans le contrôle ReportViewer, ouvrez le panneau des balises actives en cliquant sur le glyphe de balise active dans le coin supérieur droit.
Dans la liste Choisir un rapport, sélectionnez le rapport que vous venez de créer. Par défaut, le nom du rapport est Report1.rdlc. Notez qu'un objet BindingSource appelé ProductBindingSource est automatiquement créé pour chaque source de données d'objet utilisée dans le rapport.
Dans le panneau des balises actives, choisissez Ancrer dans le conteneur parent.
Indication des instances de source de données à l'objet BindingSource
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Form1.cs, puis sélectionnez Afficher le code.
Dans Form1.cs, à l'intérieur de la définition de classe partielle, ajoutez le code suivant comme première ligne, avant le constructeur.
// Instantiate the Merchant class. private Merchant m_merchant = new Merchant();
Dans la méthode Form1_Load(), ajoutez le code suivant comme première ligne, avant l'appel RefreshReport :
// Bind the Product collection to the DataSource. this.ProductBindingSource.DataSource = m_merchant.GetProducts();
Exécution de l'application
- Appuyez sur la touche F5 pour exécuter l'application et visualiser le rapport.
Voir aussi
Référence
LocalReport.SubreportProcessing
LocalReport.SubreportProcessing
Concepts
Utilisation du panneau des balises actives des tâches ReportViewer