自定义过程模板之自定义报表

来分享喜悦喽,o(∩_∩)o 哈哈

首先请先阅读一下MSDN的文献,提供一下网址 http://msdn.microsoft.com/zh-cn/library/vstudio/ms243910(v=vs.110).aspx

简单说明下我使用的是CMMI的模板。下面介绍一下我的操作步骤。

(1)首先下载CMMI的过程模版;

(2)把自己的rdl文件放在MSF for CMMI Process Improvement v5.0Reports  目录下;--rdl的创建下面再介绍。

(3)修改MSF for CMMI Process Improvement v5.0ReportsReportsTasks.xml文件,在<reports>下添加一个<report>标签

我有个大胆的猜测是把我们添加的<report>标签里面的<parameters>标签删除,虽然微软的说明里面是<parameter>是<reports>的一个必须选项。

(4)保存之后,将模版重新上载到项目集合,新建一个项目即可。若是报表报错,可以在sharepoint尝试修改一下数据源

下面讲一下我的报表的创建过程,我做的是最简单的报表,只获取当前项目名称。

(1)首先创建一个共享数据源,叫TfsReportDS,注意大小写;

(2)新建一个报表,给报表创建3个参数

ExplicitProject:Text类型,允许空白值,默认值指定为  /TfsReports/Collection0/ProcessTestProjectCMMI0;--我从系统的报表里拷的

ReportPath:Text类型,默认值指定为  =IIF(LEN(Globals!ReportFolder) > 0,Globals!ReportFolder, Parameters!ExplicitProject.Value) ;

ProjectName:Text类型,默认值从数据集查询中获取值。----我的是从dsProjectGuid数据集中获取ProjectNodeName

下面的sql是dsProjectGuid的查询文本,我从系统的报表里拷贝的,o(∩_∩)o 哈哈

SELECT TOP 1 p.ProjectNodeGUID, p.ProjectNodeName FROM
(
    SELECT ProjectNodeGUID, ProjectNodeName, 1 AS RowRank FROM GetProjectNodeInfoFromReportFolder(@ReportPath)
    UNION
    SELECT '00000000-0000-0000-0000-000000000000' AS ProjectNodeGUID, 'missing' AS ProjectNodeName, 0 AS RowRank
) p ORDER BY p.RowRank DESC

然后我自己建了个数据集使用ProjectName这个参数查询数据。注意一下这个数据集在本地运行可能无结果,我们放在模版里创建新项目,在服务器上允许的时候即可获取当前项目名称。

原文地址:https://www.cnblogs.com/huhu-xiaomaomi/p/3730335.html