Uno de los problemas mas fastidiosos de cuando tenemos un InfoPath dentro de una pagina web customizada en un sitio de SharePoint es cuando cerramos el formulario y nos muestra el tipico texto de:
Se ha cerrado el formulario.
Dando miles de vueltas al asunto encontre una opción, no la mas optima como siempre sucede en proyectos de sharepoint, pero al final una opción que hace que nos desaparezca ese mensaje y nos haga un redirect a la pagina que deseamos.
Primero bajar el InfoPath view webpart creado por Marwan Tarek en su blog, descargarlo de aqui: http://www.sharepointblogs.com/files/folders/marwantarek/entry13087.aspx
Primero bajar el InfoPath view webpart creado por Marwan Tarek en su blog, descargarlo de aqui: http://www.sharepointblogs.com/files/folders/marwantarek/entry13087.aspx
Una vez que se ha bajado hay que instalarlo en el servidor de SharePoint, la descarga tiene dos archivos:
- InfoPathFormViewer.wsp: Archivo de la solución web part.
- InfoPathFormViewer.bat: Archivo batch que deberá ser ejecutado en el servidor (editar el batch y reemplazar "http://londonmoss/" con el url de tu sitio)
Ya instalado deberas crear tu InfoPath con la opcion de web enable.
Crea una pagina customizada y dentro de una zona de web parts agrega el webpart de Marwan llamado InfoPathFormViewer. Modifica sus propiedades:
Html code: Codigo html que contiene el Iframe, ejemplo:
<div class="EForms">- InfoPathFormViewer.bat: Archivo batch que deberá ser ejecutado en el servidor (editar el batch y reemplazar "http://londonmoss/" con el url de tu sitio)
Ya instalado deberas crear tu InfoPath con la opcion de web enable.
Crea una pagina customizada y dentro de una zona de web parts agrega el webpart de Marwan llamado InfoPathFormViewer. Modifica sus propiedades:
Html code: Codigo html que contiene el Iframe, ejemplo:
<div class="EForms2">
<div class="EForms3">
<h5>form title</h5>
<div style="MARGIN-TOP: 10px; TEXT-ALIGN: center">
<iframe marginwidth="0" marginheight="0" src="%formurl%" frameborder="0" width="99%" scrolling="no" height="600">info path here</iframe>
</div>
</div>
</div>
</div>
Form URL: La url del formulario, ejemplo:
http://moss.dep/English/_layouts/FormServer.aspx?XsnLocation=http://moss.dep/English/Meeting%20Request%20English/Forms/template.xsn&SaveLocation=http%3A%2F%2Fmoss%2Edep%2FEnglish%2FMeeting%20Request%20English&DefaultItemOpen=1
Una vez hecho eso el fomulario Infopath sera visible desde la pagina customizada, ahora deberemos crear otra pagina html que contendrá un redirect.
Crear la nueva pagina llamada Redirect.html con este contenido dentro del head:
<script language="javascript" type="text/javascript">
window.open('/Paginas/Inicio.aspx', '_top');
</script>
Ahora solo deberemos agregar el parametro de Source dentro de la cadena de la url del form. Ir a la pagina customizada donde se encuentra el formulario de Infopath y editar sus propiedades, en la opcion de Form URL agregar este texto: &Source=/Paginas/Redirect.html
Por lo que nos quedaria de esta forma:
Por lo que nos quedaria de esta forma:
Form URL
http://moss.dep/English/_layouts/FormServer.aspx?XsnLocation=http://moss.dep/English/Meeting%20Request%20English/Forms/template.xsn&SaveLocation=http%3A%2F%2Fmoss%2Edep%2FEnglish%2FMeeting%20Request%20English&Source=/Paginas/Redirect.html&DefaultItemOpen=1
Lo que hace es que al cerrar el formulario se va directamente a esa pagina, pero al estar dentro de un Iframe es necesario crear una pagina intermedia que haga un redirect al target top.
Y lo que da de resultado es que al cerrar o enviar el formulario nos manda a la pagina que hemos puesto dentro de la pagina de redirect.html.
Y lo que da de resultado es que al cerrar o enviar el formulario nos manda a la pagina que hemos puesto dentro de la pagina de redirect.html.
Saludos

No hay comentarios:
Publicar un comentario