TFS:如何为优先级添加“文本名称”

时间:2010-10-01 15:20:03

标签: tfs

是否有可能将文字添加到优先级中?拥有像“1 - Blocker”,“2 - Critical”,“3 - High”等......这样的值会很好。

尝试将“优先级”字段(refname =“Microsoft.VSTS.Common.Priority”)的“ALLOWEDVALUES”更改为

    <ALLOWEDVALUES>
      <LISTITEM value="1 - Blocker" />
      <LISTITEM value="2 - Critical" />
      <LISTITEM value="3 - High" />
      <LISTITEM value="4..." />
      <LISTITEM value="5..." />
      <LISTITEM value="6..." />
    </ALLOWEDVALUES>

给出一个错误,该字段应为整数。

我看到几个选项:  1.将字段类型更改为字符串  2.使用'string'类型创建一个单独的自定义字段“MyPriority”。

您能告诉我们什么是最佳选择(从长期使用角度来看)?

非常感谢!

2 个答案:

答案 0 :(得分:4)

您无法更改现有字段的类型。我过去所做的是添加一个新的字段,显示在表单上。然后在字段中添加一些逻辑以复制

将以下文字添加到FIELDS部分

  <FIELD name="My Priority" refname="My.Priority" type="String" reportable="dimension">
    <REQUIRED />
    <ALLOWEDVALUES>
      <LISTITEM value="1 - Blocker" />
      <LISTITEM value="2 - Critical" />
      <LISTITEM value="3 - High" />
      <LISTITEM value="4..." />
      <LISTITEM value="5..." />
      <LISTITEM value="6..." />
    </ALLOWEDVALUES>
    <DEFAULT from="value" value="3 - High" />
  </FIELD>

并将默认优先级字段更改为

  <FIELD name="Priority" refname="Microsoft.VSTS.Common.Priority" type="Integer" reportable="dimension">
    <REQUIRED />
    <ALLOWEDVALUES>
      <LISTITEM value="1" />
      <LISTITEM value="2" />
      <LISTITEM value="3" />
      <LISTITEM value="4" />
    </ALLOWEDVALUES>
    <DEFAULT from="value" value="2" />
    <WHEN field="My.Priority" value="1 - Blocker">
      <COPY from="value" value="1" />
    </WHEN>
    <WHEN field="My.Priority" value="2 - Critical">
      <COPY from="value" value="2" />
    </WHEN>
    <WHEN field="My.Priority" value="3 - High">
      <COPY from="value" value="3" />
    </WHEN>
    <WHEN field="My.Priority" value="4...">
      <COPY from="value" value="4" />
    </WHEN>
  </FIELD>

在FORMS部分中找到优先级并将其更改为使用My.Priority:

  <Control Type="FieldControl" FieldName="My.Priority" Label="Pri&amp;ority:" LabelPosition="Left" />

答案 1 :(得分:1)

我认为你不能改变现有领域的类型。所以第二个选项是唯一的选择。在我的公司,我广泛定制了工作项类型,并使用了很多自定义字段。它运作良好。话虽如此,您需要使用现有的优先级数据(如果有的话)加载新字段。

将数据从Microsoft.VSTS.Common.Priority字段复制到“新自定义字段”的简单存储过程应该可以完成这项工作。 WorkItemsLatestUsed表应该是唯一用于此目的的表。