LookupMask classe
Representa uma definição de máscara para os níveis de uma tabela de pesquisa hierárquica.
Inheritance hierarchy
System.Object
Microsoft.SharePoint.Client.ClientValueObject
Microsoft.ProjectServer.Client.LookupMask
Namespace: Microsoft.ProjectServer.Client
Assembly: Microsoft.ProjectServer.Client (em Microsoft.ProjectServer.Client.dll)
Sintaxe
'Declaração
<ScriptTypeAttribute("PS.LookupMask", ValueObject := True, ServerTypeId := "{2aeb3d46-6e78-4035-b908-9e0a55f5c56d}")> _
Public Class LookupMask _
Inherits ClientValueObject
'Uso
Dim instance As LookupMask
[ScriptTypeAttribute("PS.LookupMask", ValueObject = true, ServerTypeId = "{2aeb3d46-6e78-4035-b908-9e0a55f5c56d}")]
public class LookupMask : ClientValueObject
Comentários
Todas as tabelas de pesquisa devem ter pelo menos uma máscara e somente tabelas de texto podem ter mais de uma máscara.
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 variável projLutCollection é um objeto LookupTableCollection .
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.