Application.FieldConstantToFieldName 方法 (Project)

返回指定域常量的自定义域名称。

语法

expressionFieldConstantToFieldName( _Field_ )

expression:表示“Application”对象的变量。

参数

名称 必需/可选 数据类型 说明
Field 必需 Long 自定义字段的数字常量。 可以是本地自定义域的 PjField 常量或另一个 long 类型 的值,对企业自定义字段之一。

返回值

String

备注

如果域参数是本地自定义域,您可以使用 PjField 常量之一。 如果字段是企业自定义域,不匹配的 PjField 常量因为可以有任意的数量的自定义域。

注意

[!注释] 出于可用性及性能方面的考虑,应将企业自定义域的数量限制在几百个或更少的水平。

您可以通过 ProjectSummaryTask 属性来访问项目自定义域。

示例

下面的示例显示 FieldNameToFieldConstant 方法和 FieldConstantToFieldName 方法之间的区别:

  1. 若要使用本示例,请使用 Project Web App 创建一个名为 "TestEntProjText" 的企业项目文本自定义域。

  2. 以使其包括新的自定义字段,使用 Project Server 配置文件,重新启动 Project。

  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

下面的示例显示在名称中 pjTaskStartpjTaskStartText 和类似的任务域之间的差异。

注意

pjTask*Text 字段(如 pjTaskStartText)是 Project 中的新增字段。 Those fields are used to get data for dates of both automatically and manually scheduled tasks. For example, the Start column in a Gantt chart contains String data for dates, not Variant data. 在自定义字段公式中使用 pjTaskDuration 等字段,但不在列标题中使用。

开始完成持续时间和等,任务视图中的列包含自动计划和手动计划任务的 字符串 数据。 持续时间列中只能使用 字符串 数据,因此没有为 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。