SQL Server Reporting Services开发步骤
这是我2006年在CRM系统的时候总结出来的关于开发微软SQL Server Reporting Services的一些方法,当时是写给我们部门其他同事使用的一个手册,拿出来跟大家共享一下了,希望对现在需要做这方面开发的人有所帮助,不过现在这方面的资料已经很多了,2006年的时候只有微软的一个说明,英文的,对于我这样英文不是很好的人,着实琢磨了很久才写出来的.
SQL Server 2000 Reporting Services报表制作与发布
Reporting Services 是一个集成了 Visual Studio .NET 2003 和 SQL Server 2000 的企业级系统,有利于基于数据的报表的创作、发布、管理和用户访问。它是 Microsoft 提供的 SQL Server 2000 的免费附加组件,其升级版本可能会成为 SQL Server 2005 的一个内置组件。
虽然 Reporting Services 需要 SQL Server 2000,但它并不局限于只处理 SQL Server 数据。您可以基于 OLE DB、ODBC 和 Oracle 数据源来创作报表,也可以用 SQL Server 数据库中的数据来创作。作为一个 Visual Studio .NET 专业人员,很可能会遇到有关 Reporting Services 的问题,这是因为它的报表设计器是通过 Visual Studio .NET 实现的。Reporting Services 支持用于定义报表的 XML 语法,因此也可以使用第三方产品来创作报表,不过报表的默认设计器是 Visual Studio .NET。
Reporting Services 的最初版本是通过基于角色的安全性来管理报表访问和创作的。角色的权限以独占方式应用于 Windows 用户和组。Reporting Services 在功能方面极其丰富。它支持多种报表格式和对象。可以使用标准表格式,也可以使用交叉表报表的矩阵对象。还可以在其报表中包含图表和子报表。可以对报表中的值有选择地启用向下追溯功能,并通过参数值使报表变为动态。甚至可以从一个报表向下追溯到另一个报表。还有一种将数据作为窗体显示的自由形式格式。可以用多种格式发布报表,包括 HTML、Excel、以逗号分隔的文本、PDF、TIFF、Office Web 组件和 XML。
Visual Studio .NET 实现了报表设计器。安装 Reporting Services 之后,在选择用 Visual Studio .NET 启动一个新项目时,将注意到一个新的项目类型。Business Intelligence Projects 类型包含两个模板。使用报表项目向导模板就生成了一组自动进行报表创作的屏幕。使用报表项目模板生成一个可以手动设置格式的空白报表。使用 Visual Studio .NET,可以连接到数据源、开发查询、基于该查询设置报表的格式,以及将完成的报表部署到报表服务器上。
Reporting Services 是作为一个 Web 服务实现的,用户和管理员可以连接到此 Web 服务的站点 http://hostsitename/reports。这个服务可以自动公开对调查、访问和管理报表等任务有利的报表管理器 UI。通过这个 UI 公开的功能范围取决于与通过报表管理器连接到报表服务器的 Windows 用户角色相关联的权限。
同时Reporting Services通过Web服务,以Web服务器的方式向外提供报表服务的,可通过连接到此Web站点http://hostsitename/ReportServices进行访问,通过连接到该站点可查看系统中提供的所有报表信息,单击具体报表可浏览具体的报表信息。
一:SQL Server Reporting Services安装
SQL Server Reporting Services在SQL Server 2000中是不包含的,需单独安装,而在SQL Server 2005中是作为其一个组件提供的,也就是说在SQL Server 2005中不需单独安装。SQL Server Reporting Services包含三部分:报表管理器,报表服务器,报表设计器。报表管理器和报表服务器必须安装在已经安装有SQL Server 2000企业版的机器上,不能安装在SQL Server 2000个人版的机器上,同时该机器要安装有IIS5.0及其以上的版本的Web服务器,因为报表服务器和报表管理器都是通过Web的形式进行管理的,在安装报表服务器和报表管理器的同时会在SQL Server 2000/2005中创建用于服务和管理的两个数据库,分别是Reports和ReportServer,虽说SQL Server Reporting Services可用于不同的数据库,但用于管理所依靠的必须是SQL Server数据库。
报表设计器用于设计报表的,必须安装在Visual Studio.Net 2003的机器上,通过Visual Studio.Net 2003进行设计。一般要求不要和企业管理器安装同一台机器上。如果安装有SQL Server 2005,则系统默认安装有报表设计器。
具体安装步骤如下:
二:报表制作
1.新建项目:启动Visual Studio.NET 2003→“文件”→“新建”→“项目”,得到如下的信息提示框:
选择“商业智能项目”,在“模板”中是选择“报表项目向导”或直接选择“报表向导”,一般对于刚接触报表设计的话,选择“报表项目向导”的方法,系统会提示每步需要做什么工作,当很熟练的时候一般选择“报表项目”,以便有更多的控制权。
2.设置数据源:系统中提供“共享数据源”,在“解决方案资源管理器”中找到“共享数据集”,如下所示:
右击选择“添加新的数据源”,得到“数据连接属性”,填写要连接的服务器等相关信息,如下所示:
3.添加报表:在“解决方案资源管理器”中找到“Reports”,点右键,选择“添加新报表”是以报表向导的方式给出的,可按照向导的方式完成报表的设计,也可以直接选“添加”→“添加新项”,直接进入报表设计窗口,如下所示:
输入报表名称和选择的模板就进入报表设计的具体窗口,注意的是在Visual Studio.NET 2003的菜单上多出一个“报表”菜单项,用于设置报表的相关属性的,如在报表中添加参数等,如下所示:
4.在具体的报表中添加数据集:在设计窗口把视图切换到“数据”选项卡,如果没有数据,则选择“新建数据集”,如下所示:
在上图中填写数据集的名称,数据源,以及查询字符串,这样新建了一个数据集,查询字符串为查询SQL语句,不过注意的是:可以在SQL语句中使用报表参数,在参数前面添加@区分为参数。查询语句如下:
Select T_Area.Area_Name AS AreaName,
T_City.City_Name As CityName,
T_Query_Total.CurrentNum,
T_Query_Total.LastMonthNum,
T_Query_Total.LastYearNum,
dbo.fn_GetYearAndMonth(T_Query_Total.YearMonth) As YearMonth
From T_Query_Total,T_City,T_Area,T_Area_City
Where T_Query_Total.CityID=T_City.City_ID and
T_City.City_ID=T_Area_City.City_ID and
T_Area_City.Area_ID=T_Area.Area_ID and
T_Area.Fac_Code=T_Query_Total.FactoryID and
T_Query_Total.FactoryID=@FactoryID and
T_Query_Total.YearMonth between @BeginDate and @EndDate
Order By T_Consumer_Total.YearMonth
参数的设置为,在系统菜单中选择“报表”→“报表参数”,出现如下所示的图象界面:
5.设置报表布局:选择“布局”选项卡,在工具箱中选择要使用的报表工具,一般复合报表选择“矩阵”,图形报表选择“图表”,出现如图所示的窗口:
可设置矩阵属性,选择控件,点右键,选择属性窗口,设置控件属性,如下所示:
如果要控制报表外观,则选择控件,通过属性窗口设置相关的属性,如下所示:
7.预览报表,报表设计好后可直接预览报表,切换到“预览”选项卡,出现如下所示的窗口,输入条件,点查看报表即可预览报表,如下所示:
三:报表发布
通过报表管理器,把报表发布在报表服务器上,通过Web方式发布,在IE地址栏中输入http://hostsitename/reports,如可用http://220.169.60.26/Reports/,出现如下所示的控制页面:
把制作好的报表上传到报表服务器上,点上载文件,出现上载文件页面,如下所示:
要修改具体的某项,点具体的报表,设置相关的属性,注意的是要设置报表的数据源,一般是新建一个共享数据源,设置的方法同报表设计的时候的共享数据源,如下所示:
设置可访问报表的角色,便于系统报表的访问,默认情况下,报表是使用Windows验证的方式,如不想使用Windows帐号访问报表,可设置其他帐号访问,但必须把要访问的帐号添加到安全角色中。
添加角色的方式是,在上图中选择“安全”选项卡,如下所示:
选择“新建角色分配”,出现以下页面,填写角色名称,如本例中添加了系统报表以匿名方式访问,则可添加“IUSR_RZXT3”,选择该角色只能浏览报表,则选择浏览者角色,点“确定”,如下所示: