Procédure pas à pas : liaison de données simple dans le projet de complément VSTO

Vous pouvez lier des données à des contrôles hôtes et des contrôles Windows Forms dans des projets de complément VSTO. Cette procédure pas à pas montre comment ajouter des contrôles à un document Microsoft Office Word et les lier à des données au moment de l’exécution.

S’applique à : Les informations contenues dans cette rubrique s’appliquent aux projets de complément VSTO pour Word. Pour plus d’informations, consultez Fonctionnalités disponibles par application Office lication et le type de projet.

Cette procédure pas à pas décrit les tâches suivantes :

  • Ajouter un ContentControl à un document au moment de l’exécution.

  • Création d’un BindingSource qui connecte le contrôle à une instance d’un dataset.

  • Permettre à l’utilisateur de parcourir les enregistrements et de les afficher dans le contrôle.

Remarque

Il est possible que pour certains des éléments de l'interface utilisateur de Visual Studio, votre ordinateur affiche des noms ou des emplacements différents de ceux indiqués dans les instructions suivantes. L'édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d’informations, consultez Personnaliser l’IDE.

Prérequis

Vous devez disposer des éléments suivants pour exécuter cette procédure pas à pas :

Création d'un projet

La première étape consiste à créer un projet de complément VSTO Word.

Pour créer un projet

  1. Créez un projet de complément VSTO Word nommé Remplissage de documents à partir d’une base de données, à l’aide de Visual Basic ou C#.

    Pour plus d’informations, consultez Guide pratique pour créer des projets Bureau dans Visual Studio.

    Visual Studio ouvre le fichier ThisAddIn.vb ou ThisAddIn.cs et ajoute le remplissage de documents à partir d’un projet de base de données à Explorateur de solutions.

  2. Si votre projet cible .NET Framework 4 ou .NET Framework 4.5, ajoutez une référence à Microsoft.Bureau. Assembly Tools.Word.v4.0.Utilities.dll. Cette référence est obligatoire pour ajouter par programmation un contrôle Windows Forms au document, plus loin dans cette procédure pas à pas.

Création d'une source de données

Utilisez la fenêtre Sources de données pour ajouter un dataset typé à votre projet.

Pour ajouter un dataset typé au projet

  1. Si la fenêtre Sources de données n’est pas visible, affichez-la dans la barre de menus, en choisissant Afficher>d’autres sources de données Windows>.

  2. Choisissez Ajouter une nouvelle source de données pour démarrer l' Assistant Configuration de source de données.

  3. Cliquez sur Base de données, puis sur Suivant.

  4. Si vous disposez d’une connexion à la base de données AdventureWorksLT , choisissez cette connexion et cliquez sur Suivant.

    Sinon, cliquez sur Nouvelle connexionet utilisez la boîte de dialogue Ajouter une connexion pour créer la connexion. Pour plus d’informations, consultez Ajouter de nouvelles connexions.

  5. Dans la page Enregistrer la chaîne de connexion dans le fichier de configuration de l’application , cliquez sur Suivant.

  6. Dans la page Choisir vos objets de base de données , développez Tables et sélectionnez Customer (SalesLT).

  7. Cliquez sur Terminer.

    Le fichier AdventureWorksLTDataSet.xsd est ajouté à Explorateur de solutions. Ce fichier définit les éléments suivants :

    • Un dataset typé nommé AdventureWorksLTDataSet. Ce dataset représente le contenu de la table Customer (SalesLT) dans la base de données AdventureWorksLT.

    • TableAdapter nommé CustomerTableAdapter. Ce TableAdapter peut être utilisé pour lire et écrire des données dans le AdventureWorksLTDataSet. Pour plus d’informations, consultez la vue d’ensemble de TableAdapter.

      Vous utiliserez ces deux objets ultérieurement dans cette procédure pas à pas.

Créer des contrôles et lier des contrôles aux données

L’interface permettant d’afficher les enregistrements de base de données dans cette procédure pas à pas est de base et elle est créée directement à l’intérieur du document. Un ContentControl affiche un enregistrement de base de données à la fois et deux contrôles Button vous permettent de parcourir les enregistrements. Le contrôle de contenu utilise un BindingSource pour se connecter à la base de données.

Pour plus d’informations sur la liaison de contrôles à des données, consultez Lier des données à des contrôles dans Bureau solutions.

Pour créer l’interface dans le document

  1. Dans la classe ThisAddIn , déclarez les contrôles suivants pour afficher et parcourir la table Customer de la base de données AdventureWorksLTDataSet .

    private AdventureWorksLTDataSet adventureWorksDataSet;
    private AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter customerTableAdapter;
    private System.Windows.Forms.BindingSource customerBindingSource;
    private Microsoft.Office.Tools.Word.RichTextContentControl customerContentControl;
    private Microsoft.Office.Tools.Word.Controls.Button button1;
    private Microsoft.Office.Tools.Word.Controls.Button button2;
    
  2. Dans la méthode ThisAddIn_Startup , ajoutez le code suivant pour initialiser le dataset et le remplir avec des informations de la base de données AdventureWorksLTDataSet .

    this.adventureWorksDataSet = new AdventureWorksLTDataSet();
    this.customerTableAdapter = new AdventureWorksLTDataSetTableAdapters.CustomerTableAdapter();
    this.customerTableAdapter.Fill(this.adventureWorksDataSet.Customer);
    this.customerBindingSource = new System.Windows.Forms.BindingSource();
    
  3. Ajoutez le code suivant à la méthode ThisAddIn_Startup . Cela génère un élément hôte qui étend le document. Pour plus d’informations, consultez Étendre les documents Word et les classeurs Excel dans les compléments VSTO au moment de l’exécution.

    Word.Document currentDocument = this.Application.ActiveDocument;
    
    Document extendedDocument = Globals.Factory.GetVstoObject(currentDocument);
    
  4. Définissez plusieurs plages au début du document. Ces plages identifient où insérer du texte et placer des contrôles.

    extendedDocument.Paragraphs[1].Range.InsertParagraphBefore();
    extendedDocument.Paragraphs[1].Range.InsertParagraphBefore();
    extendedDocument.Paragraphs[1].Range.Text = 
        "The companies listed in the AdventureWorksLT database:   \n";
    extendedDocument.Paragraphs[2].Range.Text = "  "; 
    
    Word.Range range1 = extendedDocument.Paragraphs[2].Range.Characters.First;
    Word.Range range2 = extendedDocument.Paragraphs[2].Range.Characters.Last;
    Word.Range range3 = extendedDocument.Paragraphs[1].Range.Characters.Last;
    
  5. Ajoutez les contrôles d’interface aux plages précédemment définies.

    this.button1 = extendedDocument.Controls.AddButton(range1, 60, 15, "1");
    this.button1.Text = "Previous";
    this.button2 = extendedDocument.Controls.AddButton(range2, 60, 15, "2");
    this.button2.Text = "Next";
    
    this.customerContentControl = extendedDocument.Controls.AddRichTextContentControl(
        range3, "richTextContentControl1");
    
  6. Liez le contrôle de contenu à AdventureWorksLTDataSet à l’aide de BindingSource. Pour les développeurs C# : ajoutez deux gestionnaires d’événements pour les contrôles Button .

    this.customerBindingSource.DataSource = this.adventureWorksDataSet.Customer;
    this.customerContentControl.DataBindings.Add("Text", this.customerBindingSource, 
        "CompanyName", true, this.customerContentControl.DataBindings.DefaultDataSourceUpdateMode);
    
    this.button1.Click += new EventHandler(button1_Click);
    this.button2.Click += new EventHandler(button2_Click);
    
  7. Ajoutez le code suivant pour parcourir les enregistrements de base de données.

    void button1_Click(object sender, EventArgs e)
    {
        this.customerBindingSource.MovePrevious();
    }
    
    void button2_Click(object sender, EventArgs e)
    {
        this.customerBindingSource.MoveNext();
    }
    

Tester le complément

Lorsque vous ouvrez Word, le contrôle de contenu affiche des données du dataset AdventureWorksLTDataSet . Parcourez les enregistrements de base de données en cliquant sur les boutons Suivant et Précédent .

Pour tester le complément VSTO

  1. Appuyez sur F5.

    Un contrôle de contenu nommé customerContentControl est créé et rempli avec des données. En même temps, un objet dataset nommé adventureWorksLTDataSet et un BindingSource nommé customerBindingSource sont ajoutés au projet. Le ContentControl est lié au BindingSource, qui est lui-même lié à l’objet dataset.

  2. Cliquez sur les boutons Suivant et Précédent pour parcourir les enregistrements de base de données.