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).