Procédure d'accès aux données d'application en utilisant le modèle objet InfoPath 2003
Le modèle objet compatible avec InfoPath 2003 fournit des objets et des collections permettant d'accéder aux informations sur l'application InfoPath, notamment des informations relatives au document XML sous-jacent d'un formulaire et au fichier de définition du formulaire (.xsf). Ces données sont accessibles via l'objet de niveau supérieur dans la hiérarchie du modèle objet d'InfoPath, qui est instancié via l'interface Application.
Un projet de modèle de formulaire avec code managé compatible avec InfoPath 2003 créé à l'aide de Microsoft Visual Studio Tools for Applications (VSTA),Visual Studio 2005 avec Microsoft Visual Studio 2005 Tools pour Microsoft Office System2007 ou Visual Studio 2008 avec Visual Studio Tools pour Office initialise la variable thisApplication
de la méthode_Startup
de la classe du code du formulaire, qui peut alors être utilisée pour accéder aux membres de l'interface Application. Dans l'exemple qui suit, les propriétés Name et Version de l'interface Application sont utilisées pour renvoyer le nom et le numéro de version de l'instance d'InfoPath en cours d'exécution. Cette information est affichée dans une boîte de message à l'aide de la méthode Alert de l'interface UI2 :
thisXDocument.UI.Alert("Application name: " + thisApplication.Name +
"\nApplication version: " + thisApplication.Version);
thisXDocument.UI.Alert("Application name: " & thisApplication.Name & _
vbNewLine & "Application version: " & thisApplication.Version)
Dans l'exemple Visual C#, la référence au caractère \n
dans la chaîne du message d'alerte est rendue par le code InfoPath non managé comme un saut de ligne standard qui coupe le texte et le place dans une nouvelle ligne dans la boîte de message. Pour utiliser de manière explicite la nouvelle valeur de ligne définie pour l'environnement et la plate-forme actuels, utilisez la propriété Environment.NewLine comme illustré dans l'exemple qui suit.
thisXDocument.UI.Alert("Application name: " + thisApplication.Name +
Environment.NewLine + "Application version: " +
thisApplication.Version);
Accès aux données du document XML sous-jacent d'un formulaire
Les développeurs peuvent utiliser l'interface XDocument pour accéder aux informations sur le document XML sous-jacent d'un formulaire, notamment à une référence à un DOM (Document Object Model) XML contenant les données XML source du formulaire.
Dans l'exemple ci-dessous, la première boîte de message affiche une partie des données disponibles pour l'interface XDocument, par exemple si le document XML sous-jacent a été modifié (à l'aide de la propriété IsDirty) et s'il a été signé numériquement (à l'aide de la propriété IsSigned). La deuxième boîte de message utilise la propriété DOM de l'interface XDocument pour afficher le XML source du document XML sous-jacent du formulaire.
thisXDocument.UI.Alert("\nIsDirty: " + thisXDocument.IsDirty +
"\nIsDOMReadOnly: " + thisXDocument.IsDOMReadOnly +
"\nIsNew: " + thisXDocument.IsNew +
"\nIsReadOnly: " + thisXDocument.IsReadOnly +
"\nIsSigned: " + thisXDocument.IsSigned);
thisXDocument.UI.Alert(thisXDocument.DOM.xml);
thisXDocument.UI.Alert("IsDirty: " & thisXDocument.IsDirty & vbNewLine & _
"IsDOMReadOnly: " & thisXDocument.IsDOMReadOnly & vbNewLine & _
"IsNew: " & thisXDocument.IsNew & vbNewLine & _
"IsReadOnly: " & thisXDocument.IsReadOnly & vbNewLine & _
"IsSigned: " & thisXDocument.IsSigned)
thisXDocument.UI.Alert(thisXDocument.DOM.xml)
La propriété xml utilisée dans l'exemple précédent est une propriété du DOM XML. Pour plus d'informations à ce sujet, consultez la documentation du kit de développement MSXML 5.0.
Accès aux données du fichier de définition d'un formulaire
L'interface XDocument permet également d'accéder aux informations sur le fichier .xsf d'un formulaire, notamment une référence DOM XML aux données XML source qu'il contient. Ces informations sont accessibles via la propriété Solution, qui renvoie une référence à l'interface SolutionObject.
Dans l'exemple ci-dessous, le premier message affiche une partie des données disponibles via l'interface SolutionObject, telles que son emplacement URI (Uniform Resource Identifier) (à l'aide de la propriété URI) et son numéro de version (à l'aide de la propriété Version). Le message suivant utilise la propriété DOM de l'interface SolutionObject pour afficher le XML source du fichier .xsf.
thisXDocument.UI.Alert("PackageURL: " +
thisXDocument.Solution.PackageURL +
"\nURI: " + thisXDocument.Solution.URI +
"\nVersion: " + thisXDocument.Solution.Version);
thisXDocument.UI.Alert(thisXDocument.Solution.DOM.xml);
thisXDocument.UI.Alert("PackageURL: " & _
thisXDocument.Solution.PackageURL & vbNewLine & _
"URI: " & thisXDocument.Solution.URI & vbNewLine & _
"Version: " & thisXDocument.Solution.Version)
thisXDocument.UI.Alert(thisXDocument.Solution.DOM.xml)