来分享喜悦喽,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这个参数查询数据。注意一下这个数据集在本地运行可能无结果,我们放在模版里创建新项目,在服务器上允许的时候即可获取当前项目名称。