Cambiando la vista inicial en tu Forma InfoPath programáticamente

escrito por julioc en Tuesday, July 22 2008

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.

Posts Similares

  1. Cómo acceder a servicios web de SharePoint en sitios que usan forms based authentication
  2. ¡SPSite no es un site!
  3. Cómo utilizar Autenticación Basada en Formularios para Autenticar Usuarios de Active Directory en MOSS 2007

Publica un comentario