Partager via


Nouveautés pour les développeurs InfoPath

Microsoft Office InfoPath 2007 apporte de nombreuses nouveautés et améliorations qui intéresseront les développeurs. Parmi ces améliorations, on peut citer l'adjonction d'un nouveau modèle objet avec code managé optimisé et mieux intégré à .NET Framework. Une logique métier écrite selon ce modèle objet fonctionne de la même manière, que le modèle de formulaire soit ouvert dans Office InfoPath 2007 ou dans un navigateur Web.

De plus, un nouvel environnement de développement permettant l'utilisation d'une logique métier écrite en code managé a été intégré à Office InfoPath 2007 ; il a pour nom Microsoft Visual Studio Tools for Applications (VSTA).

Microsoft Office Forms Server 2007, tout comme son pendant InfoPath Forms Services disponible dans Microsoft Office SharePoint Server 2007, permet de déployer un modèle de formulaire InfoPath sur un serveur de sorte que les utilisateurs dépourvus de Office InfoPath 2007 puissent ouvrir et remplir les formulaires InfoPath à l'aide d'un navigateur Web.

En utilisant une logique métier écrite dans le nouveau modèle objet avec code managé et en exploitant les fonctionnalités de vérification de mise en page disponibles dans le mode Création d'InfoPath, vous pouvez créer un modèle de formulaire simple qu'il vous sera possible de déployer dans Microsoft Office Forms Server 2007 ou dans une bibliothèque de documents correctement configurée dans Office SharePoint Server 2007 exécutant InfoPath Forms Services. Ce modèle de formulaire pourra s'exécuter à la fois dans InfoPath et dans un navigateur Web. L'ensemble constitué par le client InfoPath et les fonctionnalités de InfoPath Forms Services prenant en charge ce mode de création et de déploiement correspond à un concept appelé Design Once (Création unique).

Nouveautés et améliorations

Les sections suivantes décrivent brièvement les nouveautés et les améliorations de Office InfoPath 2007 qui intéresseront les développeurs InfoPath :

  • Nouveau modèle objet avec code managé et environnements de développement inédits

  • Prise en charge des compléments COM

  • Convertisseurs de modèles de formulaires

  • Importateurs de données personnalisés

  • Affichage des ID de contrôle dans l'interface utilisateur du mode Création

  • Prise en charge des bibliothèques de connexions de données

  • Événements XML

  • Composants de modèle

  • Éditeur InfoPath hébergé sous forme de contrôle

Nouveau modèle objet avec code managé et environnements de développement inédits

Office InfoPath 2007 fournit un nouveau modèle objet avec code managé intégrant un ensemble de fonctionnalités destinées à créer une logique métier personnalisée dans les modèles de formulaires. Une fois déployée dans Microsoft Office Forms Server 2007 ou dans une bibliothèque de documents correctement configurée dans Office SharePoint Server 2007, une logique métier créée à partir de ce nouveau modèle objet s'exécutera à la fois dans un navigateur Web et dans Office InfoPath 2007. Vous pouvez éventuellement écrire une logique métier plus élaborée qui, s'appuyant sur les possibilités de ce modèle objet, s'exécutera uniquement dans les modèles de formulaires ouverts pour modification dans Office InfoPath 2007.

Pour écrire une logique métier qui s'exécutera à l'ouverture d'un formulaire dans un navigateur Web ou dans Office InfoPath 2007, activez la case à cocher Activer les fonctions compatibles avec le navigateur uniquement dans la boîte de dialogue Créer un modèle de formulaire au moment de créer un modèle de formulaire. Pour écrire une logique métier qui soit en mesure d'exploiter des fonctionnalités supplémentaires lorsqu'elle est ouverte dans Office InfoPath 2007, désactivez la case à cocher Activer les fonctions compatibles avec le navigateur uniquement en phase de création d'un modèle de formulaire. Vous pouvez également modifier ce paramètre après avoir créé le modèle de formulaire en cliquant sur Modifier les paramètres de compatibilité dans le volet Office Vérificateur de mise en page.

Office InfoPath 2007 intègre deux nouvelles options dédiées au développement de modèles de formulaires contenant une logique métier écrite en code managé :

  • L'environnement de développement Microsoft Visual Studio Tools for Applications (VSTA), qui est intégré à InfoPath de façon analogue à l'environnement Visual Basic Editor utilisé par d'autres applications Office. VSTA est un environnement de développement léger qui s'appuie sur les fonctionnalités de Visual Studio.

  • L'intégration du mode Création d'InfoPath à Visual Studio Tools pour Office, qui permet de créer un modèle de formulaire InfoPath et d'écrire une logique métier en code managé sans quitter l'environnement Visual Studio.

Pour plus d'informations sur le nouveau modèle objet et sur les nouveaux environnements de développement, voir Modèles objet et environnements de développement d'InfoPath 2007.

Prise en charge des compléments COM

Office InfoPath 2007 prend en charge la création et l'enregistrement de compléments COM par le biais d'un modèle de développement très similaire à celui des autres applications Office telles que Word et Excel. Les compléments COM d'InfoPath prennent en charge l'interface IDTExtensibility2 pour l'implémentation de méthodes faisant office de gestionnaires d'événements pour répondre aux conditions de démarrage et de fermeture d'InfoPath. L'objet ApplicationEvents a été ajouté au modèle objet COM d'InfoPath pour offrir une prise en charge des événements de niveau application tels que les événements WindowActivate et XDocumentOpen, qui permettent de créer des gestionnaires d'événements dans votre complément COM pour les événements Window et Document des formulaires InfoPath.

Pour créer un complément Com InfoPath, vous devez implémenter les cinq événements de l'interface IDTExtensibility2. Pour plus d'informations sur l'interface IDTExtensibility2, recherchez « IDTExtensibility2 IDTExtensibility2 » sur MSDN.

Après avoir créé un complément, vous devez l'enregistrer dans la sous-clé du Registre HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\InfoPath\AddIns\ et définir les valeurs FriendlyName, Description et LoadBehavior.

Les compléments COM d'InfoPath peuvent être chargés par défaut au démarrage de l'application, comme ils peuvent être appelés via la boîte de dialogue Compléments COM. Pour afficher la boîte de dialogue Compléments COM, cliquez sur Compléments COM dans le menu Outils.

Convertisseurs de modèles de formulaires

InfoPath 2003 Service Pack 1 et les versions ultérieures offrent une infrastructure qui permet de créer un modèle de formulaire en important la structure d'un formulaire électronique d'un autre type. Dans sa version d'origine, Office InfoPath 2007 intègre un convertisseur qui permet de créer un modèle de formulaire InfoPath s'appuyant sur la structure d'un formulaire créée dans un document Microsoft Office Word ou un classeur Microsoft Excel. Pour lancer l'importation de la structure d'un formulaire créé dans Word ou Excel, cliquez sur Importer un formulaire dans le menu Fichier pour afficher l'Assistant Importation.

Cette infrastructure a été étendue dans Office InfoPath 2007 de façon à prendre également en charge la création et l'installation de convertisseurs personnalisés en vue d'exporter la structure d'un modèle de formulaire InfoPath dans un formulaire électronique d'un autre type. Dans la mesure où un convertisseur d'exportation personnalisé a été installé, les utilisateurs peuvent ouvrir un modèle de formulaire InfoPath en mode Création, puis cliquer sur la commande Exporter le modèle de formulaire du menu Fichier pour exporter la structure du formulaire vers un autre type de formulaire électronique.

Interfaces de convertisseur

Les convertisseurs de modèles de formulaires spécifient la liste des types de fichiers qu'ils prennent en charge, et traitent ces types de fichiers pour produire un modèle de formulaire InfoPath associé à un manifeste (.xsf), une vue (.xsl) et les autres fichiers constitutifs d'un fichier de modèle de formulaire InfoPath (.xsn).

Un convertisseur de modèles de formulaires InfoPath est un composant d'automatisation COM standard qui implémente les interfaces IFormTemplateConverter et IFormTemplateConverter2. L'implémentation de l'interface IFormTemplateConverter assure une compatibilité avec Microsoft InfoPath 2003. L'interface IFormTemplateConverter2, quant à elle, offre des fonctionnalités supplémentaires aux utilisateurs de Office InfoPath 2007. Pour pouvoir être exposé dans le mode Création d'InfoPath, le convertisseur doit également fournir des informations de base sur lui-même dans le Registre, notamment :

  • son nom complet ;

  • une description détaillée ;

  • la liste des extensions de fichiers qu'il prend en charge.

La bibliothèque de liens dynamiques IPDESIGN.DLL contenue dans le dossier C:\Program Files\Microsoft Office\Office12 fournit les interfaces IFormTemplateConverter, IFormTemplateConverter2, IConversionManager et IConversionManager2, qui permettent la création de convertisseurs de structures de formulaires personnalisés.

Automatisation d'un convertisseur

Les convertisseurs de modèles de formulaires peuvent être automatisés afin de faciliter l'importation ou l'exportation en bloc de plusieurs modèles de formulaires. Pour automatiser un convertisseur, vous devez utiliser les méthodes qu'il implémente. Par exemple, l'extrait JScript qui suit montre comment automatiser l'importateur de formulaires Microsoft Office Word dans le but d'importer « sample.doc » :

var oConverter = new ActiveXObject("InfoPath.DesignerWordImport.2");
var strSourcePath = "c:\\temp\\sample.doc";
var strDestPath = "c:\\temp\\sampleOutput\\"

oConverter.Initialize();
try
{
   oConverter.SetLcid(1033);
   var strMessage = oConverter.Import(strSourcePath, strDestPath, true);
}
catch(e)
{
   WScript.Echo("Error: " + e.message);
}

WScript.Echo("Result was: " + strMessage);

oConverter.UnInitialize();

Importateurs de données personnalisés

Office InfoPath 2007 offre une infrastructure qui permet de créer des importateurs personnalisés en vue d'importer des données de formulaires ou de documents électroniques d'autres types, voire de formulaires ou de documents papier numérisés à l'aide d'un logiciel de reconnaissance optique de caractères (OCR). Pour afficher la boîte de dialogue Importer les données du formulaire, cliquez sur Remplir un formulaire dans le menu Fichier, sélectionnez le formulaire à remplir, puis cliquez sur Importer les données du formulaire dans le menu Fichier.

La bibliothèque de liens dynamiques IPEDITOR.DLL contenue dans le dossier C:\Program Files\Microsoft Office\Office12 fournit les interfaces IInfoPathDataImporter, IInfoPathDataImporterFields, IInfoPathViewControl et IPropertyBag, qui doivent être implémentées pour créer un importateur de données personnalisé.

Affichage des ID de contrôle dans l'interface utilisateur du mode Création

Vous pouvez désormais déterminer l'identificateur ViewContext d'un contrôle de formulaire InfoPath en mode Création en affichant la boîte de dialogue Propriétés du contrôle, puis en cliquant sur l'onglet Avancé. La valeur ViewContext du contrôle actif figure dans la section Code de l'onglet Avancé.

Prise en charge des bibliothèques de connexions de données

La bibliothèque de connexions de données est une liste stockée sur un serveur Office SharePoint Server 2007 ou Office Forms Server 2007 qui contient des fichiers de connexion de données. Les fichiers de connexion de données stockés dans une bibliothèque de connexions de données peuvent consister soit en un fichier OCD (Office Data Connection), qui est utilisé par Excel, soit en un fichier UDC (Universal Data Connection V2), qui est utilisé par Office InfoPath 2007. Chaque fichier UDC contient des paramètres de connexion de données qui peuvent être utilisés par un modèle de formulaire InfoPath.

Un fichier UDC de bibliothèque de connexions de données peut être utilisé pour définir la connexion de données d'un modèle de formulaire utilisateur (modèle de formulaire déployé par un utilisateur sans code ni fonctionnalités requérant l'approbation de l'administrateur). Tous les fichiers UDC ajoutés à une bibliothèque de connexions de données nécessitent l'approbation d'un administrateur de collection de sites avant de pouvoir être utilisés. Par ailleurs, il existe un magasin central de fichiers UDC contrôlés par l'administrateur d'une batterie de serveurs et qui ne peuvent être utilisés que par des modèles de formulaires approuvés par l'administrateur (modèle de formulaire contenant du code et autres fonctionnalités qui requièrent l'approbation de l'administrateur).

Pour qu'un modèle de formulaire utilisateur puisse établir une connexion avec une source de données d'un autre domaine, les deux conditions suivantes doivent être réunies :

  1. L'administrateur de la batterie de serveurs doit d'abord activer les connexions de données entre différents domaines pour les modèles de formulaires utilisateur à l'échelle de la batterie de serveurs.

  2. Toute connexion de données entre différents domaines doit être définie dans la bibliothèque de connexions de données.

Par défaut, les éléments contenus dans une bibliothèque de connexions de données doivent être approuvés par l'administrateur du site pour pouvoir être utilisés dans InfoPath.

Dans le cas d'une publication sur serveur Office SharePoint Server 2007 ou Office Forms Server 2007, un concepteur de formulaires peut choisir une ou plusieurs connexions spécifiées dans les fichiers UDC d'une bibliothèque de connexions de données basée sur le serveur de la même collection de sites. Dans le cas des formulaires basés sur serveur, les fichiers doivent résider sur le serveur de publication des formulaires. Les fichiers UDC peuvent contenir des informations spécifiques au serveur, telles que des informations d'authentification alternatives, voire un lien vers une connexion spécifique au serveur.

Lorsque vous concevez un modèle de formulaire et que vous créez une connexion de données avec une connexion de données issue d'une bibliothèque de connexions de données, InfoPath place un lien vers le fichier UDC dans le fichier manifeste (.xsf) du modèle de formulaire. Les paramètres de connexion sont ensuite extraits de la bibliothèque de connexions de données au moment de l'exécution. Un administrateur de serveur peut ainsi modifier les paramètres de connexion une fois que le formulaire a été déployé.

Spécifier une connexion issue d'une bibliothèque de connexions de données dans un modèle de formulaire existant

  1. Ouvrez le modèle de formulaire en mode Création.

  2. Dans le menu Outils, cliquez sur Connexions de données.

  3. Cliquez sur Ajouter pour démarrer l'Assistant Connexion de données, sur Rechercher des connexions sur un serveur Microsoft Office SharePoint Server, puis sur Suivant.

Spécifier une connexion issue d'une bibliothèque de connexions de données lors de la création d'un formulaire vide

  1. Dans le menu Fichier, cliquez sur Créer un formulaire.

  2. Dans la boîte de dialogue Créer un formulaire, cliquez sur l'icône Bibliothèque de connexions.

Spécifier une connexion issue d'une bibliothèque de connexions de données pour un contrôle Zone de liste, Zone de liste déroulante ou Zone de liste modifiable

  1. Ouvrez le modèle de formulaire en mode Création.

  2. Accédez à la boîte de dialogue Propriétés du contrôle.

  3. Sous l'onglet Données, cliquez sur Rechercher des valeurs d'une source de données externe, puis sur Ajouter.

  4. Cliquez sur Rechercher des connexions sur un serveur Microsoft Office SharePoint Server, puis sur Suivant.

Spécifier une connexion de données issue d'une bibliothèque de connexions de données lors de la configuration des options d'envoi d'un modèle de formulaire

  1. Ouvrez le modèle de formulaire en mode Création.

  2. Dans le menu Outils, cliquez sur Options d'envoi.

  3. Activez la case à cocher Autoriser les utilisateurs à envoyer ce formulaire.

  4. Cliquez sur Connexion issue d'une bibliothèque de connexions de données dans la liste déroulante.

  5. Cliquez sur Ajouter pour démarrer l'Assistant Connexion de données.

Spécifier une connexion de données issue d'une bibliothèque de connexions de données lors de la configuration de l'envoi d'un modèle de formulaire vers serveur Web via HTTP Post

  1. Ouvrez le modèle de formulaire en mode Création.

  2. Dans le menu Outils, cliquez sur Options d'envoi.

  3. Activez la case à cocher Autoriser les utilisateurs à envoyer ce formulaire.

  4. Cliquez sur Envoyer les données de formulaire vers une seule destination, puis sélectionnez Serveur Web (HTTP) dans la liste déroulante.

  5. Cliquez sur Modifier.

  6. Dans la boîte de dialogue Envoi vers un serveur Web, cliquez sur Connexion Office Server, puis sur Connexion serveur.

Configuration des paramètres d'authentification d'une bibliothèque de connexions de données sur le serveur Office SharePoint Server

Un administrateur de serveur peut contrôler la façon dont certaines fonctionnalités d'authentification sont exécutées pour les connexions spécifiées dans une bibliothèque de connexions de données au niveau de Office SharePoint Server 2007 ou Office Forms Server 2007. Le tableau suivant répertorie les paramètres de bibliothèque de connexions de données qui sont définis dans Administration centrale de SharePoint 3.0, dans la page Gestion des applications, en cliquant sur Configurer les services de formulaire InfoPath.

Paramètre Description

Exiger SSL pour l'authentification HTTP aux sources de données

Les formulaires qui se connectent à des sources de données principales telles que des services Web doivent se connecter au moyen d'une authentification de base ou de type Digest, ce qui nécessite l'envoi d'un mot de passe par le réseau. Activez cette case à cocher pour exiger une connexion chiffrée SSL pour ces types d'authentification. Le paramétrage par défaut est True (activé).

Autoriser l'authentification SQL incorporée

Les formulaires qui se connectent à des bases de données Microsoft SQL Server sont susceptibles d'incorporer le nom d'utilisateur et le mot de passe SQL Server dans la chaîne de connexion. Celle-ci apparaît en texte clair dans le fichier UDC associé au modèle de formulaire ou dans le fichier manifeste .xsf du modèle de formulaire. Désactivez cette case à cocher pour empêcher les formulaires d'utiliser les informations d'identification SQL incorporées. Le paramétrage par défaut est False(désactivé).

Autoriser les modèles de formulaire utilisateur à utiliser les informations d'authentification contenues dans les fichiers de connexion de données

Les fichiers UDC (Universal Data Connection) peuvent contenir des informations d'authentification alternatives, telles qu'un nom d'utilisateur et un mot de passe explicites ou un ID d'application d'authentification unique. Activez cette case à cocher pour autoriser les modèles de formulaire utilisateur à utiliser ces informations d'authentification alternatives issues de fichiers UDC. Le paramétrage par défaut est False (désactivé).

Autoriser les modèles de formulaire utilisateur utilisant les paramètres de connexion d'un fichier de connexion de données à accéder aux données d'autres domaines

Les modèles de formulaire utilisateur peuvent contenir des connexions de données dans les fichiers de connexion de données qui accèdent à des données d'un autre domaine. Activez cette case à cocher pour autoriser les modèles de formulaire utilisateur à accéder aux données d'autres domaines. Le paramétrage par défaut est False (désactivé).

Événements XML

Lorsque des utilisateurs travaillent à partir d'un modèle de formulaire créé à l'aide Office InfoPath 2007 et déployé dans Office Forms Server 2007 ou Office SharePoint Server 2007, InfoPath stocke et manipule les données de formulaire en mémoire en employant l'une ou l'autre des deux méthodes suivantes, selon la façon dont le modèle de formulaire a été ouvert :

  • lorsque le modèle de formulaire est ouvert dans InfoPath, l'objet DOMDocument de MSXML5 (Microsoft XML Core Services 5.0) est utilisé ;

  • Lorsque le modèle de formulaire est ouvert dans un navigateur Web, la classe XmlDocument de Microsoft .NET Framework 2.0 est utilisée.

En employant les méthodes de la classe XPathNavigator conjointement avec les classes et les membres du nouveau modèle objet Microsoft.Office.InfoPath, les développeurs de modèles de formulaires ont la possibilité d'écrire des fonctions et des sous-routines avec code managé qui accèdent aux données XML et les mettent à jour dans ces deux magasins. Les événements XML permettent aux développeurs de formulaires d'annuler, d'ajouter une règle de validation et de définir des effets secondaires (le tout par programme) pour les opérations effectuées sur des nœuds XML telles que Insert, Delete et ValueChange.

Office InfoPath 2007 fournit trois événements XML principaux lors de l'utilisation du nouveau modèle objet avec code managé, à savoir, les événements Changing, Validating et Changed.

Remarque

L'événement Changing n'est pris en charge que dans la logique métier d'un modèle de formulaire ouvert à l'aide de Office InfoPath 2007. L'événement Changing n'est pas pris en charge dans les modèles de formulaires activés pour le navigateur qui sont ouverts dans un navigateur Web.

Créer un gestionnaire d'événements pour l'événement Modification en cours (Changing), Validation en cours (Validating) ou Modifié (Changed) d'un contrôle

  1. Ouvrez le modèle de formulaire en mode Création.

  2. Cliquez avec le bouton droit sur le contrôle, cliquez sur Programmation, puis sur l'événement qui vous intéresse.

Vous accédez alors à l'environnement Microsoft Visual Studio Tools for Applications (VSTA) (ou Visual Studio 2005 si vous possédez ce logiciel et si vous avez installé Microsoft Visual Studio 2005 Tools pour Microsoft Office System2007 ou Visual Studio 2008 avec Visual Studio Tools pour Office) d'où vous allez créer un squelette de gestionnaire d'événements en C# similaire à celui présenté dans l'exemple suivant, qui porte sur l'événement Changed :

public void field1_Changed(object sender, XmlEventArgs e)
{
   // Write code here to change data outside the Main Data Object
   // such as other Data Objects and member variables.
   if (e.UndoRedo)
   {
      // InfoPath will handle all undo and redo operations that change
      // the Main Data Object, so there is nothing left for custom code
      // to do.
      return;
   }
    // Write code here to change the Main Data Object.
}

Pour plus d'informations sur la création de gestionnaires d'événements, voir Procédure d'ajout d'un gestionnaire d'événements. Pour plus d'informations sur l'utilisation de code XML avec le modèle objet avec code managé, voir Utilisation des classes XPathNavigator et XPathNodeIterator.

Liaison d'événements à l'aide de délégués

Lorsque le modèle objet avec code managé est utilisé, Office InfoPath 2007 lie les événements aux gestionnaires d'événements à l'aide de délégués. Sachez que même si InfoPath fait appel à des délégués pour lier les événements, cette fonctionnalité n'entre pas dans le schéma d'utilisation classique de code managé. De fait, InfoPath fait appel à des délégués pour la liaison d'événements statique. Une liaison ne peut se produire que dans la méthode InternalStartup, qui s'exécute au moment du chargement du formulaire. Si les délégués permettant la liaison d'événements sont déclarés ailleurs dans le code, une exception runtime est levée.

Le code C# reproduit ci-dessous est généré par InfoPath lors de l'ajout de gestionnaires d'événements pour l'événement Changed du champ1 et l'événement Validating du champ2. Notez que le code de liaison d'événements du gestionnaire d'événements est ajouté à la méthode InternalStartup à l'aide des délégués XmlChangedEventHandler et XmlValidatingEventHandler.

using System;
using Microsoft.Office.InfoPath;

namespace Template1
{
   public partial class FormCode
   {
      public void InternalStartup()
      {
         EventManager.XmlEvents["/my:myFields/my:field1"].Changed += new XmlChangedEventHandler(field1_Changed);
         EventManager.XmlEvents["/my:myFields/my:field2"].Validating += new XmlValidatingEventHandler(field2_Validating);
      }

      public void field1_Changed(object sender, XmlEventArgs e)
      {
         // Code for Changed event goes here.
      }

      public void field2_Validating(object sender, XmlValidatingEventArgs e)
      {
         // Code for Validating event goes here.
      }
   }
}
Important :

La méthode InternalStartup et le code de liaison d'événements qu'elle contient sont générés par InfoPath lorsque vous ajoutez des gestionnaires d'événements à l'aide de plusieurs commandes d'interface utilisateur. Nous vous recommandons de ne pas créer vous-même la méthode InternalStartup ou d'y ajouter du code supplémentaire. Pour plus d'informations sur l'ajout de gestionnaires d'événements, voir Procédure d'ajout d'un gestionnaire d'événements.

Composants de modèle

Les concepteurs de formulaires peuvent désormais créer des bibliothèques de composants de formulaire, appelés composants de modèle, qui peuvent contenir contrôles, présentations, schémas, règles et calculs. Vous pouvez déployer des composants de modèle dans un référentiel partagé ou sur un groupe d'ordinateurs local pour permettre à un ou plusieurs concepteurs de formulaire de les utiliser dans le cadre de la création modulaire de modèles de formulaires. Par exemple, si vous disposez d'un jeu de modèles de formulaires et qu'ils contiennent tous la même section d'en-tête, vous pouvez utiliser des composants de modèle pour créer, une fois pour toutes, la section d'en-tête et l'insérer dans chaque modèle de formulaire.

En outre, vous pouvez par la suite mettre à jour la conception d'un composant de formulaire et l'enregistrer à nouveau dans le référentiel partagé. Lorsque le concepteur de formulaires rouvrira un modèle de formulaire contenant l'ancienne version du composant de modèle, InfoPath l'avertira qu'une version mise à jour du composant est disponible et l'utilisateur pourra le mettre à jour.

Certaines fonctionnalités de création d'InfoPath ne pouvant pas être utilisés dans les composants de modèle, ceux-ci disposent d'un mode Création distinct. Ainsi, lorsque vous enregistrez un composant de modèle dans le référentiel partagé, il devient disponible dans la section Contrôles personnalisés du volet Office Contrôles du mode de création de modèles de formulaires. Si vous créez un composant de modèle et que vous l'enregistrez en local, vous devez utiliser la commande Ajouter ou supprimer des contrôles personnalisés pour ajouter le composant de modèle au volet Office Contrôles.

Créer un composant de modèle

  1. Dans le menu Fichier, cliquez sur Créer un formulaire.

  2. Dans la boîte de dialogue Créer un formulaire, cliquez sur Composant de modèle.

  3. Dans la zone Basé sur, cliquez sur l'icône correspondant à la source de données sur laquelle le composant de modèle doit être basé, puis cliquez sur OK.

  4. Créez un composant de modèle à la manière de n'importe quel autre modèle de formulaire, en insérant une présentation, des contrôles, des règles de validation de données et autres. Vous pouvez également ajouter des connexions de données pour permettre le remplissage automatique de contrôles de type Zone de liste déroulante, Zone de liste modifiable ou Zone de liste.

  5. Pour enregistrer le composant de modèle, cliquez sur Enregistrer dans le menu Fichier. Le composant de modèle prend le nom du fichier dans lequel il est enregistré.

  6. Si vous utilisez InfoPath et l'environnement de développement Microsoft Visual Studio Tools for Applications (VSTA), dans le volet Office Contrôle, cliquez sur Ajouter ou supprimer des contrôles personnalisés, puis sur Ajouter, et recherchez ensuite le fichier de composant de modèle InfoPath (.xtp) que vous avez enregistré.

    Si vous utilisez Visual Studio avec l'intégration du mode Création d'InfoPath, cliquez avec le bouton droit dans la Boîte à outils, cliquez sur Choisir les éléments, puis sur Ajouter, et recherchez ensuite le fichier de composant de modèle InfoPath (.xtp) que vous avez enregistré.

Utiliser un composant de modèle

  1. Créez un modèle de formulaire et ouvrez le volet Office Contrôles.

  2. Faites défiler le volet Office vers le bas jusqu'aux contrôles Personnalisé, puis faites glisser votre composant de modèle sur le formulaire.

    Remarque

    Si vous utilisez Visual Studio avec l'intégration du mode Création d'InfoPath, les composants de modèle sont répertoriés à la fin de la section InfoPath de la Boîte à outils.

Vous pouvez à présent utiliser votre modèle de formulaire et le composant de modèle qu'il contient de la même façon qui si vous créiez un formulaire sans composant de modèle. Tous les contrôles et la logique associée peuvent être modifiés. Vous pouvez également modifier le composant de modèle dans son fichier d'origine ; vous serez alors averti qu'une nouvelle version du composant de modèle est disponible dans les autres modèles de formulaires où il a été préalablement inséré.

Remarque

Si vous enregistrez les composants de modèle mis à jour dans le référentiel partagé, vous devez fermer et rouvrir le modèle de formulaire dans lequel vous avez préalablement inséré un composant de modèle avant d'être notifié qu'une nouvelle version est disponible. Si vous enregistrez les composants de modèle mis à jour dans un dossier local, vous devez réinstaller le composant de modèle sur tous les ordinateurs qui le partagent.

Éditeur InfoPath hébergé sous forme de contrôle

La fonctionnalité de modification de formulaire InfoPath a été factorisée en un ensemble de propriétés et méthodes qui sont exposées via l'objet InfoPathEditorObject de la bibliothèque de liens dynamiques IPEDITOR.DLL. Ces propriétés et méthodes vous permettent d'héberger un sous-ensemble de fonctions de modification d'InfoPath dans une autre application sous la forme d'un contrôle ActiveX ou d'un contrôle de formulaire Windows managé.

Le programme d'installation d'InfoPath installe également l'assembly Microsoft.Office.InfoPath.FormControl.dll situé dans le dossier C:\Program Files\Microsoft Office\Office12, qui encapsule le modèle objet COM de l'objet InfoPathEditorObject, ce qui permet d'utiliser le contrôle dans les formulaires Windows et les autres applications .NET.

Le tableau suivant présente un récapitulatif des propriétés et des méthodes fournies par l'objet InfoPathEditor :

Membres Description

Méthode CloseDocument

Ferme le document XML ouvert.

Propriété DataConnectionBaseURL

Récupère ou définit l'URL utilisée pour les connexions de données.

Méthode FlushDocument

Enregistre ou vide le document chargé.

Propriété Host

Récupère ou définit l'objet utilisé pour accéder au modèle objet de l'application hôte. Valeur par défaut : null.

Propriété HostName

Récupère ou définit le nom de l'application hôte.

Méthode Load

Charge le document XML spécifié du système de fichiers sur la base d'une URL menant au nom de fichier. Le fichier XML fourni doit contenir des instructions de traitement (attributs href et name) qui fassent référence au modèle de formulaire utilisé pour charger et modifier le fichier XML.

Méthode LoadFromStream

Charge le document XML spécifié à partir d'un flux (IStream).

Méthode NewFromSolution

Crée un document de formulaire InfoPath sur la base d'une URL menant au modèle de formulaire spécifié.

Méthode NewFromSolutionWithData

Crée un document de formulaire InfoPath à partir des données XML spécifiées sous forme de flux IStream et d'URL menant à un fichier de modèle de formulaire. Lorsque cette méthode est utilisée, le fichier XML n'est pas tenu de contenir des instructions de traitement faisant référence au modèle de formulaire utilisé pour charger et modifier le fichier.

Méthode SetInitEventHandler

Définit la fonction de l'application hôte utilisée comme fonction de rappel de l'événement Initialize, qui est appelé avant l'événement OnLoad d'InfoPath.

Méthode SetSubmitToHostEventHandler

Définit la fonction de l'application hôte utilisée comme fonction de rappel lors du renvoi des données à l'application hôte. Pour configurer la connexion de données pour l'envoi à l'application hôte, ouvrez le modèle de formulaire en mode Création d'InfoPath, cliquez sur Options d'envoi dans le menu Outils, activez la case à cocher Autoriser les utilisateurs à envoyer ce formulaire, sélectionnez Environnement d'hébergement dans la liste déroulante, puis cliquez sur Ajouter.

Propriété XDocument

Récupère un objet XDocument à utiliser avec les membres du modèle objet d'InfoPath.

Remarque
Si vous utilisez l'assembly Microsoft.Office.InfoPath.FormControl, cette propriété est nommée XmlForm et récupère un objet XmlForm à utiliser avec les membres du modèle objet d'InfoPath.

Les barres d'outils et les barres de menus d'InfoPath ne sont pas fournies en l'état par l'objet InfoPathEditor ; toutefois, les commandes des menus et des volets Office de l'éditeur InfoPath sont toutes exposées via l'interface IOLECommandTarget. L'application hôte peut donc exécuter ces commandes par l'intermédiaire de cette interface, ce qui permet aux développeurs de répliquer cette fonctionnalité en intégralité, en partie ou pas du tout s'ils le souhaitent.

Pour plus d'informations sur l'utilisation de commandes InfoPath à l'aide de l'interface IOLECommandTarget, voir l'article intitulé « Hébergement de l'environnement de modification de formulaire InfoPath dans une application WinForm personnalisée », qui propose un lien vers un exemple de projet Visual Studio, sur le site InfoPath Developer Portal de MSDN.

Ajouter le contrôle de l'éditeur InfoPath à une application Windows Form

  1. Démarrez Microsoft Visual Studio.

  2. Créez un projet Application Windows.

  3. Ajoutez le contrôle ContrôleFormulaire InfoPath à la Boîte à outils comme composant .NET Framework (assembly Microsoft.Office.InfoPath.FormControl.dll situé dans C:\Program Files\Microsoft Office\Office12)

  4. Faites glisser le contrôle ContrôleFormulaire sur votre formulaire Windows.

  5. Ajoutez un contrôle Bouton au formulaire Windows.

  6. Écrivez un gestionnaire d'événements Clic pour le contrôle Bouton qui charge un fichier XML de formulaire InfoPath dans le contrôle ContrôleFormulaire (par exemple, ContrôleFormulaire1.New(@"C:\hello.xml");)

  7. Générez et exécutez l'application.

Cela suppose qu'un fichier XML InfoPath nommé « hello.xml » existe à l'emplacement C:\hello.xml. Pour utiliser la méthode New comme dans cet exemple, le fichier XML doit présenter des références d'instructions de traitement via les attributs href et name, qui spécifient un fichier de modèle de formulaire InfoPath (.xsn) au niveau de l'en-tête. Si cela n'est pas possible, la méthode NewFromFormTemplate(string, System.IO.Stream,Microsoft.Office.InfoPath.XmlFormOpenMode) peut être utilisée pour charger le fichier XML à partir d'un flux System.IO.Stream, ou vous pouvez utiliser la méthode NewFromFormTemplate(string) si vous disposez d'un fichier .xsn et d'un fichier XML correctement structuré, mais que ce dernier ne comporte pas de références d'instructions de traitement spécifiant le fichier .xsn. La méthode NewFromFormTemplate de l'objet FormControl correspond aux méthodes NewFromSolution et LoadFromStream de l'objet InfoPathEditorObject.

Voir aussi

Autres ressources

Développement de modèles de formulaires InfoPath avec code managé
Développement de modèles de formulaires avec code managé utilisant le modèle objet InfoPath 2003