Freigeben über


SPFieldLookup.CountRelated-Eigenschaft

Ruft ab oder legt einen booleschen Wert, der angibt, ob die Anzahl der Elemente in der Auswahlliste, die bis zu dem aktuellen Listenelement suchen angezeigt.

Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'Declaration
Public Overridable Property CountRelated As Boolean
    Get
    Set
'Usage
Dim instance As SPFieldLookup
Dim value As Boolean

value = instance.CountRelated

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

Eigenschaftswert

Typ: System.Boolean
true zum Zurückgeben der Anzahl der Elemente, die mit Bezug auf das aktuelle Element; andernfalls false.

Hinweise

Count-bezogenen Lookup Felder sind eine Variante der Lookup -Felder, die einen reverse-Lookup durchführen und die Anzahl der Elemente in der Zielliste zurückzugeben, die bis zu einem Element in der aktuellen Liste suchen.

Beim Festlegen der CountRelated -Eigenschaft auf truesollten Sie das aktuelle Feld Lookup konfigurieren, damit es auf ein anderes Lookup -Feld in der Zielliste verweist. Zu diesem Zweck die LookupList -Eigenschaft festlegen, sodass es der Zielliste und die LookupField -Eigenschaft identifiziert, so dass der interne Name eines SPFieldLookup -Objekts in der Zielliste angegeben wird. Das Feld Anzahl bezogenen Lookup hat einen berechneten Wert, der gleich der Anzahl der Elemente in der Zielliste aufgeführt, die mit dem aktuellen Listenelement zusammenhängen.

Angenommen Sie, Sie haben zwei Listen, Customers und Orders. Elemente in der Liste der Aufträge anzeigen, die eine Bestellung aufgegeben hat, damit Sie der Liste der Bestellungen ein Kunden-ID-Feld Lookup hinzufügen und so konfigurieren, dass auf das Feld ID auf die Kundenliste zeigen soll. Darüber hinaus, dass bei der Betrachtung die Liste Debitoren, auf einen Blick sehen, wie viele jeder Kunde bestellt werden soll. Um dies zu ermöglichen, fügen Sie einen Count-bezogenen Bestellungen Lookup Feld in die Liste der Kunden und so konfigurieren, dass auf das Feld Kunden-ID Lookup in der Liste der Bestellungen zeigen. Das Feld Bestellungen der Kunden-Liste zeigt dann die Anzahl der Bestellungen, die jeder Kunde aufgegeben hat.

Hinweis

Beim Festlegen der CountRelated -Eigenschaft auf truewerden die Eigenschaften ReadOnlyField und AllowDeletion , true sowie automatisch festgelegt.

Beispiele

Im folgende Beispiel ist eine Konsolenanwendung, die mit zwei Listen, Customers und Orders. Das Ziel ist, damit ein Benutzer, der Ansichten ein Element in der Liste der Debitoren, auf einen Blick sehen, wie viele Artikel dieses Kunden in der Auftragsliste hat.

Die Anwendung beginnt mit die beiden Listen zu verknüpfen. Dazu erstellen ein Nachschlagefeld Kunden-ID in der Liste der Bestellungen, zeigt das ID-Feld in der Liste Debitoren. Dann die Anwendung erstellt eine Orders-Feld in der Liste Debitoren, verweist es auf das Feld Kundennummer in der Auftragsliste und wird das neue Feld CountRelated -Eigenschaft auf true.

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

Siehe auch

Referenz

SPFieldLookup Klasse

SPFieldLookup-Member

Microsoft.SharePoint-Namespace