Share via


LookupEntryCollection classe

Representa uma coleção de objetos LookupEntry para uma tabela de pesquisa.

Inheritance hierarchy

System.Object
  Microsoft.SharePoint.Client.ClientObject
    Microsoft.SharePoint.Client.ClientObjectCollection
      Microsoft.SharePoint.Client.ClientObjectCollection<LookupEntry>
        Microsoft.ProjectServer.Client.LookupEntryCollection

Namespace:  Microsoft.ProjectServer.Client
Assembly:  Microsoft.ProjectServer.Client (em Microsoft.ProjectServer.Client.dll)

Sintaxe

'Declaração
<ScriptTypeAttribute("PS.LookupEntryCollection", ServerTypeId := "{55ea707e-5da5-4a2a-a30a-cbb44541ee69}")> _
Public Class LookupEntryCollection _
    Inherits ClientObjectCollection(Of LookupEntry)
'Uso
Dim instance As LookupEntryCollection
[ScriptTypeAttribute("PS.LookupEntryCollection", ServerTypeId = "{55ea707e-5da5-4a2a-a30a-cbb44541ee69}")]
public class LookupEntryCollection : ClientObjectCollection<LookupEntry>

Exemplos

O exemplo de código a seguir é um aplicativo de console que consulta a coleção de tabelas de pesquisa em uma instância de Project Web App e exibe informações sobre as máscaras de código e as entradas de uma tabela de pesquisa especificado. A propriedade lut.Entries é um objeto LookupEntryCollection .

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.ProjectServer.Client;

namespace ReadLookupTable
{
    class Program
    {
        // Change the path for your Project Web App instance.
        private const string PWA_PATH = "https://ServerName/pwa/";    
        private static string lutName = "Department";    // Default lookup table to read.

        // Set the Project Server client context.
        private static ProjectContext projContext;

        static void Main(string[] args)
        {

            if (!ParseCommandLine(args))
            {
                Usage();
                ExitApp();
            }
            projContext = new ProjectContext(PWA_PATH);

            var projLutCollection = projContext.LoadQuery(
                projContext.LookupTables
                    .Where(lut => lut.Name == lutName));

            projContext.ExecuteQuery();

            if (projLutCollection.Count() > 0)
            {
                foreach (LookupTable lut in projLutCollection)
                {
                    Console.WriteLine("'{0}' lookup table Id: {1}", lut.Name, lut.Id);
                    Console.WriteLine("\tField type: {0}", lut.FieldType);

                    // Get the lookup table mask data:
                    Console.WriteLine("\nNumber of '{0}' lookup table masks: {1}\n", lut.Name, lut.Masks.Count());

                    foreach (LookupMask lutMask in lut.Masks)
                    {
                        Console.WriteLine("\tMaskType: {0}\tLength: {1}\tSeparator: {2}", 
                            lutMask.MaskType, lutMask.Length, lutMask.Separator);
                    }

                    // Get the collection of lookup table entries.
                    projContext.Load(lut.Entries);
                    projContext.ExecuteQuery();

                    Console.WriteLine("\nNumber of '{0}' lookup table entries: {1}", lut.Name, lut.Entries.Count());

                    foreach (LookupEntry lutEntry in lut.Entries)
                    {
                        Console.WriteLine("\n\t{0}, SortIndex: {1}\n\tFullValue: {2}",
                            lutEntry.Id, lutEntry.SortIndex.ToString("F0"), lutEntry.FullValue);
                    }
                }
            }
            else
            {
                Console.WriteLine("No lookup table named '{0}'", lutName);
            }

            ExitApp();   
        }

        private static void ExitApp()
        {
            Console.Write("\nPress any key to exit... ");
            Console.ReadKey(true);
            Environment.Exit(0);
        }

        // Parse the command line. Return true if there are no errors.
        private static bool ParseCommandLine(string[] args)
        {
            bool error = false;
            int argsLen = args.Length;

            try
            {
                for (int i = 0; i < argsLen; i++)
                {
                    if (error) break;
                    if (args[i].StartsWith("-") || args[i].StartsWith("/"))
                        args[i] = "*" + args[i].Substring(1).ToLower();

                    switch (args[i])
                    {
                        case "*lookuptable":
                        case "*lut":
                            if (++i >= argsLen) return false;
                            lutName = args[i];
                            break;
                        case "*?":
                        default:
                            error = true;
                            break;
                    }
                }
            }
            catch (FormatException)
            {
                error = true;
            }
            return !error;
        }

        private static void Usage()
        {
            string example = "Usage: ReadLookupTable [/lookuptable | /lut \"LookupTable Name\"";
            example += "\n\nExample: ReadLookupTable /lut \"Department\"";
            Console.WriteLine(example);
        }
    }
}

Por exemplo, suponha que a tabela de pesquisa de departamento contém as seguintes máscaras de códigos e valores de tabela de pesquisa:

Sequence              Length          Separator
_______________________________________________
Characters            Any             .
Uppercase Letters     2               .

Level              Value
______________________________
1                  Test Dept 1
1                  Test Dept 2
1                  Test Dept C
2                      CA
2                      CB

A seguir está a saída do aplicativo ReadLookupTable (os GUIDs para as suas entradas seriam diferentes).

Dica

Como a tabela de pesquisa de departamento é interna, o GUID da tabela de pesquisa de departamento é o mesmo em todas as instâncias de Project Web App . O GUID é o valor do campo Microsoft.Office.Project.Server.Library.LookupTables.DEPARTMENTS_LT_UID .

'Department' lookup table Id: e7397277-1ab0-4096-b2dd-57029a055ba4
        Field type: TEXT

Number of 'Department' lookup table masks: 2

        MaskType: CHARACTERS    Length: 0       Separator: .
        MaskType: UPPERCASE     Length: 2       Separator: .

Number of 'Department' lookup table entries: 5

        bbc07ff5-b06d-e211-93f4-0021704e28a0, SortIndex: 1
        FullValue: Test Dept 1

        bcc07ff5-b06d-e211-93f4-0021704e28a0, SortIndex: 2
        FullValue: Test Dept 2

        bdc07ff5-b06d-e211-93f4-0021704e28a0, SortIndex: 3
        FullValue: Test Dept C

        0a6ef8d8-6871-e211-93f4-0021704e28a0, SortIndex: 4
        FullValue: Test Dept C.CA

        0b6ef8d8-6871-e211-93f4-0021704e28a0, SortIndex: 5
        FullValue: Test Dept C.CB

Press any key to exit...

Segurança de thread

Os membros públicos estática (Shared no Visual Basic) desse tipo são seguros para thread. Nenhum membro de instância pode ser garantido como seguro para thread.

Ver também

Referência

LookupEntryCollection membros

Microsoft.ProjectServer.Client namespace

LookupEntry

LookupEntryCreationInformation