Cómo: Obtener acceso a los datos de aplicaciones con el modelo de objetos de InfoPath 2003
El modelo de objetos compatible con InfoPath 2003 proporciona objetos y colecciones que se pueden utilizar para obtener acceso a la información sobre la aplicación InfoPath, incluida información relacionada con el documento XML subyacente de un formulario y el archivo de definición de formulario (.xsf). Para obtener acceso a estos datos se utiliza el objeto de nivel superior en la jerarquía del modelo de objetos de InfoPath, del que se crea una instancia utilizando la interfaz Application.
Los proyectos de plantilla con código administrado compatible con InfoPath 2003 creados con Microsoft Visual Studio Tools para aplicaciones (VSTA) o Visual Studio con Microsoft Visual Studio 2005 Tools para 2007 Microsoft Office System inicializan la variable Visual Studio 2008 con Visual Studio Tools para Office _Startup
del método thisApplication
de la clase de código de formulario, que puede utilizarse para obtener acceso a los miembros de la interfaz Application. En el ejemplo siguiente, se usan las propiedades Version y Name de la interfaz Application para devolver el nombre y el número de versión de la instancia de InfoPath que se está ejecutando. Esta información se muestra en un cuadro de mensaje mediante el método UI2 de la interfaz Alert.
thisXDocument.UI.Alert("Application name: " + thisApplication.Name +
"\nApplication version: " + thisApplication.Version);
thisXDocument.UI.Alert("Application name: " & thisApplication.Name & _
vbNewLine & "Application version: " & thisApplication.Version)
En el ejemplo de Visual C#, el código no administrado de InfoPath representa la referencia al carácter \n
de la cadena del mensaje de alerta como un salto de línea estándar que hace que el texto aparezca en una nueva línea en el cuadro de mensaje. Para utilizar explícitamente el valor de nueva línea definido para el entorno y la plataforma actuales, use la propiedad Environment.NewLine como se muestra en el siguiente ejemplo:
thisXDocument.UI.Alert("Application name: " + thisApplication.Name +
Environment.NewLine + "Application version: " +
thisApplication.Version);
Obtener acceso a datos desde el documento XML subyacente de un formulario
Los programadores pueden utilizar la interfaz XDocument para obtener acceso a la información sobre el documento XML subyacente de un formulario, incluida una referencia a un Modelo de objetos de documento (DOM) XML que contiene los datos XML de origen del formulario.
En el ejemplo siguiente, el primer cuadro de mensaje muestra algunos de los datos que están disponibles desde la interfaz XDocument, como si se ha cambiado el documento XML subyacente (mediante la propiedad IsDirty) y si se ha firmado digitalmente (mediante la propiedad IsSigned). El siguiente cuadro de mensaje utiliza la propiedad XDocument de la interfaz DOM para mostrar el código XML de origen del documento XML subyacente del formulario.
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 propiedad xml utilizada en el ejemplo anterior es una propiedad del modelo de objetos de documentos (DOM) XML. Para obtener más información sobre el XML DOM, consulte la documentación de MSXML 5.0 SDK.
Obtener acceso a los datos desde el archivo de definición del formulario
También es posible tener acceso a la información sobre el archivo .xsf de un formulario, incluida la referencia de un XML DOM a los datos de XML de origen que contiene, mediante la interfaz XDocument. El acceso a esta información se obtiene mediante la propiedad Solution, que devuelve una referencia a la interfaz SolutionObject.
En el ejemplo siguiente, la primera alerta muestra algunos de los datos disponibles a través de la interfaz SolutionObject, como su ubicación de identificador uniforme de recursos (URI) (utilizando la propiedad URI) y su número de versión (usando la propiedad Version). La siguiente alerta utiliza la propiedad DOM de la interfaz SolutionObject para mostrar el XML de origen del archivo .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)