Compartilhar via


LookupTable.CreateLookupTablesMultiLang method

Cria tabelas de pesquisa do campo personalizado de vários idiomas e máscaras de código correspondente.

Namespace:  WebSvcLookupTable
Assembly:  ProjectServerServices (in ProjectServerServices.dll)

Syntax

'Declaração
<SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/LookupTable/CreateLookupTablesMultiLang", RequestNamespace := "https://schemas.microsoft.com/office/project/server/webservices/LookupTable/",  _
    ResponseNamespace := "https://schemas.microsoft.com/office/project/server/webservices/LookupTable/",  _
    Use := SoapBindingUse.Literal, ParameterStyle := SoapParameterStyle.Wrapped)> _
Public Sub CreateLookupTablesMultiLang ( _
    ltds As LookupTableMultiLangDataSet, _
    validateOnly As Boolean, _
    autoCheckIn As Boolean _
)
'Uso
Dim instance As LookupTable
Dim ltds As LookupTableMultiLangDataSet
Dim validateOnly As Boolean
Dim autoCheckIn As Boolean

instance.CreateLookupTablesMultiLang(ltds, _
    validateOnly, autoCheckIn)
[SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/LookupTable/CreateLookupTablesMultiLang", RequestNamespace = "https://schemas.microsoft.com/office/project/server/webservices/LookupTable/", 
    ResponseNamespace = "https://schemas.microsoft.com/office/project/server/webservices/LookupTable/", 
    Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public void CreateLookupTablesMultiLang(
    LookupTableMultiLangDataSet ltds,
    bool validateOnly,
    bool autoCheckIn
)

Parâmetros

Comentários

If you create a non-text lookup table such as type Cost, Date, Duration, or Number, you still need to programmatically create a code mask. Project Web App hides the code mask for non-text lookup tables on the New Lookup Table page, but creates a code mask for the call to CreateLookupTable. The Example section includes sample code that creates a Duration lookup table. For more examples, see Using the ProjTool Test Application.

O evento prévia de CreateLookupTables é LookupTableEventReceiver.OnCreating e o pós-evento é OnCreated.

Por exemplo, o parâmetro e em um manipulador de eventos OnCreating expõe um objeto LookupTableMultiLanguageDataSet . O código a seguir mostra exemplos de como obter dados de tabelas diferentes, como LookupTableLanguages, LookupTablese LookupTableValues.

using PSLibrary = Microsoft.Office.Project.Server.Library;
. . .
public class LookupTableEvents : LookupTableEventReceiver
{
    public override void OnCreating(PSLibrary.PSContextInfo contextInfo, 
        LookupTablePreEventArgs e)
    {
        int lutLanguage = 
            (int)e.LookupTableInformation.LookupTableLanguages.Rows[0]["LCID"];
        Guid lutMultiUid = 
            (Guid)e.LookupTableInformation.LookupTables.Rows[0]["LT_UID"];
        string lutMultiValue = 
            (string)e.LookupTableInformation.LookupTableValues.Rows[0]["LT_VALUE_TEXT"];
        . . .
    }

To use datasets in event handlers, set a reference to the Microsoft.Office.Project.Schema.dll assembly. For more information, see How to: Write and Debug a Project Server Event Handler.

Aviso

Quando você usa a PSI para criar ou atualizar uma tabela de pesquisa de número, não adicione valores que têm mais de duas casas decimais.

O método CreateLookupTablesMultiLang lhe permite salvar um número com mais de duas casas decimais. Quando você cria um campo personalizado que usa a tabela de pesquisa de número, Project Professional 2010 Arredonda os valores de campo personalizado de número para duas casas decimais e mostra-las como sequências de caracteres na lista suspensa para selecionar um valor. Quando você seleciona um valor, Project Professional 2010 converte a sequência de volta para um número. O processo mostra um erro, porque o valor numérico com apenas duas casas decimais não existe.

Permissões do Project Server

Permissão

Descrição

ManageEnterpriseCustomFields

Permite que um usuário modificar as definições de campos personalizados da empresa e valores de tabela de pesquisa. Permissão global.

Examples

The following code fragment creates a lookup table named Test Duration LUT of type Duration. LookupTableWS is an arbitrary name for a reference to the LookupTable Web service. To test the code, add it to a sample console application. For more information, see Prerequisites for ASMX-Based Code Samples.

Os comentários incluem os nomes das tabelas alterados no banco de dados publicados após a chamada para CreateLookupTablesMultiLang.

using PSLibrary = Microsoft.Office.Project.Server.Library;
. . .
private const string LOOKUPTABLEWEBSERVICE = "_vti_bin/PSI/LookupTable.asmx";
private string baseUrl = "https://ServerName/ProjectServerName"/
private static WebSvcLookupTable.LookupTable lookupTable =
    new WebSvcLookupTable.LookupTable();
LookupTableWS.LookupTableMultiLangDataSet lutMultiDS = 
    new LookupTableWS.LookupTableMultiLangDataSet();

// Initialize the LookupTable Web service for Windows logon.
lookupTable.Url = baseUrl + LOOKUPTABLEWEBSERVICE;
lookupTable.Credentials = CredentialCache.DefaultCredentials;
. . .
private void btnCreateNonTextLUT_Click(object sender, EventArgs e)
{
    LookupTableWS.LookupTableMultiLangDataSet lutMultiDS = 
        new LookupTableWS.LookupTableMultiLangDataSet();

    // Create the main LookupTable row in MSP_LOOKUP_TABLES.
    LookupTableWS.LookupTableMultiLangDataSet.LookupTablesRow lutMainRow =
        lutMultiDS.LookupTables.NewLookupTablesRow();
    lutMainRow.LT_UID = Guid.NewGuid();
    lutMainRow.LT_FILL_ALL_LEVELS = false;
    lutMainRow.LT_PRIMARY_LCID = 1033;
    lutMainRow.LT_SORT_ORDER_ENUM = (byte)PSLibrary.LookupTables.SortOrder.Ascending;
    lutMainRow.LT_NAME = "Test Duration LUT";
    lutMultiDS.LookupTables.Rows.Add(lutMainRow);

    // Create the 1-level mask structure in MSP_LOOKUP_TABLE_MASK_STRUCTURES.
    LookupTableWS.LookupTableMultiLangDataSet.LookupTableMaskStructuresRow lutMaskStructureRow =
        lutMultiDS.LookupTableMaskStructures.NewLookupTableMaskStructuresRow();
    lutMaskStructureRow.LT_UID = lutMainRow.LT_UID;
    lutMaskStructureRow.LT_MASK_STRUCT_LENGTH = (int)PSLibrary.LookupTables.ANY_LENGTH_SEQUENCE;
    lutMaskStructureRow.LT_MASK_STRUCT_LEVEL = 1;
    lutMaskStructureRow.LT_MASK_STRUCT_TYPE_ENUM = (byte)PSLibrary.LookupTables.MaskSequence.DURATION;
    lutMultiDS.LookupTableMaskStructures.Rows.Add(lutMaskStructureRow);

    // Create the 1-level mask value in MSP_LOOKUP_TABLE_MASK_VALUES.
    LookupTableWS.LookupTableMultiLangDataSet.LookupTableMaskValuesRow lutMaskValueRow =
        lutMultiDS.LookupTableMaskValues.NewLookupTableMaskValuesRow();
    lutMaskValueRow.LCID = 1033;
    lutMaskValueRow.LT_UID = lutMainRow.LT_UID;
    lutMaskValueRow.LT_MASK_STRUCT_LEVEL = 1;
    lutMaskValueRow.LT_MASK_VALUE_SEPARATOR = ".";
    lutMultiDS.LookupTableMaskValues.Rows.Add(lutMaskValueRow);

    // Create the value structure in MSP_LOOKUP_TABLE_STRUCTURES.
    LookupTableWS.LookupTableMultiLangDataSet.LookupTableStructuresRow lutStructureRow =
        lutMultiDS.LookupTableStructures.NewLookupTableStructuresRow();
    lutStructureRow.LT_UID = lutMainRow.LT_UID;
    lutStructureRow.LT_STRUCT_UID = Guid.NewGuid();
    lutMultiDS.LookupTableStructures.Rows.Add(lutStructureRow);

    // Create values (one value per LCID) in MSP_LOOKUP_TABLE_VALUES.
    LookupTableWS.LookupTableMultiLangDataSet.LookupTableValuesRow lutValueRow =
        lutMultiDS.LookupTableValues.NewLookupTableValuesRow();
    lutValueRow.LCID = 1033;
    lutValueRow.LT_VALUE_DESC = "This is root level A";
    lutValueRow.LT_VALUE_DUR = 30;
    lutValueRow.LT_VALUE_DUR_FMT = (byte)PSLibrary.Task.DurationFormat.Hour;
    lutValueRow.LT_STRUCT_UID = lutStructureRow.LT_STRUCT_UID;
    lutMultiDS.LookupTableValues.Rows.Add(lutValueRow);

    // Create the lookup table.
    bool validateOnly = false;
    bool autoCheckIn = true;
    lookupTable.CreateLookupTablesMultiLang(lutMultiDS, validateOnly, autoCheckIn);
}

Ver também

Referência

LookupTable class

LookupTable members

WebSvcLookupTable namespace

CreateLookupTables

Outros recursos

How to: Write and Debug a Project Server Event Handler

Using the ProjTool Test Application