Resource.SetField - метод (Project)

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

Синтаксис

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

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

Параметры

Имя Обязательный или необязательный Тип данных Описание
FieldID Обязательный Long Для локального настраиваемого поля может быть одна из констант PjField для настраиваемых полей ресурсов. Для корпоративных настраиваемых полей используйте метод FieldNameToFieldConstant для получения поля FieldID.
Значение Обязательный 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 и обратная связь.