Trabajar con Windows de Formulario mediante el modelo de objetos de InfoPath 2003
Cuando se trabaja con un formulario de InfoPath mediante programación, es posible escribir código para tener acceso a las ventanas del formulario y, a continuación, personalizar algunos de los elementos que contienen. El modelo de objetos compatible con InfoPath 2003 admite el acceso a las ventanas de los formularios mediante la interfaz WindowObject en asociación con la interfaz WindowsCollection .
Hay dos tipos de ventanas en InfoPath:
La ventana de edición, que se usa cuando un usuario rellena un formulario.
La ventana de diseño, que se usa cuando un usuario diseña una plantilla de formulario.
Cuando se escribe código en una plantilla de formulario, la ventana de edición es la que proporciona la funcionalidad más práctica, puesto que permite utilizar una instancia de WindowObject que haga referencia al mismo para tener acceso a gran variedad de propiedades y métodos para personalizar la experiencia de edición del formulario.
Información general sobre la interfaz WindowsCollection
La interfaz WindowsCollection proporciona las siguientes propiedades que los programadores de plantillas pueden utilizar para administrar las instancias de WindowObject que contiene.
Name | Descripción |
---|---|
Propiedad Count |
Devuelve el número de objetos Window que contiene una colección. |
Propiedad Item |
Devuelve una referencia al objeto Window especificado. NOTA: Visual C# accede a las colecciones mediante un indexador en lugar de llamar a la propiedad Item . Por ejemplo, thisApplication.Windows[0].Caption . |
Información general del objeto Window
La interfaz WindowObject proporciona el método y las propiedades siguientes que los programadores de formularios pueden utilizar para interactuar con una ventana de InfoPath. La compatibilidad con estos métodos y propiedades varía según el tipo de ventana ( XdWindowType ) con el que se esté trabajando. Algunos métodos y propiedades sólo funcionan con el tipo de ventana de editor (XdWindowType.xdEditorWindow). Los demás métodos y propiedades funcionan tanto con el tipo de ventana de editor como con el tipo de ventana de diseñador (XdWindowType.xdDesignerWindow). Asimismo, como sucede con todos los miembros del modelo de objetos de InfoPath, cuando se llama desde una plantilla de formulario, la compatibilidad con métodos y propiedades varía según el nivel de seguridad y la forma en que se haya implementado el formulario.
Name | Descripción | Compatibilidad con el tipo de ventana |
---|---|---|
Método Activate |
Designa la ventana como la que está activa en ese momento. | Tanto el tipo xdDesignWindow como el tipo xdEditorWindow |
Active (propiedad) |
Devuelve un valor Boolean que indica si la ventana es la que está activa en ese momento | Los tipos xdDesignWindow y xdEditorWindow |
Propiedad Caption |
Propiedad de lectura y escritura que devuelve o establece el texto del título de la ventana representada por el objeto Window. | Sólo el tipo xdEditorWindow |
Método Close |
Cierra una ventana. | Sólo el tipo xdEditorWindow |
CommandBars (propiedad) |
Devuelve una referencia al objeto CommandBars de Microsoft Office. | Los tipos xdDesignWindow y xdEditorWindow |
Height (propiedad) |
Una propiedad de lectura y escritura del tipo de entero largo que especifica el alto de la ventana representada por el objeto Window se mide en puntos. | Los tipos xdDesignWindow y xdEditorWindow |
Left (propiedad) |
Una propiedad de lectura y escritura del tipo de entero largo que especifica la posición horizontal de la ventana representada por el objeto Window se mide en puntos. | Los tipos xdDesignWindow y xdEditorWindow |
MailEnvelope (propiedad) |
Devuelve una referencia al objeto MailEnvelopeObject . | Sólo el tipo xdEditorWindow |
TaskPanes (propiedad) |
Devuelve una referencia a la colección TaskPanesCollection . | Los tipos xdDesignWindow y xdEditorWindow |
Top (propiedad) |
Una propiedad de lectura y escritura del tipo de entero largo que especifica la posición vertical de la ventana representada por el objeto Window se mide en puntos. | Los tipos xdDesignWindow y xdEditorWindow |
WindowType (propiedad) |
Devuelve un número que indica el tipo de la ventana, según la enumeración XdWindowType . | Los tipos xdDesignWindow y xdEditorWindow |
Width (propiedad) |
Una propiedad de lectura y escritura del tipo de entero largo que especifica el ancho de la ventana representada por el objeto Window, se mide en puntos. | Los tipos xdDesignWindow y xdEditorWindow |
WindowState (propiedad) |
Propiedad de lectura y escritura del tipo XdWindowState que devuelve o establece el estado de la ventana representada por el objeto Window . | Los tipos xdDesignWindow y xdEditorWindow |
XDocument (propiedad) |
Devuelve una referencia al objeto _XDocument asociado a la ventana. | Sólo el tipo xdEditorWindow |
Uso de las interfaces WindowsCollection y Window
El acceso a la interfaz WindowsCollection se puede obtener a través de la propiedad Windows de la interfaz Application . Al utilizar la interfaz WindowsCollection para obtener acceso a las ventanas de un formulario, se utiliza un indizador (en Visual C#) o se transmite un número entero largo a la propiedad Item (en Visual Basic) para devolver una referencia a una instancia de la interfaz WindowObject. Por ejemplo, el código siguiente establece una referencia a la primera interfaz WindowObject contenida en la interfaz WindowsCollection.
WindowObject objWindow = thisApplication.Windows[0];
Dim objWindow As WindowObject = thisApplication.Windows(0)
Sin embargo, puede acceder directamente a la ventana abierta actualmente mediante la propiedad ActiveWindow de la interfaz Application , sin pasar por WindowsCollection, como se muestra en el código siguiente.
WindowObject objWindow = thisApplication.ActiveWindow;
Dim objWindow As WindowObject = thisApplication.ActiveWindow
Nota:
[!NOTA] Al depurar un proyecto de código administrado de InfoPath, la propiedad ActiveWindow devuelve siempre el valor null porque la ventana de depuración está activa.
El acceso a la interfaz WindowObject se puede obtener mediante la propiedad Window de la interfaz View , que está asociada al documento XML subyacente del formulario. La propiedad View de la interfaz XDocument se utiliza para obtener acceso al objeto View. Por ejemplo, el código siguiente establece una referencia a la interfaz WindowObject asociada a la vista del documento XML subyacente de un formulario:
WindowObject objWindow = thisXDocument.View.Window;
Dim objWindow As WindowObject = thisXDocument.View.Window
Nota:
[!NOTA] Algunos de los métodos y las propiedades del objeto Window se utilizan sólo para editar el tipo de ventana; si se utilizan con el tipo de ventana de diseño, devolverán un error. Los métodos y propiedades que admite cada tipo de ventana se muestran en la tabla anterior. Puede utilizar la propiedad WindowType en el código para averiguar con qué tipo de ventana está trabajando.