Как сделать так, чтобы заголовок элемента по умолчанию представлял собой комбинацию полей?
-
10-12-2019 - |
Вопрос
Я создал в SharePoint 2010 простой список, позволяющий сотрудникам записывать свою ежедневную активность — каждый пользователь каждый день создает 1 новый элемент.При создании этого нового списка автоматически создается Title
столбец, который является обязательным и отображается как первый столбец.Однако это поле не имеет смысла для этого списка, поэтому я в настоящее время установил его по умолчанию, чтобы просто сказать: Daily Activity
.
У меня также есть еще 3 поля:
- Пользователь в настоящее время вошел в систему
- Текущая дата
- Область форматированного текста для ввода подробностей
Я хотел бы автоматически отображать комбинацию даты и пользователя, например:
Daily Activity - 10/10/2013 - John Smith
Я довольно много работал с SharePoint, но никогда не работал ни с чем подобным.Как я могу сделать так, чтобы этот список автоматически объединял эти поля в поле «Заголовок»?
Решение
Если вы не хотите писать код...
Используйте SharePoint Designer, чтобы создать рабочий процесс, который запускается при создании элемента (при условии, что они не могут отредактировать его впоследствии, в этом случае вам также нужно будет запустить при обновлении).Внутри рабочего процесса вы можете установить значение
Title
поле с использованием действия «Установить поля в текущем элементе» и комбинацияCreated
,Created By
, и «Ежедневная активность».Просто поймите, что будет небольшая задержка до завершения рабочего процесса, и поэтому возможно, что когда список сначала перезагрузитTitle
Поле может читать «(без названия)».Вот как можно установить значение после добавления рабочего процесса:а.Нажмите «Действие -> Список действий -> Установить поле в текущем элементе».
б.Нажмите на ссылку «поле» и выберите свое поле.В моем случае это «Местоположение».
в.Нажмите на кнопку «...».Это позволит использовать комбинацию других полей для установки значения для этого поля.
д.Это приведет вас к окну «String Builder».Оттуда вы можете ввести строку «Ежедневная активность -», а затем нажать кнопку «Добавить или изменить поиск», чтобы добавить поля «Создано» и «Создано».Убедитесь, что при добавлении «Создано» вы выбрали «Краткую дату» для раскрывающегося списка «Вернуть поле как», иначе оно вернет дату и время.Также убедитесь, что для «Создано» вы выбрали «Отображаемое имя» для «Вернуть поле как», в противном случае будет возвращено имя и идентификатор для этого пользователя.В конечном итоге ваше выражение будет выглядеть так:
Если вы хотите написать код...
Напишите приемник событий на C#, как упоминал Гинтас К., и вы, по сути, будете делать то же самое, что и в пункте 1 выше, но вместо этого с кодом.Вам нужно будет подключиться к
ItemAdding
событие.Проверьте это статья.
Другие советы
Самый простой способ, вероятно, — создать форму InfoPath для вашего списка.Для поля «Заголовок» установите значение по умолчанию:
concat("Daily Activity - ", today(), " - ", userName())
Снимите флажок «Обновлять значение при перерасчете формулы», иначе редактирование старого элемента приведет к изменению его названия и потенциально перезапишет чью-либо форму.Это может быть достаточно функционально для ваших нужд, но если вам нужно форматирование, подобное вашему примеру, проверьте этот или этот чтобы получить правильно отформатированное имя пользователя, и используйте для даты значение перевода(сегодня(), "-", "/").
Самый простой метод без кода — изменить значение по умолчанию для столбца «Заголовок» как расчетное значение. В этом блоге показано, как установить значение года..Для ваших требований попробуйте:
Перейдите в настройки списка, щелкните столбец «Заголовок» и измените значение по умолчанию.
Вставьте следующий код в поле, чтобы получить то, что вам нужно:
"Daily Activity -" & TEXT(Today,"mm/dd/yyyy") & " - " & Me
Примечание:Значение Me не указывает имя и фамилию, а указывает домен\имя пользователя.