Метод Resource.SetField (Project)
Задает значение указанного настраиваемого поля ресурса.
Синтаксис
выражение. SetField
( _FieldID_
, _Value_
)
Выражение Переменная, представляющая объект Resource .
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
FieldID | Обязательный | Long | Для локального настраиваемого поля может быть одной из констант PjField для настраиваемых полей ресурсов. Для корпоративного настраиваемого поля используйте метод FieldNameToFieldConstant , чтобы получить FieldID. |
Value (Значение) | Обязательный | String | Значение поля. |
Пример
В следующем примере показано, как получить доступ к пользовательскому полю корпоративного ресурса с помощью методов SetField и GetField для объекта Resource вместе с методами FieldNameToFieldConstant и FieldConstantToFieldName .
Чтобы использовать пример, используйте Project Web App для создания настраиваемого поля текста корпоративного ресурса с именем, например TestEntResText.
Перезапустите Project профессиональный с профилем Project Server, чтобы он был включен в новое настраиваемое поле.
Создайте проект, создайте команду на основе корпоративных ресурсов, а затем назначьте ресурс первой задаче.
Макрос TestEnterpriseResourceCF использует метод FieldNameToFieldConstant для поиска номера resourceField, например 205553667.
Макрос отображает число и текстовое значение в окне сообщения с помощью метода GetField .
Макрос задает новое значение для настраиваемого поля с помощью метода SetField .
Макрос получает имя поля с помощью метода 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 и обратная связь.