Método Resource.SetField (Project)
Especifica el valor del campo personalizado del recurso especificado.
Sintaxis
expresión. SetField
( _FieldID_
, _Value_
)
Expresión Variable que representa un objeto Resource .
Parameters
Nombre | Obligatorio/opcional | Tipo de datos | Descripción |
---|---|---|---|
FieldID | Obligatorio | Long | Para un campo personalizado local, puede ser una de las constantes de PjField para campos personalizados de recursos. Para un campo personalizado de empresa, use el método FieldNameToFieldConstant para obtener el FieldID. |
Value | Obligatorio | String | Valor del campo. |
Ejemplo:
El ejemplo siguiente muestra cómo obtener acceso a un campo personalizado de recurso de empresa mediante el método SetField y el método GetField para el objeto Resource junto con los métodos FieldNameToFieldConstant y FieldConstantToFieldName.
En base al ejemplo, use Project Web App para crear un campo de texto personalizado del recurso de empresa denominado, por ejemplo, TestEntResText.
Reinicie Project Professional con un perfil de Project Server, para que incluya el nuevo campo personalizado.
Cree un proyecto, genere el equipo de recursos de empresa y asigne un recurso para la primera tarea.
La macro TestEnterpriseResourceCF usa el método FieldNameToFieldConstant para buscar el número del resourceField, por ejemplo, 205553667.
La macro muestra el valor numérico y de texto en un cuadro de mensaje con el método GetField.
La macro establece un nuevo valor para el campo personalizado, mediante el método SetField.
La macro obtiene el nombre del campo con el método FieldConstantToFieldName y, a continuación, muestra el nombre de campo y el nuevo valor en otro cuadro de mensaje.
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 un ejemplo que usa un campo personalizado de recursos locales, consulte el método GetField.
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.