更改工作项窗体布局
通过导出 XML 文件并修改 FORM 节的内容,可以更改工作项窗体布局。 修改并导入 XML 文件之后,可以验证在更新的工作项类型中所做的更改。 可以进行的布局更改类型包括但不限于下面列出的情况:
更改窗体上字段的标签或位置
将字段组从一个选项卡移动到另一选项卡
添加新选项卡或列
有关可以放置在工作项窗体中的控件的概述,请参阅指定工作项窗体控件。 有关 FORM 节的顶级结构元素的概述,请参见 设计工作项窗体。
要求
若要执行此过程,您必须是**“Team Foundation Administrators (Team Foundation 管理员)”组的成员或项目的“Project Administrators (项目管理员)”**组的成员。 有关详细信息,请参阅 Team Foundation Server 权限参考。
导出并打开 WIT 定义文件
基于所进行的自定义的范围,执行以下步骤之一:
如果要修改单个项目的工作项类型:
运行 witadmin exportwitd 导出要修改的工作项类型的 XML 文件。 有关详细信息,请参阅导入、导出和管理工作项类型 [witadmin]。
在 Visual Studio 中打开该文件。
如果要修改 WIT 以自定义过程模板:
移至下载过程模板的位置。
打开 WIT XML 文件。
更改 FORM 部分的布局
找到该 XML 文件的 <TabGroup> 节。 请注意,该节中有用于“Links”(链接)和“File Attachments”(文件附件)的 <Tab> 元素,其中每个 <Tab> 元素包含一个呈现各自控件的 <Control> 元素。
<Tab Label="Links"> <Control Type="LinksControl" /> </Tab> <Tab Label="File Attachments"> <Control Type="AttachmentsControl" /> </Tab>
通过使用下面示例中所示的新 XML 替换上一步骤中所示的 XML,可将两个 <Tab> 元素合并为一个同时包含两个控件的“链接和附件”<Tab> 元素:
<Tab Label="Links and Attachments"> <Control Type="LinksControl" Label="Links" LabelPosition="Top" /> <Control Type="AttachmentsControl" Label="Attachments" LabelPosition="Top" /> </Tab>
找到描述要修改的组(如 Classification 组)的 <FORM>、<Layout> 定义部分。
<Group Label="Classification"> <Column PercentWidth="100"> <Control Type="WorkItemClassificationControl" FieldName="System.AreaPath" Label="Area" LabelPosition="Left" /> <Control Type="WorkItemClassificationControl" FieldName="System.IterationPath" Label="Iteration" LabelPosition="Left" /> </Column> </Group>
备注
为获得最佳结果,每个 Control(控件)或 Group(组)应显示在一个 Column(列)中,即使该列跨越整个窗体宽度也应如此。相应地,每列应该显示在一个组中,即使该组没有可见的标签或边界也应如此。
选择以下行并将其复制到剪贴板以便稍后使用。
<Control Type="WorkItemClassificationControl" FieldName="System.AreaPath" Label="Area" LabelPosition="Left" /> <Control Type="WorkItemClassificationControl" FieldName="System.IterationPath" Label="Iteration" LabelPosition="Left" />
从以下 XML 中删除以 <Group Label="Classification"> 开始并以 <Group> 结束的行,以便将 Classification 组从其窗体上的当前位置移除。
<Layout> <Group> <Column PercentWidth="70"> <Control Type="FieldControl" FieldName="System.Title" Label="&Title:" LabelPosition="Left" /> </Column> <Column PercentWidth="30"> <Control Type="FieldControl" FieldName="Microsoft.VSTS.Common.Discipline" Label="&Discipline:" LabelPosition="Left" /> </Column> </Group> <Group Label="Classification"> <Column PercentWidth="100"> <Control Type="WorkItemClassificationControl" FieldName="System.AreaPath" Label="&Area:" LabelPosition="Left" /> <Control Type="WorkItemClassificationControl" FieldName="System.IterationPath" Label="&Iteration:" LabelPosition="Left" /> </Column> </Group>
在 <TabGroup> 部分,找到下列定义**“Details”(详细信息)**选项卡的行:
<Tab Label="Details"> <Group> <Column PercentWidth="50"> <Group Label="General"> <Column PercentWidth="100"> <Control Type="FieldControl" FieldName="Microsoft.VSTS.Common.Issue" Label="Iss&ue:" LabelPosition="Left" /> <Control Type="FieldControl" FieldName="Microsoft.VSTS.Common.ExitCriteria" Label="E&xit criteria:" LabelPosition="Left" /> <Control Type="FieldControl" FieldName="Microsoft.VSTS.Build.IntegrationBuild" Label="Integration &build:" LabelPosition="Left" /> <Control Type="FieldControl" FieldName="Microsoft.VSTS.Scheduling.TaskHierarchy" Label="Task C&ontext:" LabelPosition="Left" ReadOnly="True" /> </Column> </Group> </Column> <Column PercentWidth="50"> <Group Label="Schedule"> <Column PercentWidth="100"> <Control Type="FieldControl" FieldName="Microsoft.VSTS.Scheduling.RemainingWork" Label="Remaining &work (hours):" LabelPosition="Left" /> <Control Type="FieldControl" FieldName="Microsoft.VSTS.Scheduling.CompletedWork" Label="Com&pleted work (hours):" LabelPosition="Left" /> <Control Type="FieldControl" FieldName="Microsoft.VSTS.Scheduling.StartDate" Label="Start Dat&e:" LabelPosition="Left" ReadOnly="True" /> <Control Type="FieldControl" FieldName="Microsoft.VSTS.Scheduling.FinishDate" Label="&Finish Date:" LabelPosition="Left" ReadOnly="True" /> </Column> </Group> </Column> </Group> </Tab>
若要将这些控件移至**“详细信息”**选项卡,请在 <Tab Label="Details"> 元素下粘贴剪贴板中的内容。
<Tab Label="Details"> <Control Type="WorkItemClassificationControl" FieldName="System.AreaPath" Label="Area" LabelPosition="Left" /> <Control Type="WorkItemClassificationControl" FieldName="System.IterationPath" Label="Iteration" LabelPosition="Left" /> <Group> <Column PercentWidth="50"> <Group Label="General"> <Column PercentWidth="100"> <Control Type="FieldControl" FieldName="Microsoft.VSTS.Common.Issue" Label="Iss&ue:" LabelPosition="Left" /> ...
进行以下更改以围绕移动的字段创建分组并将字段划分为两列:
<Tab Label="Details"> <Group Label="Classification"> <Column PercentWidth="50"> <Group> <Column PercentWidth="100"> <Control Type="WorkItemClassificationControl" FieldName="System.AreaPath" Label="Area" LabelPosition="Left" /> <Control Type="WorkItemClassificationControl" FieldName="System.IterationPath" Label="Iteration" LabelPosition="Left" /> </Column> </Group> </Column> <Column PercentWidth="50"> <Group> <Column PercentWidth="100"> <Control Type="FieldControl" FieldName="MyCompany.MyProcess.Category" Label="Category" LabelPosition="Left" /> </Column> </Group> </Column> </Group> <Group> <Column PercentWidth="50"> <Group Label="General"> <Column PercentWidth="100"> <Control Type="FieldControl" FieldName="Microsoft.VSTS.Common.Issue" Label="Iss&ue:" LabelPosition="Left" /> ...
保存更改。
若要将新工作项类型导入单个项目,请参阅导入、导出和管理工作项类型 [witadmin]。 若要将工作项类型添加到过程模板中,请参阅向过程模板添加工作项的类型定义。
验证网页或 HTML 内容是否显示在工作项窗体中
在团队资源管理器中,选择**“刷新”**以从服务器下载最新的更新。
这些更新包括您刚导入的更改。 请等待几秒钟,直到加载了“工作项”节点。 正在加载中的节点显示**“正在工作”**。
使用所修改的工作项类型创建新工作项。
请注意,Classification 组已不再在主窗体上。 在**“链接和附件”选项卡上,选择“详细信息”**选项卡以查看所做更改的结果。