Partager via


Procédure pas à pas : Création d'un modèle de formulaire simple avec code managé

Dans Microsoft InfoPath 2010, vous pouvez écrire une logique métier en Visual Basic ou C#. Pour ce faire, vous devez ouvrir un modèle de formulaire dans le Concepteur InfoPath, puis utiliser l'une des commandes de l'interface utilisateur pour ajouter un gestionnaire d'événements, qui vous donnera accès à l'environnement de développement Microsoft Visual Studio Tools for Applications d'où vous pourrez écrire votre code. Par défaut, les projets de modèle de formulaire créés à l'aide de Microsoft Visual Studio Tools for Applications fonctionnent selon le modèle objet de code managé fourni par l'espace de noms Microsoft.Office.InfoPath.

Cette procédure pas à pas indique comment créer une application simple « Hello World » en C# ou Visual Basic dans les environnements de développement Microsoft Visual Studio Tools for Applications. En conclusion à cette procédure pas à pas, vous trouverez un exemple de code illustrant l'utilisation de la propriété UserName de la classe User en vue d'extraire le nom de l'utilisateur actif et de remplir un contrôle Zone de texte avec cette valeur.

Conditions préalables requises

Pour pouvoir mener à bien cette procédure pas à pas dans l'environnement de développement Microsoft Visual Studio Tools for Applications, votre ordinateur doit être équipé des logiciels suivants :

  • Microsoft InfoPath 2010 et Microsoft Visual Studio Tools for Applications.

Créer l'application « Hello World » dans Visual Studio Tools for Applications

Dans la procédure pas à pas qui suit, vous allez découvrir comment écrire du code dans l'environnement de développement Microsoft Visual Studio Tools for Applications pour afficher une boîte de dialogue d'alerte simple en créant un gestionnaire d'événements pour l'événement Clicked de l'événement ButtonEvent de la classe associée au contrôle Bouton.

Créer un projet et spécifier le langage de programmation

  1. Démarrez le Concepteur InfoPath, puis double-cliquez sur le modèle de formulaire Vide (Éditeur InfoPath).

  2. Pour spécifier le langage de programmation à utiliser, cliquez sur le bouton Microsoft Office, cliquez sur Options de formulaire, cliquez sur Programmation dans la liste Catégorie, puis sélectionnez Visual Basic ou C# dans la liste déroulante Langage de code du modèle de formulaire.

    Notes

    Les autres options de langage de programmation dans la liste déroulante Langage de code du modèle de formulaire indiquent la compatibilité avec les versions précédentes d'InfoPath. Les options C# (compatibles InfoPath 2007) et Visual Basic (compatible InfoPath 2007) fonctionnent avec les procédures mentionnées dans cette rubrique. Cependant, pour utiliser les options C# (compatible InfoPath 2003) et Visual Basic (compatible InfoPath 2003), voir Procédure pas à pas : Création et débogage d'un modèle de formulaire basique à l'aide du modèle objet InfoPath 2003.

    Vous pouvez à présent ajouter un contrôle Bouton et créer son gestionnaire d'événements.

Ajouter un contrôle Bouton et un gestionnaire d'événements

  1. Dans le groupe Contrôles, cliquez sur le contrôle Bouton pour l'ajouter au formulaire.

  2. Double-cliquez sur le contrôle Bouton, tapez Hello pour la propriété Étiquette sous l'onglet Propriétés du ruban, puis cliquez sur Code personnalisé. Lorsque vous y êtes invité, enregistrez le formulaire et nommez-le HelloWorld.

    Dans l'environnement Visual Studio Tools for Applications auquel vous accédez, le curseur se trouve dans le gestionnaire d'événements associé à l'événement Clicked du contrôle Bouton.

    Vous pouvez maintenant ajouter du code de formulaire au gestionnaire d'événements du bouton.

Ajouter le code « Hello World » au gestionnaire d'événements et afficher un aperçu du formulaire

  1. Dans le squelette du gestionnaire d'événements, tapez :

    MessageBox.Show("Hello World!");
    
    MessageBox.Show("Hello World!")
    

    Le code de votre modèle de formulaire doit se présenter ainsi :

    using Microsoft.Office.InfoPath;
    using System;
    using System.Windows.Forms;
    using System.Xml;
    using System.Xml.XPath;
    
    namespace HelloWorld
    {
       public partial class FormCode
       {
          public void InternalStartup()
          {
             ((ButtonEvent)EventManager.ControlEvents["CTRL1_5"]).Clicked += new ClickedEventHandler(CTRL1_5_Clicked);
          }
    
          public void CTRL1_5_Clicked(object sender, ClickedEventArgs e)
          {
             MessageBox.Show("Hello World!");
          }
       }
    }
    
    Imports Microsoft.Office.InfoPath
    Imports System
    Imports System.Windows.Forms
    Imports System.Xml
    Imports System.Xml.XPath
    
    Namespace HelloWorld
       Public Class FormCode
          Private Sub InternalStartup(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Startup
             AddHandler DirectCast(EventManager.ControlEvents("CTRL1_5"), ButtonEvent).Clicked, AddressOf CTRL1_5_Clicked
          End Sub
    
          Public Sub CTRL1_5_Clicked(ByVal sender As Object, ByVal e As ClickedEventArgs)
             MessageBox.Show("Hello World!")
          End Sub
       End Class
    End Namespace
    
  2. Basculez dans la fenêtre Concepteur InfoPath.

  3. Cliquez sur le bouton Aperçu sous l'onglet Accueil.

  4. Cliquez sur le bouton Hello du formulaire.

    Un message s'affiche avec le texte « Hello World! ».

    La procédure suivante illustre l'ajout de points d'arrêt pour le débogage dans le code de votre formulaire.

Débogage de code de formulaire

  1. Revenez dans la fenêtre Microsoft Visual Studio Tools for Applications.

  2. Cliquez sur la barre grise située à gauche de la ligne :

    MessageBox.Show("Hello World!");
    
    MessageBox.Show("Hello World!")
    

    Un cercle rouge s'affiche et la ligne de code est mise en surbrillance pour indiquer que l'exécution marquera une pause à ce point d'arrêt dans votre code de formulaire.

  3. Dans le menu Débogage, cliquez sur Démarrer le débogage (ou appuyez sur F5).

  4. Dans la fenêtre Aperçu d'InfoPath, cliquez sur le bouton Hello du formulaire.

  5. L'éditeur de code Microsoft Visual Studio Tools for Applications est activé et la ligne du point d'arrêt est mise en surbrillance.

  6. Dans le menu Débogage, cliquez sur Pas à pas principal (ou appuyez sur Maj+F8 pour continuer pas à pas dans le code).

  7. Le gestionnaire d'événements est exécuté, et le message « Hello World! » s'affiche.

  8. Cliquez sur OK pour revenir à l'éditeur de code Microsoft Visual Studio Tools for Applications, puis cliquez sur Arrêter le débogage dans le menu Débogage (ou appuyez sur Ctrl+Alt+Attn).

Extraction du nom d'utilisateur actuel

Dans l'exemple qui suit, vous allez découvrir comment utiliser la propriété UserName de la classe User pour extraire le nom de l'utilisateur actif et renseigner un contrôle Zone de texte par le biais du gestionnaire d'événements associé à l'événement Loading.

Le contrôle Zone de texte est renseigné en utilisant une instance de la classe XPathNavigator pour écrire le nom de l'utilisateur actif sur le nœud XML auquel le contrôle est lié.

Tout d'abord, la propriété MainDataSource de la classe XmlForm est appelée pour extraire une instance de la classe DataSource représentant le document XML sous-jacent du formulaire. L'objet DataSource appelle ensuite la méthode CreateNavigator, qui crée l'objet XPathNavigator et le positionne au niveau du nœud principal de la source de données principale du formulaire.

La méthode SelectSingleNode de la classe XPathNavigator est appelée pour sélectionner le champ Employé dans la source de données du formulaire. Enfin, la méthode SetValue est appelée pour définir la valeur de la zone avec la propriété UserName.

Pour plus d'informations sur l'utilisation de System.Xml dans les modèles de formulaire avec code managé, voir Utilisation des classes XPathNavigator et XPathNodeIterator.

Ajouter un gestionnaire d'événements Chargement en cours (Loading)

  1. Ouvrez le modèle de formulaire HelloWorld que vous avez créé dans la procédure pas à pas précédente dans le Concepteur InfoPath.

  2. Sous l'onglet Affichage, sélectionnez Afficher les champs.

  3. Cliquez avec le bouton droit sur le dossier mesChamps, puis cliquez sur Ajouter.

  4. Dans Nom, tapez employé, puis cliquez sur OK.

  5. Faites glisser le champ Employé dans la vue.

  6. Sous l'onglet Développeur, cliquez sur Événement Chargement en cours (Loading).

    Un gestionnaire d'événements est alors créé pour l'événement Loading et l'éditeur de code est activé au niveau de ce gestionnaire d'événements.

  7. Dans l'éditeur de code, tapez le code suivant :

    public void FormEvents_Loading(object sender, LoadingEventArgs e)
    {
       XPathNavigator dataSource;
       dataSource = this.MainDataSource.CreateNavigator();
       dataSource.SelectSingleNode(
          "/my:myFields/my:employee", NamespaceManager).SetValue(this.User.UserName);
    }
    
    Public Sub FormEvents_Loading(ByVal sender As Object, ByVal e As LoadingEventArgs)
       Dim dataSource As XPathNavigator
       dataSource = Me.MainDataSource.CreateNavigator
       dataSource.SelectSingleNode( _
          "/my:myFields/my:employee", NamespaceManager).SetValue(Me.User.UserName)
    End Sub
    
  8. Basculez dans la fenêtre de création de formulaire d'InfoPath, puis cliquez sur le bouton Aperçu de l'onglet Accueil pour afficher le formulaire.

    Le champ employé doit être renseigné automatiquement avec votre nom d'utilisateur.

Étapes suivantes

Voir aussi

Référence

XmlForm