Метод Application.FieldConstantToFieldName (Project)
Возвращает пользовательское имя поля для указанной константы поля.
Синтаксис
выражение. FieldConstantToFieldName
( _Field_
)
выражение: переменная, представляющая объект Application.
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
Field | Обязательный | Long | Числовая константа для настраиваемого поля. Может быть одной из констант PjField для локальных настраиваемых полей или другим значением Long для корпоративных настраиваемых полей. |
Возвращаемое значение
String
Замечания
Если аргумент Field является локальным настраиваемым полем, можно использовать одну из констант PjField . Если поле является корпоративным настраиваемым полем, оно не соответствует константе PjField , так как может быть неограниченное количество корпоративных настраиваемых полей.
Примечание.
Из соображений удобства использования и производительности количество настраиваемых корпоративных полей должно быть ограничено несколькими сотнями или меньше.
Доступ к настраиваемым полям проекта можно получить через свойство ProjectSummaryTask .
Пример
В следующем примере показано различие между методом FieldNameToFieldConstant и методом FieldConstantToFieldName :
Чтобы использовать пример, используйте Project Web App для создания настраиваемого поля текста корпоративного проекта с именем TestEntProjText.
Перезапустите Project с профилем Project Server, чтобы он отображал новое настраиваемое поле.
Создайте проект с некоторым значением для поля TestEntProjText с помощью диалогового окна Сведения о проекте .
Макрос TestEnterpriseProjectCF использует метод FieldNameToFieldConstant для поиска номера projectField, например 190873618.
Макрос отображает число и текстовое значение в окне сообщения с помощью метода GetField .
Макрос получает имя поля с помощью метода FieldConstantToFieldName , задает новое значение с помощью метода SetField , а затем отображает имя поля и новое значение в другом окне сообщения.
Sub TestEnterpriseProjectCF()
Dim projectField As Long
Dim projectFieldName As String
Dim message As String
projectField = FieldNameToFieldConstant("TestEntProjText", pjProject)
' Show the enterprise project field number and old value.
message = "Enterprise project field number: " & projectField & vbCrLf
MsgBox message & ActiveProject.ProjectSummaryTask.GetField(projectField)
ActiveProject.ProjectSummaryTask.SetField FieldID:=projectField, Value:="This is a new value."
' For a demonstration, show the field name from the field number, and verify the new value.
projectFieldName = FieldConstantToFieldName(projectField)
message = "New value for field: " & projectFieldName & vbCrLf
MsgBox message & ActiveProject.ProjectSummaryTask.GetField(projectField)
End Sub
В следующем примере показана разница в именах между полями pjTaskStart, pjTaskStartText и аналогичных полей задачи.
Примечание.
Поля pjTask*Text , такие как pjTaskStartText, являются новыми в Project. Эти поля используются для получения данных о датах автоматически и вручную запланированных задач. Например, столбец Пуск на диаграмме Ганта содержит строковые данные для дат, а не данные Variant . Используйте такие поля, как pjTaskDuration , в формулах настраиваемых полей, но не в заголовках столбцов.
Столбцы в представлениях задач для начального, готового, длительности и т. д. содержат строковые данные для автоматически запланированных задач и задач, запланированных вручную. Столбец Duration может использовать только строковые данные, поэтому заголовок столбца для pjTaskDuration отсутствует.
Sub TryNewTaskConstants()
' The pj*Text fields return data for the date columns of automatically and manually scheduled tasks.
' For example, FieldConstantToFieldName(pjTaskStartText) returns the column name for Start date strings.
Debug.Print "pjTaskStart returns: " & FieldConstantToFieldName(pjTaskStart)
Debug.Print "pjTaskStartText returns: " & FieldConstantToFieldName(pjTaskStartText) _
& vbCrLf
Debug.Print "pjTaskFinish returns: " & FieldConstantToFieldName(pjTaskFinish)
Debug.Print "pjTaskFinishText returns: " & FieldConstantToFieldName(pjTaskFinishText) _
& vbCrLf
Debug.Print "pjTaskDuration returns: " & FieldConstantToFieldName(pjTaskDuration)
Debug.Print "pjTaskDurationText returns: " & FieldConstantToFieldName(pjTaskDurationText) _
& vbCrLf
Debug.Print "pjTaskBaselineStart returns: " & FieldConstantToFieldName(pjTaskBaselineStart)
Debug.Print "pjTaskBaselineStartText returns: " & FieldConstantToFieldName(pjTaskBaselineStartText)
End Sub
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.