Procédure pas à pas : Création et débogage d'un modèle de formulaire basique à l'aide du modèle objet InfoPath 2003
Cette rubrique présente une procédure pas à pas de création d'un modèle de formulaire avec code géré InfoPath basique qui fonctionne avec le modèle objet compatible InfoPath 2003 fourni par l'espace de noms Microsoft.Office.Interop.InfoPath.SemiTrust.
Bonjour le monde
Dans l'exemple qui suit, vous allez apprendre à afficher une boîte de dialogue d'alerte simple à l'aide de la méthode Alert du modèle objet compatible InfoPath 2003.
Création d'un nouveau modèle de formulaire InfoPath qui fonctionne avec le modèle objet compatible InfoPath 2003
Créez un nouveau modèle de formulaire qui fonctionne avec le modèle objet compatible InfoPath 2003, comme décrit dans la rubrique Procédure de création d'un modèle de formulaire avec code managé à l'aide du modèle objet InfoPath 2003.
Appelez le projet de modèle de formulaire BonjourMonde et enregistrez-le.
Le système de projet crée les fichiers de code et de projet, puis ouvre un modèle de formulaire vierge dans InfoPath en mode Création. Vous pouvez alors ajouter des gestionnaires d'événements.
Ajout d'un gestionnaire d'événements OnClick
Cliquez sur Contrôles dans le volet Office Tâches de création.
Si vous utilisez InfoPath avec Microsoft Visual Studio Tools for Applications (VSTA), dans la section des contrôles Standard, cliquez sur le contrôle Bouton pour l'insérer dans la vue.
Si vous utilisez Visual Studio 2005 avec Microsoft Visual Studio 2005 Tools pour Microsoft Office System2007 ou Visual Studio 2008 avec Visual Studio Tools pour Office, faites glisser le contrôle Bouton de la Boîte à outils vers le créateur de formulaires manifest.xsf [Création].
Double-cliquez sur le bouton pour ouvrir la boîte de dialogue Propriétés - Bouton.
Modifiez l'Étiquette en Alerte.
Modifiez l'ID en IDAlerte.
Cliquez sur Modifier le code du formulaire.
Un squelette de gestionnaire d'événements pour l'événement OnClick est créé et le focus bascule sur l'éditeur de code dans VSTA ou Visual Studio. Pour plus d'informations sur l'utilisation des gestionnaires d'événements, voir Procédure d'ajout d'un gestionnaire d'événements en utilisant le modèle objet InfoPath 2003.
Vous pouvez maintenant ajouter du code de formulaire au gestionnaire d'événements du bouton.
Ajout de code de formulaire au gestionnaire d'événements
Dans le gestionnaire d'événements OnClick, tapez le code suivant :
thisXDocument.UI.Alert("Hello World!");
thisXDocument.UI.Alert("Hello World!")
Notez qu'une liste déroulante Microsoft IntelliSense s'affiche chaque fois que vous entrez un point dans la ligne de code. Le gestionnaire d'événements entier devrait ressembler à ce qui suit :
[InfoPathEventHandler(MatchPath="AlertID", EventType=InfoPathEventType.OnClick)] public void AlertID_OnClick(DocActionEvent e) { thisXDocument.UI.Alert("Hello World!"); }
<InfoPathEventHandler(MatchPath:="AlertID", EventType:=InfoPathEventType.OnClick)> Public Sub AlertID_OnClick(ByVal e As DocActionEvent) thisXDocument.UI.Alert("Hello World!") End Sub
Remarque Au lieu d'employer la méthode Alert, vous pouvez utiliser la méthode MessageBox.Show de l'espace de noms System.Windows.Forms pour afficher un message. Pour ce faire, il convient d'ajouter une référence à l'assembly System.Windows.Forms, d'ajouter
using System.Windows.Forms;
ouImports System.Windows.Forms
aux directives au début de votre fichier de code, puis d'entrer une ligne de code comme celle-ci :MessageBox.Show("Hello World!); or MessageBox.Show("Hello World!)
Si vous utilisez InfoPath et VSTA, basculez dans la fenêtre du mode Création d'InfoPath, puis cliquez sur le bouton Aperçu dans la barre d'outils Standard.
Si vous utilisez Visual Studio, dans le menu Débogage, cliquez sur Démarrer le débogage (ou appuyez sur F5).
Dans la fenêtre Aperçu, cliquez sur le bouton Alerte.
Un message s'affiche avec le texte « Bonjour le monde ! ».
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
Dans l'Éditeur de code, cliquez sur la barre grise à droite de la ligne :
thisXDocument.UI.Alert("Hello World!");
thisXDocument.UI.Alert("Hello World!")
Un cercle rouge s'affiche et la ligne de code est mise en surbrillance pour indiquer que l'exécution s'interrompra sur ce point d'arrêt.
Dans le menu Débogage, cliquez sur Démarrer le débogage ou appuyez sur F5.
Dans la fenêtre Aperçu d'InfoPath, cliquez sur le bouton Alerte.
Le focus bascule sur l'Éditeur de code et la ligne où se trouve le point d'arrêt est mise en surbrillance.
Dans le menu Débogage, cliquez sur Pas à pas principal (ou appuyez sur F10 pour continuer pas à pas dans le code).
Le code de la méthode Alert s'exécute et l'alerte « Bonjour le monde ! » s'affiche dans la fenêtre Aperçu d'InfoPath.
Récupération du nom d'utilisateur actuel
Avec les classes .NET Framework, vous pouvez accéder aux fonctionnalités qui n'étaient pas facilement disponibles depuis un script. Dans cet exemple, vous allez apprendre comment utiliser les classes .NET Framework pour récupérer le nom de l'utilisateur actuel.
Ajout d'un gestionnaire d'événements OnLoad
Ouvrez le projet BonjourMonde InfoPath que vous avez créé précédemment.
Dans le menu Affichage, cliquez sur Source de données.
Cliquez avec le bouton droit sur le nœud mesChamps, puis cliquez sur Ajouter.
Dans Nom, tapez employé, puis cliquez sur OK.
Faites glisser le nœud employé dans la vue.
Si vous utilisez InfoPath avec VSTA, dans le menu Outils, cliquez sur Programmation, puis sur Événement Sur chargement (OnLoad).
Si vous utilisez Visual Studio, dans le menu Insérer, cliquez sur Événement, puis sur Événement Sur chargement (OnLoad).
Ce faisant, vous créez un gestionnaire d'événements pour l'événement OnLoad, et le focus bascule sur l'Éditeur de code. Le code de ce gestionnaire d'événements sera appelé à chaque chargement du formulaire. La procédure suivante illustre l'ajout d'un code de formulaire qui récupère le nom de l'utilisateur et le place dans le gestionnaire d'événements.
Ajout de code de formulaire
Dans le gestionnaire d'événements OnLoad, tapez le code suivant :
// Store an XML DOM node as a local variable. IXMLDOMNode nodeEmployee = thisXDocument.DOM.selectSingleNode("my:myFields/my:employee"); if(nodeEmployee != null) { if(nodeEmployee.text == "") { // If the employee name is blank when the form is loaded, // populate the employee node with the current user name. nodeEmployee.text = System.Environment.UserName; } }
// Store an XML DOM node as a local variable. Dim nodeEmployee As IXMLDOMNode nodeEmployee = thisXDocument.DOM.selectSingleNode("my:myFields/my:employee"); If Not(nodeEmployee Is Nothing) Then If(nodeEmployee.text = "") Then // If the employee name is blank when the form is loaded, // populate the employee node with the current user name. nodeEmployee.text = System.Environment.UserName End If End If
Compilez et affichez un aperçu du formulaire.
La zone de texte employé doit maintenant contenir votre nom d'utilisateur.
Pour plus d'informations sur le déploiement d'un modèle de formulaire avec code géré, voir Procédure de déploiement des projets InfoPath. Pour plus d'informations sur le modèle objet InfoPath et les tâches de programmation courantes qui fonctionnent avec le modèle objet compatible InfoPath 2003, voir Présentation du modèle objet InfoPath 2003.
Voir aussi
Tâches
Procédure d'ajout d'un gestionnaire d'événements en utilisant le modèle objet InfoPath 2003
Concepts
Code d'initialisation et de nettoyage à l'aide du modèle objet InfoPath 2003
Modèles objet compatibles avec InfoPath 2003