Compartir a través de


Acceso a los datos de la aplicación mediante 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 .

Un proyecto de plantilla de formulario de código administrado compatible con InfoPath 2003 creado mediante Visual Studio 2012 inicializa la thisApplication variable en el _Startup método de la clase de código de formulario, que se puede usar para acceder 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 \n carácter de la cadena del mensaje de alerta como una nueva fuente de línea estándar que hace que el texto se interrumpa y se coloque en una nueva línea del 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 DOM de la interfaz XDocument 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 DOM XML 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)