lunes, 30 de marzo de 2009

[Infopath] Mostrar un formulario desde un WebPart

Siguiendo con el post anterior “[Infopath] Orígenes de datos”, veremos como visualizar un formulario de Infopath desde un WebPart. Recordar que para poder renderizar un formulario necesitaremos de Infopath Services, además tendremos que haber habilitado la compatibilidad del formulario para que se pueda abrir en el explorador, desde la opciones del formulario > Compatibilidad > compatibilidad de explorador > marcaremos “Diseñe una plantilla de formulario que se pueda abrir en un explorador o infopath”.

Utilizaremos el WebPart “XmlFormView” que está alojado en la librería Microsoft.Office.InfoPath.Server.dll. Antes de poder agregarlo debemos asegurarnos que lo tenemos registrado correctamente como safecontrol, agregaremos en el fichero web.config la entrada:

<SafeControl Assembly="Microsoft.Office.InfoPath.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" Namespace="Microsoft.Office.InfoPath.Server.Controls" TypeName="*" Safe="True" />

A continuación iremos a la galería de elementos web en la configuración de nuestro sitio > seleccionaremos la opción “Nuevo” > marcaremos el webpart “Microsoft.Office.InfoPath.Server.Controls.XmlFormView” > Llenar galería. Esto hará que el webpart esté disponible para ser agregado desde cualquiera de las páginas de nuestra colección.

En la página que deseemos agregar el WP la editaremos y agregaremos el WP con título “XmlFormView”. La primera vez puede que nos muestre un error de infopath diciendo que no tenemos la plantilla adecuada, esto se debe a que todavía no lo hemos configurado y está intentando renderizar el formulario.

Editaremos entonces las propiedades del webpart añadido y en la sección “Enlace de datos” indicaremos el fichero xsn y la librería donde se guardarán los datos xml generados por el formulario.

En la propiedad XsnLocation indicaremos la ruta del fichero xsn, en mi caso he publicado desde Infopath el formulario de notas de gasto en una biblioteca de documentos de forma que la ruta queda: http://w2k3r2:17092/FormServerTemplates/EjemploNotasDeGastos.xsn

Si os aparece siempre el mensaje “Formulario cerrado” verificar el fichero de log de Sharepoint, que tenéis la url correctamente, que habéis indicado una ruta para SaveLocation y la propiedad “EditingStatus”. Aseguraros además que habéis publicado correctamente el formulario desde la administración central y lo habéis activado para la colección actual.


1 comentario:

Mario Cortés Flores dijo...

La estructura de campos para el contact selector debe ser la siguiente:

gpContactSelector
Person
DisplayName
AccountId
AccountType