in

Comunidad de Blogs de SharePoint

Este espacio es para poder colaborar, compartiendo y publicando contenido de valor sobre la herramienta de colaboración Microsoft Office SharePoint

Julio Casal

Desarrollo de Soluciones con SharePoint

Cambiando la vista inicial en tu Forma InfoPath programáticamente

Sí, en muchos casos podrás hacer ese cambio de vistas usando reglas de InfoPath, pero, tarde o temprano, te pasará como a mi y las reglas no serán suficiente para el tipo de personalización que tus usuarios demandan. Cómo le haces entonces para definir la vista inicial que debe mostrarse en la forma InfoPath programáticamente dependiendo de tus reglas de negocio?

Supongamos que tienes una forma InfoPath con 2 vistas: VistaCreacion y VistaAprobacion y que el mostrar una u otra vista depende del usuario que inició sesión en SharePoint.

Para agregar el código que cambie la vista inicial de la forma:

1. En InfoPath, selecciona el menú Tools –> Programming –> Loading Event…, lo cual abre el código C# de la forma y te sitúa en el manejador del evento Loading.

2. En el método FormEvents_Loading agrega las siguientes líneas:

public void FormEvents_Loading(object sender, LoadingEventArgs e)
{
    if (Application.User.LoginName.Equals(@"MiDominio\UnAprobador"))
        e.SetDefaultView("VistaAprobacion");
    else
        e.SetDefaultView("VistaCreacion");
}

Y listo. Una vez que hagas el deployment de tu forma ésta mostrará la vista apropiada dependiendo de quien inició sesión en el portal SharePoint.

Una nota personal: cada vez más prefiero usar código C# en vez de las reglas de InfoPath, principalmente porque las reglas suelen ser limitadas y complicadas cuando quieres resolver escenarios no tan simples. Más aún, cuando tienes muchas reglas y luego necesitas agregar también código C#, eso puede convertirse en una verdadera ensalada muy difícil de entender aún para ti mismo, menos aún para el pobre que deberá darle mantenimiento a tu forma más adelante.

Espero sea de utilidad,

Julio.

Cross-posting desde juliocasal.com

Comments

No Comments
Comunidad Microsoft TechNet SharePoint
Powered by Community Server (Commercial Edition), by Telligent Systems