Compartir a través de


Cómo: Obtener acceso a datos de formulario con el modelo de objetos de InfoPath 2003

Si desea ampliar la funcionalidad de un formulario de InfoPath, con frecuencia es preciso tener acceso mediante programación a la información sobre el documento XML subyacente del formulario, tener acceso a los datos contenidos en dicho documento o realizar alguna acción en él. El modelo de objetos de InfoPath permite obtener acceso al documento XML subyacente de un formulario y manipularlo utilizando la interfaz XDocument en asociación con la interfaz XDocumentsCollection.

La interfaz XDocument es una de las más útiles del modelo de objetos de InfoPath, porque proporciona gran variedad de propiedades, métodos y eventos que no sólo interaccionan con el documento XML subyacente del formulario, sino que, además, realizan muchas de las acciones disponibles en la interfaz de usuario de InfoPath. En un proyecto de código administrado creado mediante el modelo de objetos compatible con InfoPath 2003, se define automáticamente una variable del tipo XDocument denominada thisXDocument en el método _StartUp de la clase que contiene controladores de eventos en el código de formulario del proyecto. Puede utilizar la variable thisXDocument del código del formulario para obtener acceso a la interfaz XDocument y sus miembros.

Información general sobre la interfaz XDocumentsCollection

La interfaz XDocumentsCollection proporciona los siguientes métodos y propiedades que los programadores de formularios pueden utilizar para administrar los objetos XDocument que contiene la colección.

Nombre Descripción

Método Close

Cierra el formulario especificado.

Método New

Crea un nuevo formulario basándose en un formulario existente.

Método NewFromSolution

Crea un formulario nuevo basado en una plantilla de formulario existente.

Método NewFromSolutionWithData

Crea un nuevo formulario de InfoPath utilizando los datos XML y la plantilla de formulario especificados.

Método Open

Abre el formulario especificado.

Propiedad Count

Devuelve el número de objetos XDocument que contiene la colección.

Propiedad Item

Devuelve una referencia al objeto XDocument especificado.

Información general sobre la interfaz XDocument

La interfaz XDocument proporciona los siguientes métodos y propiedades que los programadores de formularios pueden utilizar para interactuar con el documento XML subyacente de un formulario o realizar acciones en él.

Nombre Descripción

Método GetDataVariable

Devuelve el valor de cadena de una variable de datos especificada.

Método GetDOM

Devuelve una referencia al modelo de objetos de documento (DOM) XML asociado al objeto DataObject.

Método ImportFile

Importa (o combina) el formulario especificado con el que está abierto.

Método PrintOut

Imprime la vista actual del formulario.

Método Query

Recupera datos del adaptador de datos asociado al formulario.

Método Save

Guarda el formulario abierto en ese momento.

Método SaveAs

Guarda el documento abierto con el nombre indicado.

Método SetDataVariable

Establece el valor de una variable de datos especificada.

Método Submit

Envía un formulario de acuerdo con la operación de envío establecida en el modo de diseño.

Propiedad DataObjects

Devuelve una referencia a la colección DataObjects.

Propiedad DOM

Devuelve una referencia al XML DOM que se rellena con los datos XML de origen del formulario.

Propiedad Errors

Devuelve una referencia a la colección Errors.

Propiedad Extension

Devuelve una referencia a un objeto que representa todas las funciones y variables que contiene un archivo de código de formulario.

Propiedad IsDirty

Devuelve un valor Booleanbooleano que indica si se han realizado cambios en los datos del formulario.

Propiedad IsDOMReadOnly

Devuelve un valor Booleanbooleano que indica si el XML DOM es de sólo lectura.

Propiedad IsNew

Devuelve un valor Booleanbooleano que indica si el formulario se ha guardado después de su creación

Propiedad IsReadOnly

Devuelve un valor Booleanbooleano que indica si el formulario está en modo de sólo lectura

Propiedad IsSigned

Devuelve un valor Booleanbooleano que indica si el formulario está firmado digitalmente.

Propiedad Language

Especifica o devuelve el valor de cadena del lenguaje utilizado para el formulario.

Propiedad QueryAdapter

Devuelve una referencia al objeto adaptador de datos.

Propiedad Solution

Devuelve una referencia al objeto Solution.

Propiedad UI

Devuelve una referencia al objeto UI.

Propiedad URI

Devuelve un valor de cadena que contiene el identificador de recursos uniforme (URI) del formulario.

Propiedad View

Devuelve una referencia al objeto View.

Propiedad ViewInfos

Devuelve una referencia a la colección ViewInfos.

Uso de las interfaces XDocuments Collection y XDocument

El acceso a la interfaz XDocumentsCollection se obtiene a través de la propiedad XDocuments de la interfaz Application. En los proyectos de código administrado creados con el modelo de objetos compatible con InfoPath 2003, se puede tener acceso a la interfaz XDocumentsCollection mediante la variable thisApplication, de la que se crea una instancia en el método _StartUp del código de formulario del proyecto. En el siguiente ejemplo de código, se crea una variable que hace referencia a la interfaz XDocumentsCollection del proyecto actual.

XDocumentsCollection xdocs;
xdocs = thisApplication.XDocuments;

// Write code here to work with the XDocumentsCollection.
Dim xdocs As XDocumentsCollection
xdocs = thisApplication.XDocuments

' Write code here to work with the XDocumentsCollection.

En un proyecto de código administrado creado con el modelo de objetos compatible con InfoPath 2003, se puede obtener acceso a la interfaz XDocument mediante la variable thisXDocument, de la que se crea una instancia en el método StartUp del código de formulario del proyecto. En el siguiente ejemplo de código, se utiliza la variable thisXDocument para obtener acceso a la interfaz XDocument del proyecto para mostrar el URI del formulario que está actualmente abierto en un mensaje de alerta.

thisXDocument.UI.Alert(thisXDocument.URI);
thisXDocument.UI.Alert(thisXDocument.URI)

Nota

Cuando se utiliza una interfaz XDocument para tener acceso al documento XML subyacente de un formulario, se tiene acceso al documento XML asociado al formulario que esté abierto en ese momento.

Una propiedad clave de la interfaz XDocument es la propiedad DOM. Esta propiedad devuelve una referencia al XML DOM que contiene los datos XML de origen del formulario. Cuando se utiliza la propiedad DOM, es posible usar cualquiera de las propiedades y los métodos admitidos por el XML DOM. Por ejemplo, en el siguiente código se utiliza la propiedad xml del XML DOM para mostrar todo el contenido del documento XML subyacente de un formulario:

string xmldoc;
xmldoc = thisXDocument.DOM.xml;
// Display xml.
thisXDocument.UI.Alert(xmldoc);
Dim xmldoc As String
xmldoc = thisXDocument.DOM.xml
' Display xml.
thisXDocument.UI.Alert(xmldoc)

Nota

Para obtener más información sobre el XML y todas las propiedades y los métodos con los que es compatible, vea la documentación de MSXML 5.0 SDK en el sistema de Ayuda de Microsoft Script Editor (MSE).