Как создать справочный столбец, который нацелен на Doc Lib и использует «Имя» документа? - PullRequest
4 голосов
/ 30 января 2009

Как создать столбец поиска для библиотеки документов, в которой в качестве значения поиска используется «Имя» документа?

Я нашел сообщение в блоге, в котором рекомендуется добавить еще одно настраиваемое поле, например «FileName», а затем использовать приемник элементов, чтобы заполнить настраиваемое поле значением из поля «Имя», но это выглядит глупо. Ссылка на блог, если люди заинтересованы: http://blogs.msdn.com/pranab/archive/2008/01/08/sharepoint-2007-moss-wss-issue-with-lookup-column-to-doc-lib-name-field.aspx

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

Ответы [ 5 ]

4 голосов
/ 04 ноября 2010

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

3 голосов
/ 30 января 2009

Одним из способов сделать это (хотя и не самым простым способом) является создание настраиваемого типа поля, расширяющего класс SPFieldLookup. Редактор полей SharePoint для полей «Уточняющий запрос» целенаправленно скрывает любые типы столбцов, которые не поддерживаются полями «Уточняющий запрос», но вы можете создать редактор полей для своего настраиваемого типа поля, который их отображает.

Однако я создал столбец «Уточняющий запрос», который раньше указывал на столбец «Имя» в библиотеке документов, и, вероятно, он работает не так, как вы ожидаете. Хотя значение, хранящееся в столбце поиска, является действительным, оно не отображается прямо в представлении списка или в форме свойств представления.

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

1 голос
/ 27 января 2011

Кодирование в любой форме всегда пугает меня. Итак, вот что я сделал: я просто переименовал глупое поле «Заголовок» во что-то другое, скажем «Ключевые слова», поскольку с этим полем ничего нельзя поделать: даже не могу сделать его обязательным. Затем я создал еще одно однострочное поле под названием «Заголовок» и использовал это поле для поиска

0 голосов
/ 21 июня 2016

Вы должны добавить поле как XML с ShowField как 'FileLeafRef'

var XmlFieldDefinition = "<Field DisplayName='myLookupColumn' Type='LookupMulti' StaticName='myLookupColumn' Name='myLookupColumn' Required='FALSE' List='THE LOOKUP ID HERE' WebId='THE WEB ID HERE' UnlimitedLengthInDocumentLibrary='TRUE' Mult='TRUE' Sortable='FALSE' ShowField='FileLeafRef' />"

Field fld = fieldCollection.AddFieldAsXml(XmlFieldDefinition, true, AddFieldOptions.DefaultValue);
ClientContext.Load(fld);

ClientContext.ExecuteQuery();
0 голосов
/ 04 декабря 2015

Ну, есть простое решение, и в некоторых случаях оно может сработать. В двух словах, если вы сделаете поле Заголовок обязательным, это заставит пользователя ввести заголовок. Таким образом, мы можем использовать поле заголовка в качестве поля поиска.

Теперь, как это сделать? Как только вы закончите, создайте библиотеку документов и перейдите к настройке библиотеки. Выберите «Дополнительные настройки» и выберите «Да» для параметра «Разрешить управление типами содержимого?». Затем вернитесь к настройкам библиотеки и в разделе «Типы содержимого» выберите тип содержимого «Документ». Затем выберите столбец заголовка, затем выберите «Обязательно (должен содержать информацию)» и скажите «ОК».

Теперь попробуйте загрузить документ в эту библиотеку документов. Вы увидите поле заголовка в форме.

Надеюсь, это поможет ура Vaqar

...