Procédure pas à pas : Création d'un modèle de formulaire simple avec code managé
Lorsque vous vous servez de Microsoft Office InfoPath 2003 pour écrire une logique métier dans un langage de code managé (Visual Basic ou C#), vous utilisez un projet InfoPath créé à l'aide de Microsoft Visual Studio .NET 2003 et de Microsoft Office InfoPath 2003 Toolkit pour Visual Studio .NET ou de Visual Studio 2005 Tools pour Microsoft Office System avec Microsoft Office InfoPath 2003 Toolkit pour Visual Studio 2005. Ces deux environnements de développement de code managé ne dépendent et ne gèrent que le modèle objet COM Interop avec code managé fourni par l'assembly Microsoft.Office.Interop.InfoPath.SemiTrust.
En ce qui concerne Microsoft Office InfoPath 2007, vous pouvez écrire une logique métier en Visual Basic ou C#. Pour ce faire, vous devez ouvrir un modèle de formulaire en mode Création, 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 (VSTA) d'où vous pourrez écrire votre code. Par défaut, les projets de modèle de formulaire créés à l'aide de VSTA fonctionnent selon le nouveau modèle objet de code managé fourni par l'assembly Microsoft.Office.InfoPath.
Autre possibilité : si vous avez installé Visual Studio 2005 avec Microsoft Visual Studio 2005 Tools pour Microsoft Office System2007 ou Visual Studio 2008 avec Visual Studio Tools pour Office, vous pouvez partir de Visual Studio 2005, créer un projet de modèle de formulaire InfoPath, puis utiliser l'intégration du mode Création d'InfoPath pour créer votre formulaire et ajouter une logique métier, le tout dans l'environnement Visual Studio.
La première procédure pas à pas vous montre comment créer une application simple « Hello World » en C# ou Visual Basic dans les environnements de développement VSTA et Visual Studio. En conclusion à cette procédure pas à pas, vous trouverez un exemple de code illustrant l'utilisation de la propriété System.Environment.UserName 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, votre ordinateur doit être équipé des logiciels suivants :
- Microsoft Office InfoPath 2007 et Microsoft Visual Studio Tools for Applications (VSTA).
Pour pouvoir mener à bien cette procédure pas à pas dans l'environnement de développement Visual Studio avec l'intégration du mode Création d'InfoPath, vous avez besoin de :
Microsoft Office InfoPath 2007
Microsoft Visual Studio 2005 avec Microsoft Visual Studio 2005 Tools pour Microsoft Office System2007 ou Visual Studio 2008 avec Visual Studio Tools pour Office
Remarque |
---|
Pour plus d'information sur le téléchargement et l'installation de Microsoft Visual Studio 2005 Tools pour Microsoft Office System2007, consultez le site InfoPath Developer Portal. |
Créer l'application « Hello World » dans VSTA
Dans la procédure pas à pas qui suit, vous allez découvrir comment afficher une boîte de dialogue d'alerte simple en créant un gestionnaire d'événements pour l'événement Clicked de la classe ButtonEvent associée au contrôle Bouton. Ces procédures supposent que vous utilisiez l'environnement de développement Microsoft Visual Studio Tools for Applications (VSTA).
Créer un projet et spécifier le langage de programmation (Visual Studio Tools for Applications)
Démarrez InfoPath.
Dans la boîte de dialogue Remplir un formulaire, cliquez sur Créer un modèle de formulaire dans Créer un formulaire.
Remarque Si InfoPath est déjà en cours d'exécution, pour afficher la boîte de dialogue Créer un formulaire, cliquez sur Créer un formulaire dans le menu Fichier.
Dans la boîte de dialogue Créer un modèle de formulaire, cliquez sur Modèle de formulaire, sur Formulaire vierge, désactivez la case à cocher Activer les fonctions compatibles avec le navigateur uniquement, puis cliquez sur OK.
Dans le menu Outils, cliquez sur Options de formulaire.
Dans la liste Catégorie, cliquez sur Programmation, sélectionnez Visual Basic ou C# dans la liste déroulante Langage de code du modèle de formulaire, puis cliquez sur OK.
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
Dans le volet Office Tâches de création, cliquez sur Contrôles.
Faites glisser un contrôle Bouton sur le formulaire.
Double-cliquez sur le contrôle Bouton, tapez Hello pour la propriété Étiquette, puis cliquez sur Modifier le code du formulaire. 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
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
Basculez dans la fenêtre du mode Création d'InfoPath.
Cliquez sur le bouton Aperçu dans la barre d'outils Standard.
Cliquez sur le bouton Hello.
Une boîte de message contenant le texte « Hello World! » s'affiche à l'écran.
La procédure suivante vous montre comment ajouter des points d'arrêt de débogage à votre code de formulaire.
Déboguer le code de formulaire
Retournez dans la fenêtre VSTA.
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.
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 Hello.
L'éditeur de code VSTA reçoit le focus, et la ligne du point d'arrêt est mise en surbrillance.
Dans le menu Débogage, cliquez sur Pas à pas principal (ou appuyez sur F10) pour continuer à parcourir le code pas à pas.
Le gestionnaire d'événements est exécuté, et le message « Hello World! » s'affiche.
Cliquez sur OK pour revenir à l'éditeur de code VSTA, puis cliquez sur Arrêter le débogage dans le menu Débogage (ou appuyez sur Ctrl+Alt+Attn).
Créer l'application « Hello World » dans Visual Studio avec l'intégration du mode Création d'InfoPath
La procédure pas à pas suivante vous montre comment reproduire l'exemple « Hello World » de la procédure pas à pas précédente, mais en utilisant cette fois Visual Studio 2005 et l'intégration du mode Création d'InfoPath, qui est activée pendant l'installation de Microsoft Visual Studio 2005 Tools pour Microsoft Office System2007 ou de Visual Studio 2008 avec Visual Studio Tools pour Office.
Créer un projet et spécifier le langage de programmation (Visual Studio)
Démarrez Visual Studio.
Dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Projet.
Sous les types Projet, développez le dossier Visual C#, cliquez sur Office, (dans Visual Studio 2008, puis cliquez sur 2007), puis sur Modèle de formulaire InfoPath.
Vous pouvez également développer les dossiers Autres langages, puis Visual Basic et cliquer ensuite sur Office, (dans Visual Studio 2008, puis cliquez sur 2007), puis sur Modèle de formulaire InfoPath.
Nommez le projet HelloWorld, puis cliquez sur OK.
Dans la boîte de dialogue Créer un formulaire, cliquez sur Modèle de formulaire, sur Formulaire vierge, puis sur OK.
Le concepteur de modèles de formulaires InfoPath s'affiche sous un onglet intitulé manifest.xsf [Design].
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
- Dans le volet Office Tâches de création, cliquez sur Contrôles.
Remarque |
---|
Si le volet Office Tâches de création n'est pas affiché, cliquez sur Tâches de création dans le menu Affichage. |
Faites glisser un contrôle Bouton sur le formulaire depuis la Boîte à outils.
Double-cliquez sur le contrôle Bouton, tapez Hello pour la propriété Étiquette, puis cliquez sur Modifier le code du formulaire. Enregistrez le formulaire lorsque vous y êtes invité.
La fenêtre de l'éditeur de code s'ouvre avec le curseur placé 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
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
Dans le menu Débogage, cliquez sur Démarrer le débogage (ou appuyez sur F5).
La fenêtre Aperçu d'InfoPath s'affiche.
Cliquez sur le bouton Hello.
Une boîte de message contenant le texte « Hello World! » s'affiche à l'écran.
Cliquez sur OK, puis sur le bouton Fermer l'aperçu de la barre d'outils Standard pour retourner dans Visual Studio.
La procédure suivante montre comment ajouter des points d'arrêt de débogage à votre code de formulaire.
Déboguer le code de formulaire
Cliquez sur l'onglet CodeFormulaire.cs ou CodeFormulaire.vb pour retourner dans l'éditeur de code.
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.
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 Hello.
L'éditeur de code reçoit le focus, et la ligne du point d'arrêt est mise en surbrillance.
Dans le menu Débogage, cliquez sur Pas à pas principal (ou appuyez sur F10) pour continuer à parcourir le code pas à pas.
Le gestionnaire d'événements est exécuté, et le message « Hello World! » s'affiche.
Cliquez sur OK pour revenir à l'éditeur de code, puis cliquez sur Arrêter le débogage dans le menu Débogage (ou appuyez sur Ctrl+Alt+Attn).
Récupération du nom de l'utilisateur actif
En utilisant les classes .NET Framework, vous pouvez bénéficier de fonctionnalités supplémentaires qui ne sont pas facilement accessibles en utilisant une logique métier écrite en script. Dans l'exemple qui suit, vous allez découvrir comment utiliser la propriété UserName de la classe Environment pour extraire le nom de l'utilisateur actif et remplir un contrôle Zone de texte d'une valeur par le biais du gestionnaire d'événements associé à l'événement Loading.
Le remplissage du contrôle Zone de texte est assuré par le recours à deux instances de la classe XPathNavigator.
La première instance fait appel à la propriété MainDataSource de la classe XmlForm pour extraire une instance de la classe DataSource représentant le document XML sous-jacent du formulaire. Cette instance de la classe DataSource utilise ensuite la méthode CreateNavigator pour positionner XPathNavigator au niveau du nœud racine du document XML.
La seconde instance de XPathNavigator se sert de la première pour se positionner dans le champ employé du document XML, et la méthode SetValue de la classe XPathNavigator est ensuite utilisée pour définir la valeur du champ à l'aide de la propriété UserName.
Pour plus d'informations sur l'utilisation de System.Xml dans les modèles de formulaires avec code managé, voir Utilisation des classes XPathNavigator et XPathNodeIterator.
Ajouter un gestionnaire d'événements Chargement en cours (Loading)
Ouvrez le projet HelloWorld que vous avez créé dans la procédure pas à pas précédente.
Si vous travaillez dans InfoPath avec Microsoft Visual Studio Tools for Applications (VSTA), démarrez InfoPath et ouvrez le formulaire en mode Création d'InfoPath. Si vous utilisez Visual Studio 2005 en association avec Microsoft Visual Studio 2005 Tools pour Microsoft Office System2007 ou Visual Studio 2008 avec Visual Studio Tools pour Office, démarrez Visual Studio et ouvrez le projet
Dans le menu Affichage, cliquez sur Source de données.
Cliquez avec le bouton droit sur le dossier mesChamps, puis cliquez sur Ajouter.
Dans Nom, tapez employé, puis cliquez sur OK.
Faites glisser le champ employé dans la vue.
Si vous travaillez dans InfoPath, dans le menu Outils, cliquez sur Programmation, puis sur Événement Chargement en cours (Loading).
Si vous travaillez dans Visual Studio, dans le menu Insérer, cliquez sur Événement, puis sur Événement Sur chargement (OnLoad).
Un gestionnaire d'événements est alors créé pour l'événement Loading, et le focus se déplace dans l'éditeur de code au niveau de ce gestionnaire d'événements.
Dans l'éditeur de code, tapez le code suivant :
public void FormEvents_Loading(object sender, LoadingEventArgs e) { System.Xml.XPath.XPathNavigator root, user; root = this.MainDataSource.CreateNavigator(); user = root.SelectSingleNode("//my:employee", this.NamespaceManager); user.SetValue(System.Environment.UserName); }
Public Sub FormEvents_Loading(ByVal sender As Object, ByVal e As LoadingEventArgs) Dim root, user As System.Xml.XPath.XPathNavigator root = Me.MainDataSource.CreateNavigator user = root.SelectSingleNode("//my:employee", Me.NamespaceManager) user.SetValue(System.Environment.UserName) End Sub
Si vous travaillez dans Microsoft Visual Studio Tools for Applications (VSTA), basculez dans la fenêtre de création de formulaire d'InfoPath, puis cliquez sur le bouton Aperçu pour afficher un aperçu du formulaire.
Si vous travaillez dans Visual Studio, cliquez sur Démarrer le débogage dans le menu Débogage (ou appuyez sur F5) pour afficher un aperçu du formulaire.
Étapes suivantes
Pour plus d'information sur l'utilisation de gestionnaires d'événements pour d'autres contrôles et événements, voir Procédure d'ajout d'un gestionnaire d'événements.
Pour plus d'informations sur l'aperçu et le débogage du code des modèles de formulaires, voir Procédure d'aperçu et de débogage des modèles de formulaires InfoPath avec code managé.
Pour plus d'informations sur le déploiement d'un modèle de formulaire avec code managé, 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 dans les modèles de formulaires avec code managé, voir Présentation du modèle objet InfoPath et des tâches développeur courantes.