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


Метод Application.FieldConstantToFieldName (Project)

Возвращает пользовательское имя поля для указанной константы поля.

Синтаксис

выражение. FieldConstantToFieldName( _Field_ )

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

Параметры

Имя Обязательный или необязательный Тип данных Описание
Field Обязательный Long Числовая константа для настраиваемого поля. Может быть одной из констант PjField для локальных настраиваемых полей или другим значением Long для корпоративных настраиваемых полей.

Возвращаемое значение

String

Замечания

Если аргумент Field является локальным настраиваемым полем, можно использовать одну из констант PjField . Если поле является корпоративным настраиваемым полем, оно не соответствует константе PjField , так как может быть неограниченное количество корпоративных настраиваемых полей.

Примечание.

Из соображений удобства использования и производительности количество настраиваемых корпоративных полей должно быть ограничено несколькими сотнями или меньше.

Доступ к настраиваемым полям проекта можно получить через свойство ProjectSummaryTask .

Пример

В следующем примере показано различие между методом FieldNameToFieldConstant и методом FieldConstantToFieldName :

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

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

  3. Создайте проект с некоторым значением для поля TestEntProjText с помощью диалогового окна Сведения о проекте .

  4. Макрос TestEnterpriseProjectCF использует метод FieldNameToFieldConstant для поиска номера projectField, например 190873618.

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

  6. Макрос получает имя поля с помощью метода 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 и обратная связь.