Share via


Novedades para programadores de InfoPath

En Microsoft Office InfoPath 2007 se han agregado muchas características y mejoras muy interesantes para los programadores. La más importante de todas ellas es la adición de un nuevo modelo de objetos de código administrado, más claro y más integrado en .NET Framework. La lógica empresarial escrita en este nuevo modelo de objetos funciona igual en una plantilla de formulario abierta en Office InfoPath 2007 que en una plantilla de formulario abierta en un explorador Web.

Por otra parte, en Office InfoPath 2007 se ha integrado un nuevo entorno de desarrollo para trabajar con la lógica empresarial escrita en código administrado, denominado Microsoft Visual Studio Tools para aplicaciones (VSTA).

Microsoft Office Forms Server 2007, y la misma funcionalidad de formularios denominada InfoPath Forms Services disponible en Microsoft Office SharePoint Server 2007, ofrece la manera de implementar una plantilla de formulario de InfoPath en un servidor, de forma que los usuarios que no dispongan de Office InfoPath 2007 pueden abrir y rellenar formularios de InfoPath con un explorador Web.

Con la lógica empresarial escrita en el nuevo modelo de objetos de código administrado, y trabajando con las características de comprobación del diseño del modo de diseño de InfoPath, puede crear una única plantilla de formulario e implementarla en Microsoft Office Forms Server 2007 o en una biblioteca de documentos con la configuración correcta en Office SharePoint Server 2007 con InfoPath Forms Services. La plantilla de formulario se podrá ejecutar en InfoPath y en un explorador Web. El conjunto de características del cliente de InfoPath y InfoPath Forms Services que permite trabajar con este tipo de diseño e implementación se conoce como diseño una sola vez.

Características y mejoras

En las secciones siguientes se describen brevemente las nuevas características y las mejoras de Office InfoPath 2007 de interés para los programadores de InfoPath:

  • Nuevos entornos de modelo de objetos de código administrado y de desarrollo

  • Compatibilidad con complemento COM

  • Convertidores de plantillas de formulario

  • Importadores de datos personalizados

  • Ver los Id. de control en la interfaz de usuario del modo de diseño

  • Compatibilidad con bibliotecas de conexiones de datos

  • Eventos XML

  • Elementos de plantilla

  • Editor de InfoPath alojado como control.

Nuevos entornos de modelo de objetos de código administrado y de desarrollo

Office InfoPath 2007 proporciona un nuevo modelo de objetos de código administrado con un conjunto de funciones principales para crear lógica empresarial personalizada en plantillas de formulario. Si se implementa en Microsoft Office Forms Server 2007 o en una biblioteca de documentos con la configuración correcta en Office SharePoint Server 2007, la lógica empresarial creada con este nuevo modelo de objetos se puede ejecutar en un explorador Web y en Office InfoPath 2007. Si se desea, se puede escribir lógica empresarial que utilice un nivel de funcionalidad adicional disponible a partir de este modelo de objetos y que sólo se podrá ejecutar en las plantillas de formulario que se abran para su edición en Office InfoPath 2007.

Para escribir lógica empresarial que se pueda ejecutar al abrir un formulario en un explorador Web o en Office InfoPath 2007, active la casilla de verificación Activar solamente funciones compatibles con el explorador del cuadro de diálogo Diseñar un formulario cuando cree una plantilla de formulario. Para escribir lógica empresarial que pueda usar las funciones adicionales sólo cuando se abra en Office InfoPath 2007, desactive la casilla de verificación Activar solamente funciones compatibles con el explorador cuando cree una plantilla de formulario. También puede cambiar esta configuración después de haber creado una plantilla de formulario, para lo que debe hacer clic en Cambiar configuración de compatibilidad en el panel de tareas Verificador de diseño.

Office InfoPath 2007 ofrece dos opciones nuevas para desarrollar plantillas de formulario con lógica empresarial escrita en código administrado:

  • El entorno de diseño Microsoft Visual Studio Tools para aplicaciones (VSTA), integrado en InfoPath de forma parecida al entorno del Editor de Visual Basic que utilizan otras aplicaciones de Office. VSTA es un entorno de desarrollo ligero basado en la funcionalidad de Visual Studio.

  • La integración del modo de diseño de InfoPath en Visual Studio Tools for Office, que le permite diseñar una plantilla de formulario de InfoPath y escribir lógica empresarial en código administrado sin salir del entorno de Visual Studio.

Para obtener más información sobre el nuevo modelo de objetos y los entornos de desarrollo, vea Comprender los modelos de objetos y los entornos de desarrollo de InfoPath 2007.

Compatibilidad con complemento COM

Office InfoPath 2007 es compatible con la creación y registro de complementos COM utilizando un modelo de desarrollo muy parecido al de otras aplicaciones de Office como Word y Excel. La compatibilidad de InfoPath con complementos COM admite la interfaz IDTExtensibility2 para implementar métodos que actúan como controladores de eventos para reaccionar ante las situaciones de inicio y cierre de InfoPath. El objeto ApplicationEvents se ha agregado al modelo de objetos COM de InfoPath para proporcionar compatibilidad con eventos de las aplicaciones, por ejemplo, los eventos WindowActivate y XDocumentOpen, que permiten crear controladores de eventos en el complemento COM para la ventana de formulario y los eventos de docuemntos InfoPath.

Para crear un complemento COM de InfoPath, debe implementar los cinco eventos de la interfaz IDTExtensibility2. Para obtener más información sobre la interfaz IDTExtensibility2, busque "IDTExtensibility2" en MSDN.

Una vez que ha creado un complemento, debe registrarlo en la subclave del Registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\InfoPath\AddIns\ y definir los valores FriendlyName, Description y LoadBehavior.

Los complementos COM de InfoPath se pueden cargar de manera predeterminada al iniciar la aplicación o se pueden utilizar desde el cuadro de diálogo Complementos COM. Para mostrar el cuadro de diálogo Complementos COM, en el menú Herramientas, haga clic en Complementos COM.

Convertidores de plantillas de formulario

InfoPath 2003 Service Pack 1 y posteriores proporcionan un marco de trabajo para crear una plantilla de formulario importando el diseño de otro tipo de formulario electrónico. Office InfoPath 2007 proporciona un convertidor para crear una plantilla de formulario de InfoPath a partir del diseño de un formulario creado en un documento de Microsoft Office Word o un libro de Microsoft Excel. Para iniciar el proceso de importación del diseño de un formulario creado en Word o Excel, haga clic en Importar formulario en el menú Archivo para que se muestre el Asistente para importación.

En Office InfoPath 2007 se ha ampliado este marco de trabajo para admitir la creación e instalación de convertidores personalizados para exportar el diseño de una plantilla de formulario de InfoPath a otro tipo de formulario electrónico. Una vez que se ha instalado un convertidor para exportación personalizado, los usuarios pueden abrir una plantilla de formulario de InfoPath en modo de diseño y, a continuación, hacer clic en el comando Exportar plantilla de formulario del menú Archivo para exportar el diseño del formulario a otro tipo de formulario electrónico.

Interfaces de convertidor

En los convertidores de plantillas de formulario se especifica una lista de los tipos de archivo que admiten. Los convertidores procesan esos tipos de archivo y producen una plantilla de formulario de InfoPath con archivos de manifiesto (.xsf), vista (.xsl) y otros archivos que forman un archivo de plantilla de formulario de (.xsn) InfoPath.

Un convertidor de plantillas de formulario de InfoPath es un componente de automatización COM estándar que implementa las interfaces IFormTemplateConverter y IFormTemplateConverter2. La implementación de la interfaz IFormTemplateConverter proporciona compatibilidad con Microsoft InfoPath 2003. La interfaz IFormTemplateConverter2 proporciona funciones adicionales para los usuarios de Office InfoPath 2007. Para que se exponga en el modo de diseño de InfoPath, el convertidor debe proporcionar también cierta información básica sobre sí mismo en el Registro:

  • Nombre para mostrar

  • Descripción detallada

  • Lista de extensiones de archivo que admite el convertidor

La biblioteca de vínculos dinámicos IPDESIGN.DLL, que está en la carpeta C:\Archivos de programa\Microsoft Office\Office12, proporciona las interfaces IFormTemplateConverter, IFormTemplateConverter2, IConversionManager y IConversionManager2 para crear convertidores de diseño de formularios personalizados.

Automatización de convertidores

Los convertidores de plantillas de formulario se pueden automatizar para facilitar la importación o exportación masiva de varias plantillas de formulario. Para automatizar un convertidor, se usan los métodos implementados por el convertidor. Por ejemplo, en el siguiente fragmento de código JScript se demuestra cómo automatizar el importador de formularios de Microsoft Office de manera que importe "sample.doc":

var oConverter = new ActiveXObject("InfoPath.DesignerWordImport.2");
var strSourcePath = "c:\\temp\\sample.doc";
var strDestPath = "c:\\temp\\sampleOutput\\"

oConverter.Initialize();
try
{
   oConverter.SetLcid(1033);
   var strMessage = oConverter.Import(strSourcePath, strDestPath, true);
}
catch(e)
{
   WScript.Echo("Error: " + e.message);
}

WScript.Echo("Result was: " + strMessage);

oConverter.UnInitialize();

Importadores de datos personalizados

Office InfoPath 2007 proporciona un marco de trabajo para crear importadores personalizados para importar datos de otros tipos de formularios y documentos electrónicos, así como formularios y documentos impresos que se escaneen electrónicamente con software de reconocimiento óptico de caracteres (OCR). Para abrir el cuadro de diálogo Importar datos de formulario, haga clic en Rellenar un formulario en el menú Archivo, seleccione el formulario que desee rellenar y, a continuación, haga clic en Importar datos de formulario en el menú Archivo.

La biblioteca de vínculos dinámicos IPEDITOR.DLL, que está en la carpeta C:\Archivos de programa\Microsoft Office\Office12, proporciona las interfaces IInfoPathDataImporter, IInfoPathDataImporterFields, IInfoPathViewControl y IPropertyBag, que se deben implementar para crear importadores de datos personalizados.

Ver los Id. de control en la interfaz de usuario del modo de diseño

A partir de ahora, puede determinar el identificador ViewContext para los controles de un formulario de InfoPath en el modo de diseño; para ello, debe abrir el cuadro de diálogo Propiedades del control y, a continuación, hacer clic en la ficha Avanzadas. El ViewContext del control actual se muestra en la sección Código de la ficha Avanzadas.

Compatibilidad con bibliotecas de conexiones de datos

La biblioteca de conexiones de datos es una lista almacenada en un servidor de Office SharePoint Server 2007 o Office Forms Server 2007 que contiene archivos de conexiones de datos. Los archivos de conexiones de datos almacenados en una biblioteca de conexiones de datos pueden ser un archivo de conexiones de datos de Office (OCD), utilizado por Excel, o un archivo de conexiones de datos universal V2 (UDC), utilizado por Office InfoPath 2007. Cada archivo UDC contiene una configuración de conexión de datos que se puede utilizar en una plantilla de formulario de InfoPath.

Los archivos UDC de las bibliotecas de conexiones de datos se pueden usar para definir una conexión de datos para una plantilla de formulario de usuario (una plantilla de formulario implementada por el usuario que no contiene código ni otras características que requieran la aprobación del administrador). Todos los archivos UDC agregados a una biblioteca de conexiones de datos requieren la aprobación de un administrador de la colección de sitios para poder ser utilizados. También hay otro almacén centralizado de archivos, controlado por el administrador del conjunto de servidores y que sólo se puede utilizar con plantillas de formulario aprobadas por el administrador (plantillas de formulario que contienen código y otras características que requieren la aprobación del administrador).

Una plantilla de formulario de usuario debe cumplir dos condiciones para poder establecer una conexión entre dominios con un origen de datos:

  1. El administrador del conjunto de servidores debe habilitar las conexiones de datos entre dominios para las plantillas de formulario de usuario en todo el conjunto de servidores.

  2. Todas las conexiones de datos entre dominios deben estar definidas en la biblioteca de conexiones de datos.

De manera predeterminada, los elementos de la biblioteca de conexiones de datos requieren la aprobación del administrador del sitio para que InfoPath los utilice.

Al publicar en un servidor de Office SharePoint Server 2007 o Office Forms Server 2007, el diseñador de un formulario puede elegir una o varias de las conexiones especificadas en los archivos UDC de una biblioteca de conexiones de datos del servidor de la misma colección de sitios. Para los formularios basados en servidor, los archivos deben encontrarse en el servidor en el que se publicará el formulario. Los archivos UDC pueden contener información específica del servidor, por ejemplo, información sobre la autenticación o un vínculo a una conexión específica de un servidor.

Al diseñar una plantilla de formulario y crear una conexión de datos con una conexión de datos de una biblioteca, InfoPath pone un vínculo al archivo UDC en el archivo de manifiesto (.xsf) de la plantilla de formulario. La configuración de la conexión se recuperará de la biblioteca de conexiones de datos en tiempo de ejecución. Así, los administradores de los servidores pueden cambiar la configuración de la conexión una vez que se ha implementado el formulario.

Especificar una conexión de una biblioteca de conexiones de datos en una plantilla de formulario existente

  1. Abra la plantilla de formulario en modo de diseño.

  2. En el menú Herramientas, haga clic en Conexiones de datos.

  3. Haga clic en Agregar para iniciar el Asistente para la conexión de datos, haga clic en Buscar conexiones en un servidor de Microsoft Office SharePoint Server y, a continuación, haga clic en Siguiente.

Especificar una conexión de una biblioteca de conexiones de datos al crear un formulario en blanco

  1. En el menú Archivo, haga clic en Diseñar un formulario.

  2. En el cuadro de diálogo Diseñar un formulario, haga clic en el icono Biblioteca de conexiones.

Especificar una conexión de una biblioteca de conexiones de datos para un control cuadro de lista (List Box), cuadro de lista desplegable (Drop-Down List Box) o cuadro combinado (ComboBox)

  1. Abra la plantilla de formulario en modo de diseño.

  2. Abra el cuadro de diálogo Propiedades del control.

  3. En la ficha Datos, haga clic en Buscar valores de un origen de datos externo y, a continuación, en Agregar.

  4. Haga clic en Buscar conexiones en un servidor de Microsoft Office SharePoint Server y, a continuación, en Siguiente.

Especificar una conexión de datos de una biblioteca de conexiones de datos al configurar las opciones de envío de una plantilla de formulario

  1. Abra la plantilla de formulario en modo de diseño.

  2. En el menú Herramientas , haga clic en Opciones de envío.

  3. Active la casilla de verificación Permitir a los usuarios enviar este formulario.

  4. Haga clic en Conexión desde una biblioteca de conexión de datos en la lista desplegable.

  5. Haga clic en Agregar para iniciar el Asistente para la conexión de datos.

Especificar una conexión de datos de una biblioteca de conexiones de datos al configurar una plantilla de formulario para enviarla a un servidor Web mediante el método HTTP Post

  1. Abra la plantilla de formulario en modo de diseño.

  2. En el menú Herramientas , haga clic en Opciones de envío.

  3. Active la casilla de verificación Permitir a los usuarios enviar este formulario.

  4. Haga clic en Enviar datos del formulario a un único destino y, a continuación, seleccione Servidor Web (HTTP) en la lista desplegable.

  5. Haga clic en Modificar.

  6. En el cuadro de diálogo Enviar al servidor Web, haga clic en Conexión de Office Server y, a continuación, en Conexión al servidor.

Configuración de la autenticación de la biblioteca de conexiones de datos en el servidor de Office SharePoint Server

Un administrador de servidores puede controlar cómo se llevan a cabo ciertas características de autenticación para las conexiones especificadas en una biblioteca de conexiones de datos de Office SharePoint Server 2007 o Office Forms Server 2007. En la siguiente tabla se enumeran las opciones de conexiones de datos que se establecen en Administración central de SharePoint 3.0, en la página Administración de aplicaciones, haciendo clic en Configurar los servicios de formulario de InfoPath.

Opción Descripción

Solicitar SSL para autenticación HTTP en orígenes de datos

Los formularios que se conecten a orígenes de datos de servidor, como los Servicios Web, pueden tener que conectarse mediante la autenticación básica o implícita, que requiere que se envíe una contraseña a través de la red. Active esta casilla de verificación para solicitar una conexión cifrada SSL para estos tipos de autenticación. El valor predeterminado es True (activada).

Permitir la autenticación de SQL incrustada

Los formularios que se conecten a bases de datos de Microsoft SQL Server pueden incrustar el nombre de usuario y la contraseña del servidor SQL en la cadena de conexión. La cadena de conexión se puede leer en texto sin cifrar en el archivo UDC asociado a la plantilla de formulario o en el archivo manifest.xsf de la plantilla de formulario. Desactive esta casilla de verificación para que lo formularios no utilicen las credenciales de SQL incrustadas. El valor predeterminado es False(desactivada).

Permitir que las plantillas de formulario de usuario usen la información de autenticación de los archivos de conexión de datos

Los archivos de conexiones de datos (UDC) pueden contener otra información de autenticación, por ejemplo, una nombre de usuario y contraseña explícitos o un Id. de aplicación de inicio de sesión único. Active esta casilla de verificación para que las plantillas de formulario de usuario usen esta información de autenticación de los archivos UDC. El valor predeterminado es False(desactivada).

Permitir el acceso a datos entre dominios a usuarios de plantillas de formulario que usan configuración de conexión en un archivo de conexión de datos

Las plantillas de formulario de usuario pueden contener conexiones de datos en archivos de conexión de datos que tengan acceso a datos de otro dominio. Active esta casilla de verificación para que las plantillas de formulario de usuario puedan tener acceso a datos de otros dominios. El valor predeterminado es False(desactivada).

Eventos XML

Cuando los usuarios trabajan con una plantilla de formulario creada con Office InfoPath 2007 que se ha implementado en Office Forms Server 2007 o Office SharePoint Server 2007, InfoPath almacena y manipula los datos del formulario en la memoria mediante uno de dos métodos posibles, en función de cómo se abrió la plantilla de formulario:

  • Si la plantilla de formulario se abre en InfoPath, se usa el objeto DOMDocument de Microsoft XML Core Services 5.0 (MSXML5).

  • Cuando la plantilla de formulario se abre en un explorador Web, se usa la clase XmlDocument de Microsoft .NET Framework 2.0.

Si se usan los métodos de la clase XPathNavigator junto con las clases y miembros del nuevo modelo de objetos de Microsoft.Office.InfoPath, los programadores de plantillas de formulario pueden escribir funciones y subrutinas con código administrado que tienen acceso a los datos XML de estos dos almacenes, y los actualizan. Los eventos XML permiten a los programadores, mediante programación, cancelar, agregar validación y definir efectos secundarios para operaciones como Insert, Delete y ValueChange en nodos XML.

Office InfoPath 2007 proporciona tres eventos XML esenciales al trabajar con el nuevo modelo de objetos de código administrado: son los eventos Changing, Validating y Changed.

Nota

El evento Changing sólo se admite en la lógica empresarial de una plantilla de formulario abierta con Office InfoPath 2007. El evento Changing no se admite en las plantillas de formulario habilitadas para explorador que se abran en un explorador Web.

Crear un controlador de eventos para el evento Changing, Validating o Changed de un control

  1. Abra la plantilla de formulario en modo de diseño.

  2. Haga clic con el botón secundario en el control, haga clic en Programación y, a continuación, haga clic en el evento con el que desea trabajar.

Se abrirá el entorno Microsoft Visual Studio Tools para aplicaciones (VSTA) (o Visual Studio 2005 si se dispone de él y de Microsoft Visual Studio 2005 Tools para 2007 Microsoft Office System o en Visual Studio 2008 con Visual Studio Tools para Office) y se creará un esqueleto de controlador de eventos parecido al ejemplo siguiente para el evento Changed en C#:

public void field1_Changed(object sender, XmlEventArgs e)
{
   // Write code here to change data outside the Main Data Object
   // such as other Data Objects and member variables.
   if (e.UndoRedo)
   {
      // InfoPath will handle all undo and redo operations that change
      // the Main Data Object, so there is nothing left for custom code
      // to do.
      return;
   }
    // Write code here to change the Main Data Object.
}

Para obtener más información sobre cómo crear controladores de eventos, vea Cómo agregar un controlador de eventos. Para obtener más información sobre cómo trabajar con XML mediante el nuevo modelo de objetos de código administrado, vea Cómo: Trabajar con las clases XPathNavigator y XPathNodeIterator.

Enlazar eventos mediante delegados

Al utilizar el nuevo modelo de objetos de código administrado, Office InfoPath 2007 enlaza los eventos a los controladores de eventos mediante delegados. Tenga en cuenta que aunque InfoPath usa delegados para enlazar los eventos, la funcionalidad es un subconjunto del uso normal de código administrado. En concreto, InfoPath usa delegados para el enlace de eventos estático. El enlace sólo puede tener lugar en el método InternalStartup, que se ejecuta cuando se carga el formulario. Si se declaran delegados para enlazar eventos en cualquier otra parte del código, se produce una excepción en tiempo de ejecución.

A continuación se muestra el código C# generado por InfoPath al agregar controladores de eventos para el evento Changed de field1 y el evento Validating de field2. Observe que el código de enlace de eventos para el controlador de eventos se agrega al método InternalStartup mediante los delegados XmlChangedEventHandler y XmlValidatingEventHandler.

using System;
using Microsoft.Office.InfoPath;

namespace Template1
{
   public partial class FormCode
   {
      public void InternalStartup()
      {
         EventManager.XmlEvents["/my:myFields/my:field1"].Changed += new XmlChangedEventHandler(field1_Changed);
         EventManager.XmlEvents["/my:myFields/my:field2"].Validating += new XmlValidatingEventHandler(field2_Validating);
      }

      public void field1_Changed(object sender, XmlEventArgs e)
      {
         // Code for Changed event goes here.
      }

      public void field2_Validating(object sender, XmlValidatingEventArgs e)
      {
         // Code for Validating event goes here.
      }
   }
}

Importante

InfoPath genera el método InternalStartup y el código de enlace de eventos que contiene cuando se agregan controladores de eventos mediante diversos comandos de la interfaz de usuario al diseñar la plantilla de formulario. No debe crear el método InternalStartup ni agregar código adicional en él. Para obtener información sobre cómo agregar controladores de eventos, vea Cómo agregar un controlador de eventos.

Elementos de plantilla

A partir de ahora, los diseñadores de formularios pueden crear bibliotecas de elementos de formulario, denominados elementos de plantilla, que pueden contener controles, diseño, esquema, reglas y cálculos. Los elementos de plantilla se pueden implementar en un repositorio compartido, o localmente, en un grupo de equipos, de forma que uno o varios diseñadores de formularios pueden usarlos en un diseño modular de otras plantillas de formulario. Por ejemplo, si dispone de un conjunto de plantillas de formulario con la misma sección de encabezado, puede usar los elementos de plantilla para diseñar dicha sección una vez y, después, insertarla en cada una de las plantillas.

Además, más adelante puede actualizar el diseño de un elemento de la plantilla y volverlo a guardar en el repositorio compartido. Cuando el diseñador de formularios vuelva a abrir una plantilla de formulario con la versión antigua del elemento de plantilla, InfoPath le indicará que hay una versión actualizada de dicho elemento y le ofrecerá la posibilidad de actualizarlo.

Puesto que algunas características de diseño de InfoPath no se pueden usar en los elementos de plantilla, disponen de un modo de diseño especial. Si guarda un elemento de plantilla en el repositorio compartido, pasa a estar disponible en la sección Controles personalizados del panel de tareas Controles en el modo de diseño de plantillas de formulario. Si crea un elemento de plantilla y lo guarda localmente, debe usar el comando Agregar o quitar controles personalizados para agregar dicho elemento al panel de tareas Controles.

Crear un elemento de plantilla

  1. En el menú Archivo, haga clic en Diseñar un formulario.

  2. En el cuadro de diálogo Diseñar un formulario, haga clic en Programación.

  3. En Basado en, haga clic en el icono del origen de datos en que desea basar el elemento de plantilla y, a continuación, haga clic en Aceptar.

  4. Diseñe el elemento de plantilla como diseñaría cualquier otra plantilla de formulario, insertando el diseño, los controles, las reglas y la validación de datos. También puede agregar conexiones de datos para permitir que los controles Cuadro de lista desplegable, Cuadro combinado o Cuadro de lista se rellenen automáticamente.

  5. Para guardar el elemento de plantilla, haga clic en Guardar en el menú Archivo. El nombre para mostrar del elemento de plantilla será el nombre de archivo del archivo en que se guarde.

  6. Si está utilizando InfoPath y el entorno de desarrollo Microsoft Visual Studio Tools para aplicaciones (VSTA), en el panel de tareas Controles, haga clic en Agregar o quitar controles personalizados, en Agregar y, a continuación, busque el archivo de elementos de plantilla de InfoPath (.xtp) que ha guardado.

    Si está utilizando Visual Studio integrado con el modo de diseño de InfoPath, haga clic con el botón secundario en el Cuadro de herramientas y, a continuación, haga clic en Elegir elementos, en Agregar y, finalmente, busque el archivo de elementos de plantilla de InfoPath (.xtp) que ha guardado.

Usar un elemento de plantilla

  1. Cree una plantilla de formulario y abra el panel de tareas Controles.

  2. Desplácese hasta los controles Personalizados y arrastre el elemento de plantilla al formulario.

    Nota

    Si está utilizando Visual Studio integrado con el modo de diseño de InfoPath, los elementos de plantilla se enumeran al final de la sección InfoPath del Toolbox.

Puede trabajar con la plantilla de formulario y el elemento de plantilla que contiene igual que lo haría al diseñar un formulario sin ningún elemento de plantilla. Todos los controles y la lógica empresarial se pueden editar. También puede editar el elemento de plantilla en su archivo original y observará que, en los lugares que se había insertado en otras plantillas de formulario, el elemento de plantilla indicará que existe una versión más reciente.

Nota

Si guarda elementos de plantilla actualizados en el repositorio compartido, debe cerrar y volver a abrir las plantillas de formulario en que había insertado un elemento de plantilla para que se le notifique que existe una versión más reciente. Si guarda elementos de plantilla actualizados en una carpeta local, debe volver a instalar el elemento de plantilla en todos los equipos que lo compartan.

Editor de InfoPath alojado como control.

La funcionalidad de edición de InfoPath se ha convertido en un conjunto de propiedades y métodos que se exponen mediante el objeto InfoPathEditorObject de la biblioteca de vínculos dinámicos IPEDITOR.DLL. Estas propiedades y métodos permiten alojar un subconjunto de características de edición de InfoPath de otra aplicación como control de ActiveX o control de formulario Windows Form administrado.

El programa de instalación de InfoPath instala también el ensamblado Microsoft.Office.InfoPath.FormControl.dll, que se encuentra en la carpeta C:\Archivos de programa\Microsoft Office\Office12, que contiene el modelo de objetos COM del objeto InfoPathEditorObject para usar el control en formularios Windows Forms y otras aplicaciones .NET.

En la tabla siguiente se resumen las propiedades y métodos que proporciona el objeto InfoPathEditor:

Miembros Descripción

Método CloseDocument

Cierra el documento XML abierto.

Propiedad DataConnectionBaseURL

Obtiene o establece la dirección URL usada para las conexiones de datos.

Método FlushDocument

Guarda o vacía el documento cargado.

Propiedad Host

Obtiene o establece el objeto usado para obtener acceso al modelo de objetos de la aplicación host. Su valor predeterminado es null.

Propiedad HostName

Obtiene o establece el nombre de la aplicación host.

Método Load

Carga el documento XML especificado desde el sistema de archivos en función de una dirección URL del nombre de archivo. El archivo XML proporcionado debe contener instrucciones de procesamiento (atributos href y name) que hagan referencia a la plantilla de formulario utilizada para cargar y editar el archivo XML.

Método LoadFromStream

Carga el documento XML especificado desde una secuencia (IStream).

Método NewFromSolution

Crea un nuevo documento de formulario de InfoPath en función de la dirección URL de la plantilla de formulario especificada.

Método NewFromSolutionWithData

Crea un nuevo documento de formulario de InfoPath utilizando los datos XML especificados como IStream y una dirección URL del archivo de plantilla de formulario. Cuando se usa este método, el archivo XML no tiene que contener instrucciones de procesamiento que hagan referencia a la plantilla de formulario utilizada para cargar y editar el archivo.

Método SetInitEventHandler

Establece la función de la aplicación host que se usa como función de devolución de llamada para el evento Initialize, al que se llama antes que al evento OnLoad de InfoPath.

Método SetSubmitToHostEventHandler

Establece la función de la aplicación host que se usa como función de devolución de llamada al enviar datos de vuelta a la aplicación host. Para configurar la conexión de datos para el envío a la aplicación host, abra la plantilla de formulario en el modo de diseño de InfoPath, haga clic en Opciones de envío en el menú Herramientas, active la casilla de verificación Permitir a los usuarios enviar este formulario, seleccione Entorno de host en la lista desplegable y, a continuación, haga clic en Agregar.

Propiedad XDocument

Obtiene un objeto XDocument para trabajar con miembros del modelo de objetos de InfoPath.

NotaNota:
Si está trabajando con el ensamblado Microsoft.Office.InfoPath.FormControl, esta propiedad se llama XmlForm y obtiene un objeto XmlForm para trabajar con miembros del modelo de objetos de InfoPath.

Las barras de herramientas y de menús de InfoPath no se proporcionan con el objeto InfoPathEditor; sin embargo, todos los comandos de los menús y los paneles de tareas del editor de InfoPath se exponen a través de la interfaz IOLECommandTarget. La aplicación host puede ejecutar dichos comandos a través de esa interfaz, lo que permite a los programadores reproducir esta funcionalidad completa o parcialmente, o no reproducirla en absoluto, según convenga.

Para obtener información sobre el trabajo con los comandos de InfoPath mediante la interfaz IOLECommandTarget, consulte el artículo titulado "Hosting the InfoPath Form Editing Environment in a Custom WinForm Application" (en inglés), que contiene un vínculo a un ejemplo de proyecto de Visual Studio, en InfoPath Developer Portal en MSDN.

Agregar el control Editor de InfoPath a una aplicación de Windows Forms

  1. Inicie Microsoft Visual Studio.

  2. Cree un proyecto de Aplicación para Windows.

  3. Agregue FormControl de InfoPath al Cuadro de herramientas como un componente .NET Framework (el ensamblado Microsoft.Office.InfoPath.FormControl.dll se encuentra en C:\Archivos de programa\Microsoft Office\Office12).

  4. Arrastre el control FormControl al formulario de Windows.

  5. Arrastre un control Botón al formulario de Windows.

  6. Escriba un controlador de eventos para el evento Click para el control Botón que cargue un archivo XML de formulario de InfoPath en el control FormControl (por ejemplo, formControl1.New(@"C:\hello.xml");)

  7. Genere y ejecute la aplicación.

Se supone que existe un archivo XML de InfoPath denominado "hello.xml" en C:\hello.xml. Para poder usar el método New que se usa en este ejemplo, el archivo XML debe tener referencias a instrucciones de procesamiento con los atributos href y name que especifiquen un archivo de plantilla de formulario (.xsn) de InfoPath en el encabezado. Si no es posible, se puede usar el método NewFromFormTemplate(string, System.IO.Stream,Microsoft.Office.InfoPath.XmlFormOpenMode) para cargar el XML desde System.IO.Stream, o el método NewFromFormTemplate(string) si se tiene un archivo .xsn y un archivo XML con la estructura adecuada, pero no tiene referencias a instrucciones de procesamiento que especifiquen el archivo .xsn. El método NewFromFormTemplate del objeto FormControl corresponde a los métodos NewFromSolution y LoadFromStream del objeto InfoPathEditorObject.

Vea también

Otros recursos

Crear plantillas de formulario con código administrado de InfoPath
Programar plantillas de formulario con código administrado mediante el modelo de objetos de InfoPath 2003