В SharePoint есть тип поля – выбор пользователя. Выглядит на форме так:

У многих пользователей есть претензии к нему, которые заключаются в том, что выбор слишком сложен из-за того, что нужно несколько раз нажимать на кнопку, не отображается полный список пользователей, их нужно искать и т.д. С другой стороны некоторые пользователи хотели бы видеть выбор пользователей в виде орг. структуры.

Могу предложить простой вариант, как вывести список пользователей в выпадающем списке на форме. Единственный недостаток – выводятся и группы, и пользователи.

Идея проста – тип поля «выбор пользователя» унаследован от типа «подстановка». А это значит, что мы можем добавить в список поле типа подстановка, указывающее на системный список пользователей сайта.

Приведу пример, как можно добавить поле при помощи PowerShell:

Add-PSSnapin microsoft.sharepoint.powershell

 

# получаем доступ к сайту

$web = Get-SPWeb http://portal

 

# создаем "настраиваемый список (100)"

$web.Lists.Add("somelist","", 100)

 

# получаем досту к скписку

$list = $web.lists["somelist"]

 

# получаем список пользователей

$users = $web.SiteUserInfoList

 

# добавляем в список поле подстановки, указывающее на пользователей

$list.Fields.AddLookup("user", $users.ID, $true)

 

Вот результат:

Если Вы хотите заменить тип существующего поля, ознакомьтесь со статьей – http://www.sharepoint2010.ru/post/change-field-type.aspx

Конечно, этот вариант не идеален. Но за то очень быстро реализуем.

Другой вариант заключается в разработке собственного типа поля при помощи Visual Studio 2010. Как вариант, можно построить выбор пользователя с концепцией авто заполнение / autocomplete (фильтрация списка по мере набора символов в строке). Можно сделать диалоговое окно с деревом в виде орг. структуры. А в качестве источника можно использовать хранилище профилей пользователей.