martes, 31 de marzo de 2009

[Infopath] Control de selección de usuario

Cuando diseñamos un formulario para ser utilizado en Infopath Forms Services debemos tener en cuenta que no todos los controles son compatibles con el explorador. Esto se debe a que el cliente de Infopath es mucho más rico que el motor de Infopath Form Service, debemos verificar en el diseño si nuestro control es compatible en modo explorador.

Nos puede surgir el caso en el que el cliente nos solicite que el formulario pueda seleccionar un usuario del dominio, ¿Es este control compatible?, pues sí (a medias), pero debemos agregarlo a los controles personalizados ya que no aparece en la lista de controles estándar.

Desde la ventana de “Tareas de diseño” > seleccionamos agregar u ocultar controles personalizados > agregar… > control activex > contact selector

Para poder utilizarlo tendremos que tenerlo registrado, aunque también podemos hacer que el propio fichero xsn incluya el fichero .cab con la instalación del Activex.

Para que sea compatible con Infopath Forms Service debemos marcar “No incluir un fichero cab”.

En la pantalla siguiente de enlace de propiedades seleccionamos “value”. A continuación indicamos a Infopath como se guardarán los datos, seleccionamos “Campo o grupo (cualquier tipo de datos)”.

Al finalizar dispondremos del control para ser arrastrado al formulario. Solo quedaría asociarlo a un grupo de datos, pero este debe tener una estructura determinada.


En la sección de orígenes de datos “agregamos un campo o grupo” > seleccionamos > grupo > indicamos un nombre de grupo. Repetimos el mismo proceso e indicamos el nombre que representa el registro que se repetirá por cada uno de los controles, no os olbideis de marcar “repetir”. Por último agregamos al anterior grupo los campos de tipo texto: DisplayName, AccountId y AccountType.

Solo quedaría enlazar el control al grupo extensible seleccionando el control y con el botón derecho "cambiar enlace".


Al probar nuestro formulario sobre Sharepoint veremos algo similar a la siguiente imagen:


La entrada original la podéis encontrar en: Using the Contact Selector Control

No hay comentarios: