Автоколонка в списке SharePoint

В списке SharePoint я хочу столбец с автоматическими номерами, который при добавлении в список увеличивается. Как лучше я могу пойти по этому поводу?

9 ответов

Решение

Списки Sharepoint автоматически имеют столбец с идентификатором, который автоматически увеличивается. Вам просто нужно выбрать этот столбец на экране "Изменить вид", чтобы просмотреть его.

Вы не можете добавить новый уникальный автоматически сгенерированный идентификатор в список SharePoint, но он уже есть! Если вы отредактируете представление "Все элементы", вы увидите список столбцов, для которых не выбрана опция отображения.

Существует довольно много таких столбцов, которые существуют, но никогда не отображаются, например "Создано" и "Создано". Эти поля используются в SharePoint, но они не отображаются по умолчанию, чтобы не загромождать отображение. Вы не можете редактировать эти поля, но вы можете отобразить их для пользователя. если вы установите флажок "Показать" рядом с полем идентификатора, вы получите уникальное и автоматически сгенерированное поле идентификатора, отображаемое в вашем списке.

Проверить: уникальный идентификатор в списке SharePoint

Если вы хотите контролировать форматирование уникального идентификатора, вы можете создать свой собственный <FieldType> в SharePoint. MSDN также имеет визуальный How-To. Это в основном означает, что вы создаете пользовательский столбец.

WSS определяет тип поля Counter (это то, что используется в приведенном выше столбце идентификатора). У меня никогда не было необходимости повторно использовать это или расширять его, но это должно быть возможно.

Решение может существовать без создания пользовательских <FieldType>, Например: если вам нужны уникальные идентификаторы, такие как CUST1, CUST2, ..., возможно, можно создать столбец Calculated и использовать значение столбца ID в формуле (="CUST" & [ID]). Я не пробовал это, но это должно работать:)

У меня была эта проблема с пользовательским списком, и хотя невозможно создать автоматически сгенерированный столбец идентификатора для создания вычисляемого столбца, можно использовать рабочий процесс для выполнения тяжелой работы.

Я создал новую переменную рабочего процесса типа Number и установил для нее значение столбца ID в текущем элементе. Тогда это просто вопрос вычисления значения пользовательского столбца и его установки - в моем случае мне просто нужно было нумерация начать с 100 000.

Если вам нужно что-то помимо столбца ID, присутствующее во всех списках, вам, вероятно, придется прибегнуть к получателю событий в списке, который "вычисляет", каким должно быть значение идентифицированного вами уникального идентификатора, или с использованием настраиваемого типа поля, который имеет необходимую логику, встроенную в это. К сожалению, оба эти варианта потребуют написания и развертывания пользовательского кода на сервере и развертывания сборок в GAC, что может вызывать недовольство в средах, где у вас нет полного контроля над серверами.

Если вам не нужен уникальный идентификатор для немедленного отображения, вы можете сгенерировать его с помощью рабочего процесса (либо с помощью SharePoint Designer, либо с помощью специального рабочего процесса WF, встроенного в Visual Studio).

К сожалению, вычисляемые столбцы, которые кажутся очевидным решением, не будут работать для этой цели, потому что идентификатор еще не назначен при попытке расчета. Если вы зайдете после факта и отредактируете элемент, вычисление может достичь того, что вы хотите, но при первоначальном создании нового элемента он не будет рассчитан правильно.

Это там по умолчанию. Это поле id.

Как уже говорилось, все объекты в sharepoint содержат своего рода уникальный идентификатор (часто целочисленный счетчик для элементов списка и GUID для списков).

Тем не менее, есть также функция, доступная по адресу http://www.codeplex.com/features называется "Политика уникальных столбцов", предназначенная для добавления другого столбца с уникальным значением. Полная рецензия доступна по адресу http://scothillier.spaces.live.com/blog/cns!8F5DEA8AEA9E6FBB!293.entry

Так что я не уверен, что могу действительно подумать, зачем вам на самом деле нужен идентификатор "уникальное семейство сайтов", поэтому, возможно, вы можете прокомментировать и сообщить нам, что на самом деле пытается сделать здесь...

В любом случае, все элементы имеют свойство UniqueID, которое является GUID, если оно вам действительно нужно: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splistitem.uniqueid.aspx

У Петы лучшая идея, я сделал то же самое с пользовательским списком на нашем сайте SP. Использование рабочего процесса для автоматического увеличения является лучшим способом, и это не так сложно. Проверить этот сайт: http://splittingshares.wordpress.com/2008/04/11/auto-increment-a-number-in-a-new-list-item/

Я высоко ценю человека, который разместил это решение, это очень круто!

Другие вопросы по тегам