Поделиться через


Свойство SPFieldLookup.CountRelated

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

Пространство имен:  Microsoft.SharePoint
Сборка:  Microsoft.SharePoint (в Microsoft.SharePoint.dll)

Синтаксис

'Декларация
Public Overridable Property CountRelated As Boolean
    Get
    Set
'Применение
Dim instance As SPFieldLookup
Dim value As Boolean

value = instance.CountRelated

instance.CountRelated = value
public virtual bool CountRelated { get; set; }

Значение свойства

Тип: System.Boolean
true для возврата числа элементов, относящихся к текущему элементу; в противном случае — false.

Замечания

Число связанных с Lookup поля являются разновидностью Lookup поля обратного уточняющего запроса и возвращает количество элементов в конечном списке, вид до элемента в текущем списке.

Если свойство CountRelated имеет значение true, следует настроить текущее поле Lookup так, чтобы он указывал на другое поле, Lookup в конечном списке. Для этого с помощью свойства LookupList , чтобы определяет список целевой объект и свойство LookupField , чтобы его имя внутреннего объекта SPFieldLookup в целевой список. Затем поле число связанных Lookup имеет вычисленного значения равно числу элементов в списке целевой объект, связанный с текущим элементом списка.

Например предположим, что имеется два списка Customers и Orders. Необходимо, чтобы элементы в списке заказов для отображения, который разместил заказ, чтобы добавить поле Кодклиента Lookup список заказов и настроить его для поля «идентификатор» в списке клиентов. Можно также решить, что если посмотреть на список клиентов, которые вы хотите увидеть с первого взгляда, сколько заказов каждого клиента имеет. Для этого добавьте поле число связанных заказов Lookup к списку клиентов и задана наведите указатель на поле Lookup идентификатор клиента в списке заказов. Затем поле заказов в списке клиентов отображается количество заказов, размещенных каждого клиента.

Примечание

Если свойство CountRelated имеет значение true, чтобы true автоматически устанавливаются свойства ReadOnlyField и AllowDeletion .

Примеры

Следующий пример является консольным приложением, которое работает с двумя списками Customers и Orders. Цель состоит в том, чтобы включить пользователя, который имеет представления элемент в списке клиентов, взглянув на количество элементов этого клиента в списке заказов.

Приложение начинает путем связывания двух списков. Это достигается путем создания поля подстановки идентификатор клиента в списке заказов, указывающий на поле код в списке клиентов. Затем приложение создает заказы поле в списке клиентов, указывает на поле Идентификатор клиента в списке заказов и присваивает свойству новое поле CountRelatedtrue.

using System;
using Microsoft.SharePoint;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            using (SPSite site = new SPSite("https://localhost"))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    SPList customers = web.Lists.TryGetList("Customers");
                    SPList orders = web.Lists.TryGetList("Orders");

                    if (null != customers && null != orders)
                    {
                        SPField idField = customers.Fields.TryGetFieldByStaticName("ID");
                        if (null != idField)
                        {
                            // Create a Customer ID field on the Orders list. 
                            // Point it to the ID field on the Customers list.
                            string customerIdName = orders.Fields.AddLookup("Customer ID", customers.ID, true);
                            SPFieldLookup customerIdField = 
                                (SPFieldLookup)orders.Fields.GetFieldByInternalName(customerIdName);
                            customerIdField.LookupField = idField.InternalName;
                            customerIdField.Update();

                            // Add the field to the default view.
                            AddToDefaultView(orders, customerIdName);

                            // Create an Orders field on the Customers list.
                            // Point it to the Customer ID field on the Orders list.
                            string numOrdersName = customers.Fields.AddLookup("Orders", orders.ID, false);
                            SPFieldLookup numOrdersField = 
                                (SPFieldLookup)customers.Fields.GetFieldByInternalName(numOrdersName);
                            numOrdersField.LookupField = customerIdField.InternalName;
                            numOrdersField.CountRelated = true;
                            numOrdersField.Update();

                            // Add the field to the default view.
                            AddToDefaultView(customers, numOrdersName);
                        }
                    }
                }
            }
            Console.Write("\nPress ENTER to continue...");
            Console.ReadLine();
        }

        static void AddToDefaultView(SPList list, string fieldName)
        {
            if (list != null && list.Fields.ContainsField(fieldName) && !list.DefaultView.ViewFields.Exists(fieldName))
            {
                SPView defaultView = list.DefaultView;
                defaultView.ViewFields.Add(fieldName);
                defaultView.Update();
            }
        }
    }
}
Imports System
Imports Microsoft.SharePoint

Module ConsoleApp

    Sub Main()
        Using site As New SPSite("https://localhost")
            Using web As SPWeb = site.OpenWeb()

                Dim customers As SPList = web.Lists.TryGetList("Customers")
                Dim orders As SPList = web.Lists.TryGetList("Orders")

                If customers IsNot Nothing AndAlso orders IsNot Nothing Then
                    Dim idField As SPField = customers.Fields.TryGetFieldByStaticName("ID")
                    If idField IsNot Nothing Then
                        ' Create a Customer ID field on the Orders list. 
                        ' Point it to the ID field on the Customers list.
                        Dim customerIdName As String = orders.Fields.AddLookup("Customer ID", customers.ID, True)
                        Dim customerIdField As SPFieldLookup = _
                           DirectCast(orders.Fields.GetFieldByInternalName(customerIdName), SPFieldLookup)
                        customerIdField.LookupField = idField.InternalName
                        customerIdField.Update()

                        ' Add the field to the default view.
                        AddToDefaultView(orders, customerIdName)

                        ' Create an Orders field on the Customers list.
                        ' Point it to the Customer ID field on the Orders list.
                        Dim numOrdersName As String = customers.Fields.AddLookup("Orders", orders.ID, False)
                        Dim numOrdersField As SPFieldLookup = _
                           DirectCast(customers.Fields.GetFieldByInternalName(numOrdersName), SPFieldLookup)
                        numOrdersField.LookupField = customerIdField.InternalName
                        numOrdersField.CountRelated = True
                        numOrdersField.Update()

                        ' Add the field to the default view.
                        AddToDefaultView(customers, numOrdersName)
                    End If
                End If
            End Using
        End Using
        Console.Write(vbLf & "Press ENTER to continue...")
        Console.ReadLine()
    End Sub

    Sub AddToDefaultView(ByVal list As SPList, ByVal fieldName As String)
        If list IsNot Nothing AndAlso list.Fields.ContainsField(fieldName) _
            AndAlso Not list.DefaultView.ViewFields.Exists(fieldName) Then

            Dim defaultView As SPView = list.DefaultView
            defaultView.ViewFields.Add(fieldName)
            defaultView.Update()

        End If
    End Sub

End Module

См. также

Справочные материалы

SPFieldLookup класс

Элементы SPFieldLookup

Пространство имен Microsoft.SharePoint