Compartilhar via


Método Resource.SetField (Project)

Define um valor do campo personalizado de recurso especificado.

Sintaxe

expressão. SetField( _FieldID_, _Value_ )

Expressão Uma variável que representa um objeto Resource .

Parâmetros

Nome Obrigatório/Opcional Tipo de dados Descrição
FieldID Obrigatório Long Para um campo personalizado local pode ser uma das seguintes constantes PjField para campos personalizados de recurso. Para um campo personalizado da empresa, use o método FieldNameToFieldConstant para obter o FieldID.
Value Obrigatório String O valor do campo.

Exemplo

O exemplo a seguir mostra como acessar um campo personalizado de recurso de empresa, usando o método SetField e o método GetField para o objeto Resource junto com os métodos FieldNameToFieldConstant e FieldConstantToFieldName.

  1. Para usar o exemplo, use Project Web App para criar um campo personalizado de texto do recurso da empresa denominado TestEntResText.

  2. Reinicie o Project Professional com um perfil do Project Server, para que ele inclua o novo campo personalizado.

  3. Crie um projeto, forme a equipe usando os recursos da empresa e atribua um recurso para a primeira tarefa.

  4. A macro TestEnterpriseResourceCF usa o método FieldNameToFieldConstant para localizar o número do resourceField, por exemplo, 205553667.

  5. A macro mostra o valor de número e o texto em uma caixa de mensagem, usando o método GetField.

  6. A macro define um novo valor do campo personalizado, usando o método SetField.

  7. A macro obtém o nome do campo usando o método FieldConstantToFieldName e mostra o nome do campo e o valor novo em outra caixa de mensagem.

Sub TestEnterpriseResourceCF() 
    Dim resourceField As Long 
    Dim resourceFieldName As String 
    Dim resourceFieldValue As String 
    Dim message As String 
 
    resourceField = FieldNameToFieldConstant("TestEntResText", pjResource) 
 
    ' Show the enterprise resource field number and old value. 
    message = "Enterprise resource field number: " & resourceField & vbCrLf 
    resourceFieldValue = ActiveProject.Tasks(1).Assignments(1).Resource.GetField(resourceField) 

    If resourceFieldValue = "" Then resourceFieldValue = "[No value]" 
    MsgBox message & "Field value: " & resourceFieldValue 
 
    ' Set a value for the enterprise resource custom field. 
    ' Use either the Resources collection or the Assignments collection 
    ' to access the resource custom field. 
    ' Here, use the Assignments collection. 
    ActiveProject.Tasks(1).Assignments(1).Resource.SetField _
        FieldID:=resourceField, Value:="This is a new value." 
 
    ' For a demonstration, get the field name from the number, 
    ' and then verify the new value. 
    resourceFieldName = FieldConstantToFieldName(resourceField) 
 
    ' Here, use the Resources collection to access the custom field. 
    resourceFieldValue = ActiveProject.Resources(1).GetField(resourceField) 
 
    message = "New value for field: " & resourceFieldName & vbCrLf 
    MsgBox message & "Field value: " & resourceFieldValue 
End Sub

Para ver um exemplo de um campo personalizado de recurso local, consulte o método GetField.

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.