定义默认值或将值复制到字段

更新:2011 年 1 月

可以指定字段的默认值,也可以复制另一个字段的值或系统定义的值。 字段默认值是控制如何自动指派字段值的规则。 可以使用以下元素之一指派字段默认值:COPY、DEFAULT 和 SERVERDEFAULT。 可以将这些元素指定为 FIELD(定义)元素或 FIELD(工作流)元素的子元素。

COPY 和 DEFAULT 元素在开始编辑时填写值,而 SERVERDEFAULT 规则在向数据库提交工作项时填写值。 此操作在用户保存对工作项所做更改时发生,且用户无法重写该值。 此类字段通常在工作项窗体中以只读形式出现。 SERVERDEFAULT 规则用于“上次更改者”和“上次更改日期”等字段,以支持安全的审核记录。

主题内容

  • 定义默认值的语法结构

  • 定义默认值

  • 自动清除字段

  • 保存字段值

  • 指定时钟作为默认值

定义默认值的语法结构

可以使用 COPY、DEFAULT 和 SERVERDEFAULT 元素将值从一个字段复制到另一个字段,将服务器值复制到字段,或者指定要为字段定义的默认值。

提示

如果正在更改工作项,则 COPYDEFAULT 元素规则可以选择源字段中的当前值或以前的值。

  • 可以指定要从其他字段复制的值、时钟的值或当前用户的名称。 如果为 from 特性指定 value 或 field,则必须指定 value 或 field 特性。 用户更改或创建工作项时,无论字段中已存在何值,COPY 规则都会填写一个字段值。

    <COPY for="userGroupName" not="userGroupName"  from="value | field | clock | currentuser" value="valueToCopy" field="fieldReferenceName/>
    
  • 可以使用 DEFAULT 规则为字段指定默认值。 用户创建或编辑工作项时,如果该字段为空,则 DEFAULT 规则将填写一个值。 可以指定要从其他字段复制的值、服务器时钟记录的日期/时间戳或当前用户的名称。 如果字段已具有值,则忽略此规则。

    <DEFAULT for="userGroupName" not="userGroupName" from="value | field | clock | currentuser" value="defaultValue" field="fieldReferenceName" />
    
  • 保存工作项时,可以指定要从服务器复制到字段的值。 用户更改工作项的状态时,SERVERDEFAULT 规则会指定要从服务器组件派生的值复制到当前字段的值。 DEFAULT 和 COPY 元素在用户打开工作项进行修改时填写值,而 SERVERDEFAULT 规则是在向数据库提交工作项时填写值。 此操作会在用户保存工作项时发生。 用户不能重写该值。 这些字段通常在窗体中以只读形式显示。 SERVERDEFAULT 规则用于“上次更改者”和“上次更改日期”等字段,以支持安全的审核记录。

    <SERVERDEFAULT for="userGroupName" not="userGroupName" from="clock | currentuser" />
    

这些规则元素中的每一个都指定标识值来源的 from="fromType" 特性。 根据 fromType 值,可能需要其他特性。 下表描述了 COPY, DEFAULT, and SERVERDEFAULT 规则元素引用的所有特性。

特性

说明

for

可选。 指定 Team Foundation 中应用规则的用户或组的名称。 有效名称是包含 1 至 255 个字符的文本字符串。

模式值:^[^\\]+\\[^\\]+$

模式值示例:域\用户 ID

not

可选。 指定 Team Foundation 中不应用规则的用户或组的名称。 有效名称是包含 1 至 255 个字符的文本字符串。

模式值:^[^\\]+\\[^\\]+$

模式值示例:域\用户 ID

from

必选。 指定是从 value 特性、field 特性、系统时钟还是当前用户复制默认值。 如果为 from 特性指定 value 或 field,则必须分别指定 value 或 field 特性。 可以指定以下值:

  • clock:从系统时钟复制时间。使用当前的日期和时间作为值。 不需要其他特性。 对于 COPYDEFAULT 规则,该值取自本地计算机时钟。 对于 SERVERDEFAULT 规则,该值取自提交时的服务器时钟。 仅对于 DateTime 字段有效。

  • currentuser:复制已登录用户的名称。 使用当前用户的短用户名作为值。 不需要其他特性。 仅对于字符串字段有效。

  • field:复制为所指定 field 特性定义的值。 需要 field="abc" 特性。 默认情况下,如果指定的“from”字段为空,则不执行任何操作。 field 特性只用于 COPYDEFAULT 规则。

  • value:复制指定的 value 特性的值。

value

可选。 为 from 特性指定 value 时,指定要复制到字段中的值。 有效值是包含 1 至 255 个字符的文本字符串。

要复制的值可以为空。

field

可选。 为 from 特性指定 field 时,指定其值要复制到字段中的字段名称。 如果 from 特性的值是“field”,则必须定义此特性。

要复制的字段的引用名称。 该引用名称必须与 FIELD(定义)元素中定义的引用名称相匹配。 有关更多信息,请参见 FIELD(定义)元素

模式值:^[a-zA-Z_][a-zA-Z0-9_]*(\.[a-zA-Z0-9_]+)+$

模式值示例:公司.部门.问题类型

返回页首

定义默认值

以下示例将 P3 设置为“Priority”字段的默认值。

<FIELD refname="MyCorp.Priority" name="Priority" type="String">
<HELPTEXT>Specify the severity of the problem</HELPTEXT>
    <ALLOWEDVALUES>
        <LISTITEM value="P1"/>
        <LISTITEM value="P2"/>
        <LISTITEM value="P3"/>
    </ALLOWEDVALUES>
<DEFAULT from="value" value="P3"/>
</FIELD>

返回页首

自动清除字段

在下面的示例中,清除了状态字段。

<FIELD refname="MyCorp.Status" name="Status" type="String">
    <COPY from="value" value="" />
</FIELD>

返回页首

保存字段值

在下面的示例中,保存最近更改了工作项的用户的用户名。

<FIELD refname="System.Last Changed By" name="Last Changed By" type="String">
    <HELPTEXT>The name of the user who most recently modified this bug</HELPTEXT>
    <VALIDUSER group="[Project]\MyProjectMembers" />
    <SERVERDEFAULT from="currentuser" />
</FIELD>

返回页首

指定时钟作为默认值

在下面的示例中,字段的值使用当前日期,但用户可以更改该值。

<FIELD refname="MyCorp.FoundOn" name="Found On" type="DateTime">
    <HELPTEXT>Defines when a bug was found.</HELPTEXT>
    <DEFAULT from="clock" />
</FIELD>

提示

对于包含撇号的值(例如“Won’t Fix”),必须在 XML 中使用双引号,如下面的示例所示:

<LISTITEM value="Won’t Fix"/>

返回页首

请参见

概念

All FIELD XML 元素引用

其他资源

使用字段规则

定义工作项字段

修订记录

日期

修订记录

原因

2011 年 1 月

为所有默认元素提供了语法以及为示例提供了更多上下文。

信息补充。