从MSproject

时间:2018-02-08 21:00:47

标签: c# ms-project

我试图获取MSProject中所选字段的数据类型。有8种类型的数据(成本,日期,文本......),我想用Visual Studio开发一个小插件,根据我选择的数据类型进行一些计算。 在这个网站的帮助下,我找到了如何获得该字段的名称:

Application.ActiveSelection.FieldNameList[0]

(如果我选择多个字段,那么下一步可能会有所帮助==>什么都不做)

但是我无法找到返回所选字段的数据类型的方法 有人知道我该怎么办? For example, if I select this field, my programm has to return : text

1 个答案:

答案 0 :(得分:0)

您需要为数据类型构建FieldName或FieldID的映射。

请注意,日期字段也可以包含文字(例如,在该字段中有日期之前,ActualStart将包含NA。)

此外,使用任务的本机属性来获取数据,而不是ActiveCell属性或返回显示值的GetField方法。

例如,如果活动单元格是显示2天的持续时间字段:

  • ActiveCell返回" 2天"," 2d"或" 2 d"等等,具体取决于用户&#39 ; s配置。

  • ActiveCell.Task.GetField(pjTaskDuration)返回相同的内容。

  • ActiveCell.Task.Duration返回960(Int32)。

<强>更新

对于最终用户创建的自定义字段,TryParse可用于确定可能的数据类型。这是一个简单的vb示例:

Dim s As String
Dim d as Date
With Application.ActiveSelection
    s = .Tasks(0).GetField(.FieldIDList(0))
End With
If Date.TryParse(s, d) Then
    ' it is a date
Else
    ' it's not a date, maybe check to see if it's an integer
End If