Поделиться через


Метод Resource.SetField (Project)

Задает значение указанного настраиваемого поля ресурса.

Синтаксис

выражение. SetField( _FieldID_, _Value_ )

Выражение Переменная, представляющая объект Resource .

Параметры

Имя Обязательный или необязательный Тип данных Описание
FieldID Обязательный Long Для локального настраиваемого поля может быть одной из констант PjField для настраиваемых полей ресурсов. Для корпоративного настраиваемого поля используйте метод FieldNameToFieldConstant , чтобы получить FieldID.
Value (Значение) Обязательный String Значение поля.

Пример

В следующем примере показано, как получить доступ к пользовательскому полю корпоративного ресурса с помощью методов SetField и GetField для объекта Resource вместе с методами FieldNameToFieldConstant и FieldConstantToFieldName .

  1. Чтобы использовать пример, используйте Project Web App для создания настраиваемого поля текста корпоративного ресурса с именем, например TestEntResText.

  2. Перезапустите Project профессиональный с профилем Project Server, чтобы он был включен в новое настраиваемое поле.

  3. Создайте проект, создайте команду на основе корпоративных ресурсов, а затем назначьте ресурс первой задаче.

  4. Макрос TestEnterpriseResourceCF использует метод FieldNameToFieldConstant для поиска номера resourceField, например 205553667.

  5. Макрос отображает число и текстовое значение в окне сообщения с помощью метода GetField .

  6. Макрос задает новое значение для настраиваемого поля с помощью метода SetField .

  7. Макрос получает имя поля с помощью метода FieldConstantToFieldName , а затем отображает имя поля и новое значение в другом окне сообщения.

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

Пример использования настраиваемого поля локального ресурса см. в методе GetField .

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.