Я новичок в Sharepoint, и мне бы хотелось создать огромный главный список всех наших сотрудников, а затем сделать разные «взгляды» на этого человека в зависимости от группы людей.
Например:
У нового сотрудника может быть
Я хотел бы, чтобы все это было в одной строке (для каждого сотрудника), но тогда, когда кто-то из группы HR входит в систему, он может видеть только персонал и зарплату или что-то в этом роде.
Если это не вариант, есть ли способ связать таблицы в разных списках?
Решение без кода asp:
Вам понадобятся две библиотеки javascript:
- JQuery
- SPServices - http://spservices.codeplex.com/
В sharepoint создайте непубличную библиотеку под названием «Библиотеки Jquery» и загрузите в нее свой jquery и SPServices.
В конструкторе sharepoint создайте копию AllItems.aspx.
В конструкторе sharepoint отредактируйте файл AllItems.aspx. Очистите весь код и вставьте этот код javascript.
<script language="javascript" type="text/javascript" src="PATH-TO-YOUR-JQUERY-FILE"></script>
<script language="javascript" type="text/javascript" src="PATH-TO-YOUR-SPSERVICES-FILE"></script>
<script type="text/javascript">
$(document).ready(function() {
//Get current username
userName = $().SPServices.SPGetCurrentUser({
fieldName: "Name",
debug: false
});
//get user's group
$().SPServices({
operation: "GetGroupCollectionFromUser",
userLoginName: userName,
async: false,
completefunc: function(xData, status){
$(xData.responseXML).find("Group").each(function(){
if(status == "success"){
var nomeGrupo = $(this).attr('Name');
//if user is in group 1 redirect to page 1. If user is in group 2 redirect to page 2 etc...
if(nomeGrupo=="Grupo sergio"){
window.location.replace("PATH-TO-PAGE-1/SomeItems.aspx");
}else{
window.location.replace("/PATH-TO-PAGE-2/ViewAll.aspx");
}
}else{
alert("Falha na comunicação com o Sharepoint");
}
});
}
});
});
</script>
Этот код перенаправит пользователя на другие страницы, которые будут содержать настроенное представление веб-частей.
В дизайне sharepoint переименуйте AllItems.aspx в SomeItems.aspx (например).
Вы можете создать несколько копий этого файла и выполнить следующий шаг, чтобы настроить его.
Отредактируйте этот файл и удалите основную веб-часть, расположенную в PlaceHolderMain. (Совет: вы можете щелкнуть и удалить, если вы находитесь в разделенном представлении (код дизайна) в конструкторе sharepoint).
Затем вы можете вставить настраиваемое представление веб-части для своего списка. В этом настраиваемом представлении вы можете фильтровать данные или не отображать некоторые столбцы.
Легко. 1 список. Несколько разных представлений для этого списка на основе метаданных - отдел, здание, что угодно. Вы можете отображать разные столбцы в каждом представлении. Например ... для HR вы должны показать столбец зарплаты, а также столбец имени. Для обычных людей другой вид, в котором НЕ отображается зарплата.
Теперь делаем несколько страниц веб-частей. На каждой странице веб-части поместите веб-часть, отображающую наш список. Но это только показывает один вид этого списка, без реального способа добраться до других.
Теперь мы ограничиваем разрешения для каждой из этих страниц веб-частей только теми группами, которые вы хотите видеть.
Итак, страницы веб-частей, которые показывают разные представления одного и того же списка, и ограничения разрешений для этих страниц веб-частей.
Привет, мне удалось программно скрыть поле, см. Ниже. Поле «Утвердить» теперь скрыто на экране редактирования списка.
SPField Appprove = bdcList.Fields.GetField("Approved");
Appprove.ShowInEditForm = false;
Appprove.ShowInDisplayForm = true;
Appprove.ShowInNewForm = false;
Appprove.Update();