integrated reportinggservice怎么让报表参数默认值取当月

 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
SQLServer2008ReportingService快速提升系列课程(1):全面介绍ReportingServices的使用.
下载积分:5000
内容提示:SQLServer2008ReportingService快速提升系列课程(1):全面介绍ReportingServices的使用、开发和发布
文档格式:PDF|
浏览次数:11|
上传日期: 14:25:39|
文档星级:
该用户还上传了这些文档
SQLServer2008ReportingService快速提升系列课程(1):全
官方公共微信Report(14)
SQL及数据库(40)
.cn/s/blog_59ca2c2a01011amy.html
今天我们来学习一下ReportingService报表的制作。
ReportingService是微软提供的一个制作报表的工具,它集成在Microsoft Visual Studio中。
启动Visual Studio,如下图所示:
&&&&启动之后进入开始界面,如下图所示:
&&&&界面的上边是菜单栏、工具栏。左边是“服务器资源”和“工具箱”选项卡,服务器资源中放置的服务器连接之类的东西,工具箱中放置的是文本框、线条、表格等图标。右边放置的事“解决方案资源管理器”和“属性”选项卡,解决方案资源管理器中放置的是工程中的数据源和报表文件,属性选项卡中放置的事选中对象的各种属性,如大小、颜色、字体等等。下边是输出栏,输出各种错误信息和警告信息。中间的主窗口中放置起始页或者选中文件的内容。
首先我们需要创建个报表工程,单击上图起始页中的“创建项目”链接,弹出“新建项目”的对话框,如下图所示:
&&&&在项目类型中选择“商业智能项目”,在模板中选择“报表服务器”,输入项目名称、位置等信息,点击“确定”按钮,在“解决方案资源管理器”中就会出现刚才新建的项目,如下图所示:
&&&&在项目中出现两个文件夹:共享数据源和报表。共享数据源文件中放置查询数据时所要用的数据库连接,报表文件夹中放置报表文件。要查询数据,必定要有数据源,所以下来我们要新建一个数据源。右击上图中的“共享数据源”文件夹,在右键菜单中选择“添加新数据源”,如下图所示:
&&&&弹出“共享数据源”对话框,如下图所示:
&&&&在“常规”选项卡的“名称”文本框中输入数据源的名称,“类型”下拉框中选择数据源的类型,目前Visual Studio中提供的数据源类型有Microsoft SQL Server、OLE DB、Oracle、ODBC等等。输入了数据源名称,选择了数据源类型,下来就该编辑连接字符串了。点击上图中的“编辑”按钮,弹出“连接属性”对话框,如下图所示:
&&&&在里边输入服务器名称、用户名和密码。如果数据源类型选择的是Oracle,那么此处的服务器名称应该是在Oracle的数据源配置文件tnsnames.ora中已经配置好的数据源的名字。如果这个文件中没有配置好,那么是无法连接的。输入完毕后,点击“测试连接”按钮,看是否能够正常连接。连接不正常的话,则需要查找原因,看是服务器名、用户名、密码或者是网络什么地方出了问题。连接正常则点击“确定”按钮,回到“共享数据源”对话框,此时在“连接字符串”框中就会显示配置的连接字符串。如下图所示:
&&&&接下来点击“凭据”选项卡,确认用户名和密码是否正确。如下图所示:
&&&&添加完数据源之后,就该添加报表了。右击“报表”文件夹,在右键菜单中选择“添加新报表”选项,如下图所示:
&&&&弹出“报表向导”对话框,如下图所示:
&&&选择我们刚刚新建的数据源,点击“下一步”按钮,如下图所示:
&&&&输入查询语句,这个查询语句是报表的查询语句,后边还可以修改的。点击“下一步”,选择报表类型,如下图所示:
&&&&点击“下一步”,选择要显示的字段,如下图所示:
&&&&在左边的可用字段列表中,显示了查询语句查出来的所有字段,将要显示的字段移到右边的显示字段列表中,这样改字段就会显示在报表中了。点击“下一步”,选择报表的样式,如下图所示:
点击“下一步”,显示报表的总体信息,如下图所示:
确认无误,就点击“完成”按钮。此时主界面上就会出现一个空的报表。如下图所示:
我用了一个已经做好的报表做演示,所以你看见主界面上是有表格等内容的。刚刚建好的报表是没有上述内容的。接下来我们就该添加报表的标题、表头、表格等内容了。
选中左侧工具箱中的报表项里边的文本框,将其将其拖到报表中,我们将其作为报表的标题,如下图所示:
然后修改该文本框中的内容以及字体、大小、颜色等属性,如下图所示:
选中这个文本框,就会在右侧的“属性”选项卡中出现该文本框的各属性值,如“Value”中可以输入文本框的内容,“Size”中可以输入文本框的大小,“外观”里边可以选择文本框的字体、颜色、大小、边框、对齐方式等等。对属性做了修改之后,在中间的布局页面中就会即时显示修改后的效果。
下来我们添加表格,在工具箱中选择“表”,将其拖到布局中。如下图所示:
然后编辑表头,如下图所示:
输入表头的内容,选择表头的字体、大小、颜色等属性。如果列数不够,需要插入列,则右击某列,在右键菜单中选择“在右侧插入列”即可,如下图所示:
报表的样式设置好后,我们就该设置查询的SQL语句了。
作为一个报表来讲,一般情况下有供用户输入或者选择的参数,用户输入了这些参数之后,根据参数查询符合要求的记录。有些参数可能需要根据数据表中的记录来产生一个下拉框,用户在下拉框中选择。所以一般情况下一个报表有两条或者更多的SQL语句,一条是用作查询报表数据的,其它的是查询报表可选参数值的。
首先我们来建立一个查询报表可选参数值的SQL语句。选择“数据”选项卡,在“数据集”下拉框中选择“新建数据集”,如下图所示:
弹出一个“数据集”对话框,如下图所示:
在“名称”文本框中输入该数据集的名称,在“数据源”中选择该数据集的数据源,即下边的查询语句从哪个数据源中进行查询。在“查询字符串”文本域中输入参数的查询语句,这个查询语句查出来的数据会放在下拉框中,其中一列作为前后台传递的Value,另外一列作为显示给用户的Text,所以参数查询语句中只要查询两列就可以了。点击“确定”按钮,“数据”选项卡中就会显示我们刚刚建立的数据集,如下图所示:
点击后边的“...”按钮,这是编辑按钮,可以对该数据集进行修改。
查询参数的SQL语句设置好后,就该进行参数的设置了。点击“报表”菜单,选择“报表参数”,如下图所示:
弹出“报表参数”对话框,如下图所示:
目前我们界面上添加了两个参数:polNo和endDate,polNo的数据类型是String型,提示为“保单号”。目前参数的数据类型有Boolean、DateTime、Integer、Float、String几种可选,如下图所示:
到时在报表的上方就会显示一个参数,左边的提示信息为“保单号”,右边会显示一个文本框。
endDate的类型是DateTime型,如下图所示:
报表的界面上有一个截止日期的参数,右边显示一个文本框,供用户输入日期,后边还会多出一个日历选择控件,用户可以点击该控件来选择日期。在上图中,还有“允许空值”、“允许空白值”等复选框以及默认值中的几个单选钮。如果选中“允许空白值”复选框,那么截止日期中用户不输入任何值,也可以进行查询。如果该复选框没有被选中,在查询界面中截止日期没有输入值,点击“查询报表”按钮,会弹出一个“截止日期参数不允许为空”的提示框。
上边都是普通类型的参数,直接供用户输入的,接下来我们再添加一个下拉框参数,让用户在有限的值中进行选择。选择的数据的来源就是我们前边的添加的queryCompany数据集。如下图所示:
点击“添加”按钮,在“名称”文本框中输入“company”,数据类型选择“String”,提示为“分公司”,可用值选择“来自查询”,数据集选择“queryCompany”。这样,下边的值字段和标签字段的下拉框中就会出现queryCompany数据集对应的查询语句中的两个字段。值字段选择“COMPANY_ID”,标签字段选择“COMPANY_NAME”。所谓值字段就是传递到后台的数据的那个字段,标签字段是显示给用户看的那个字段。然后设置一下分公司的默认值,选择“来自查询”,数据集和值字段与上边相同。这儿选择了默认值之后,进入报表的查询页面,就会根据默认值的设置来显示初始值给用户。如果不设置默认值,那么分公司下拉框的初始值就是一个空值。
这样,三个参数就添加好了,下来我们添加整个报表的查询语句。添加一个数据集,如下图所示:
这个数据集主要提供整个报表的查询语句。需要注意的是,在“查询字符串”中,从界面传进来的参数需要用“?”代替,如下图所示:
咱们在前边添加了三个参数,也就是说会从查询界面中传递三个参数进来。在查询语句中需要用参数替换的地方我们写成了“?”,那么这些参数是如何对应起来的呢?假如我们从界面中传了三个参数进来,在查询语句中有七处使用了这些参数,那么在查询语句中就应该有七个问号“?”。这七个问号按照顺序从1到7,我们需要为这七个问号一一指定用哪个参数来替换它。点击“querySQL”数据集后边的编辑按钮,弹出“数据集”对话框,如下图所示:
点击“字段”选项卡,这里边列出了查询语句所能查出的字段。这个不是我们要关注的重点,我们需要关注的是“参数”选项卡中的内容,如下图所示:
查询语句中有多少个问号“?”,这儿的“参数”列表中就有多少条记录,每一条记录对应于一个问号,按照它们在SQL语句中出现的顺序排列,这一点很重要,否则ReportingService就不知道哪个问号该用哪个参数来替换。如果第1个问号要用polNo的值来替换,则在第1条记录的值中选择“=Parameters!polNo.Value”,以此类推,为所有的问号都设置好参数,最终的结果如下图所示:
设置好后,点击“确定”按钮,接下来我们就该设置报表的布局信息了。点击“布局”选项卡,如下图所示:
选择一列,在“属性”选项卡的“Value”中选择该列要显示的字段值。这个值是可以稍作修改的,比如把这个值放在一个字符串中等等。我们在列表的上边添加两条提示信息,以显示统计单位和统计时间段。如下图所示:
编辑它的“Value”值,选择“表达式”,弹出“编辑表达式”对话框,如下图所示:
此处的语法和Java中连接String的语句类似,需要注意的事前边多一个等号“=”。上图示例中“统计单位”后边加上了queryHead数据集中查出的client_name字段的值。
下来我们再给报表做一个分组求和的操作。我们一个polNo作为分组的字段,对总保费等进行求和。如下图所示:
右击列表行,在右键菜单中选择“插入组”,弹出“分组和排序属性”对话框,如下图所示:
名称随便取,在“分组方式”中选择要进行分组的字段,此处我们以polNo作为Group By的字段,点击“确定”按钮,分组字段就选择好了,当然你可以选择多个分组字段。接下来就该进行求和了,如下图所示:
添加了分组字段之后,就会在类表的下边多出一行来,这一行就用来放置分组求和的信息。如图中所示,将这一行的第一列的值设置为“总计:”,将第2列的“Value”值改为“=Sum(Fields!PREMTOT.Value)”。这样,这一个单元格中的就会按照polNo分组,放置对premTot求和的值。其它两个字段也依次进行设置。
到现在,我们的报表就基本设置完了,下来我们就可以预览一下报表的结果是否符合我们的要求。点击报表的“预览”选项卡,如下图所示:
截止日期由于咱们设置的是Date类型,所以在后边出现了一个日历控件按钮。分公司咱们是从数据库中查出来的,所以它是以下拉框的形式存在的。输入参数之后,点击“查看报表”按钮,即可根据我们设置的查询语句和输入的参数查出数据放在下边的列表中。
如果报表没什么问题,下来我们就该部署了。如下图所示:
右击要部署的报表,在右键菜单中选择“部署”,ReportingService就会将这个报表部署到报表服务器中。从浏览器中登录报表服务器的地址去查看这个报表即可。
到此为止,我们的ReportingService报表就算开发完了。当然我讲的只是入门的知识,还有很多复杂的东西还需要大家在实践中自己去摸索总结。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:377139次
积分:5575
积分:5575
排名:第3160名
原创:127篇
转载:258篇
评论:16条
(1)(1)(1)(2)(3)(3)(4)(1)(3)(1)(5)(6)(4)(7)(2)(3)(3)(3)(3)(3)(7)(7)(2)(6)(3)(11)(6)(21)(1)(5)(2)(7)(1)(8)(7)(5)(1)(3)(2)(1)(11)(3)(1)(7)(13)(1)(5)(1)(2)(9)(3)(6)(2)(1)(7)(4)(23)(12)(4)(2)(5)(5)(2)(1)(4)(15)(4)(4)(1)(2)(7)(11)(2)(3)(7)(13)(34)Reporting Service 报表参数预设值技巧_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Reporting Service 报表参数预设值技巧
上传于||文档简介
&&R​e​p​o​r​t​i​n​g​ ​S​e​r​v​i​c​e​ ​报​表​参​数​预​设​值​技​巧
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢& & 本文讨论: Reporting 设计和部署报表 使用 Reporting Services 的 Web 服务 保证报表的 安全 本文使用下列技术: SQL Server、ASP.NET、Visual Basic .NET 代码下载: SQLServer ReportingServices.exe(222KB) 灵活的报表功能是大多数业务应用程序的一个要& & & & & & && & Reporting&& & 设计和部署报表&& & 使用 Reporting Services 的 Web 服务&& & 保证报表的安全& & 本文使用下列技术:& & SQL Server、ASP.NET、Visual Basic .NET& & 代码下载:& & SQLServerReportingServices.exe(222KB)& & 灵活的报表功能是大多数业务应用程序的一个要求,这些报表功能在集成到 Web 应用程序中之后用途更加广泛。利用 SQL Server&2000 Reporting Services 的最新版本,您可以轻松地具有来自各种数据源的报表生成功能。在本文中,我将介绍使用 Visual Studio&和 Reporting Services 来编写报表,并演示如何将报表集成到 Web 应用程序中。& & Reporting Services 是基于服务器的报表生成平台,该平台构建在 .NET Framework 上并与 SQL Server 2000 集成在一起,因此您可以使用一个扩展的基于 Web 服务的 API 将丰富的报表生成功能集成到应用程序中。尽管报表服务器使用 SQL Server 作为报表的储存库,但利用 OLE DB、ODBC 或 ADO.NET 提供程序的任何数据源都可以用来为报表提供数据,这就使得 Reporting Services 成为在各种企业环境中生成报表的极佳工具。& & Reporting Services 是作为 SQL Server 2000 的一部分而授权的,因此如果您有已授权的 SQL Server 的副本,则可以在同一服务器上运行 Reporting Services 而无需支付额外的许可证费用。如果您决定在独立的、尚未经 SQL Server 授权的计算机(例如,Web 服务器)上运行 Reporting Services,您将需要购买额外的 SQL Server 许可证。& & 要开始使用 Reporting Services,您可以下载位于 asp?TARGET=/sql/reporting/" target="_blank">SQL Server 2000 Reporting Services 的 120 天试用版软件,它还包括有关如何获得该产品的安装媒体的说明。在安装该产品时,请确保选中包括示例报表的选项,因为我要将这些报表集成到本文的 Web 应用程序中。& & Reporting Services 概述& & Reporting Services 报表设计使用新的 Visual Studio .NET 2003 报表设计器,在安装有 Visual Studio 的同一计算机上安装了 Reporting Services 后,该设计器就可以使用。设计器以新的基于 XML 报表定义语言 (RDL) 输出报表布局和数据访问的说明,而 RDL 文件会发布到报表服务器。如果您希望为用户提供创作功能,也可以使用第三方的报表设计器。& & 管理员可以使用基于 Web 的报表管理器来管理已发布的报表,并且可以执行一些任务,例如,保证某些用户组报表的安全或更改已部署报表的数据源连接字符串。用户也可以使用报表管理器来浏览和查看报表;但是很多公司倾向于使用 URL 请求或 Reporting Services Web 服务,将报表查看直接集成到它们现有的内部 Web 站点或应用程序中。& & & & 图1Reporting Services 体系结构& & 可以将报表参数化,这样用户可以在查看报表时从选择列表中进行挑选;它们还可以导出为多种格式,例如,Microsoft&Excel、PDF 和 XML。尽管实时报表提供最新的数据,也可以将报表缓存一段时间以提高性能并减少数据源上的负载。对于商务智能应用程序,报表可以访问 Analysis Services OLAP 多维数据集,而且 Reporting Services 甚至可以导入现有的 Microsoft Access 报表,尽管由于这两种技术间存在差异,它并不能支持所有的 Access 功能。有关 Reporting Services 体系结构的详细情况,请参见图1。& & 返回页首设计第一个报表& & 尽管我介绍的重点在于将报表集成到应用程序中而不是创作报表,但熟悉 Reporting Services 的最好办法就是立即着手创建一个新的报表项目。为此,请打开 Visual Studio 并使用 Report Project Wizard 创建一个新的项目,该向导位于 Business Intelligence Projects 部分。为您的项目指定一个名称,单击&OK&,然后将显示报表向导对话框。在您选择数据源的这一步骤中,单击&Edit&按钮,以便指定连接到您数据库服务器上的 AdventureWorks2000,单击&OK&,然后选中使其成为共享数据源的选项。& & 单击&Next&进入到&Design the Query&步骤,指定简单的 SQL 语句(例如,&SELECT * FROM Product&),然后单击&Next&。Reporting Services 支持显示一组固定列的标准表格式 (Tabular) 报表,也支持使用带有动态列的交叉表样式视图的矩阵式 (Matrix) 报表,因此为该报表选择 Tabular,然后单击&Next&。& & 将某些列(例如,ProductID 和 Name)拖到 Details 部分并单击&Next&。选择默认的 Bold 样式,单击&Next&,然后指定您的报表服务器的虚拟目录的 URL,例如,http://MyServer/ReportServer。现在,单击&Next&。最后一步,您可以为您的第一个报表指定名称,例如,Products Report;然后单击&Finish&。& & 该向导将会创建该项目,同时还创建一个可以由多个报表共享 AdventureWorks2000 数据源,以及一个在设计器中打开的有关 Products 数据的报表(请参见图2)。默认情况下,显示使您可以修改报表设计的 Layout 选项卡。& & & & 图2Visual Studio 报表设计器& & Data 选项卡用于指定报表的查询,包括设置参数以便在执行报表时提示用户提供值。单击&Preview&选项卡来测试报表显示给用户的方式。& & 现在,您可以将附加的报表添加到该项目,或者通过添加附加列、将数据分组、添加汇总、甚至是添加能够显示来自其他查询的数据的附加表来修改 Products 报表。与很多报表设计器不同,Reporting Services 使用带外设计,这使得它可以轻松地创建将各种源的数据集中在同一个位置的报表。& & 您刚刚创建的报表项目由当前驻留在您的开发计算机上的一组文件组成。为了将这些报表发布给用户,您需要将该项目部署到报表服务器。& & 返回页首部署和测试& & 在部署报表项目之前,需要指定将项目部署到哪一个服务器。如果您最初使用该向导创建了报表项目,那么您可能已经指定了目标服务器。& & 要检查该设置或指定一个新服务器,请选择&Project | Properties&来显示 Project Properties 对话框。进行该设置使您可以指定项目的文件夹名和 Reporting Services Web 服务的 URL。在菜单上选择&Build | Deploy Solution&将构建报表项目,然后将其部署到服务器。& & 在部署报表项目后,您就可以进行测试了。已部署到服务器的每个报表都具有唯一的路径,该路径可以用于在浏览器中显示报表。例如,要显示您创建的第一个报表,请打开浏览器并导航到 http://MyServer/ReportServer?/Report+Project1/Products+Report。这会以 HTML 格式呈现报表并在页面的顶端显示一个工具栏,以便使您可以对报表进行翻页、更改缩放比例,甚至以各种其他格式(例如,PDF)查看报表。& & 您还可以通过导航到服务器上的以下 URL,来浏览已部署到服务器的所有报表项目的列表:http://MyServer/ReportServer。报表服务器提供使您可以查看已部署的报表类型和查看报表的最小的用户界面。& & 报表管理器是一个更加友好、功能更丰富的工具,可以通过简单地导航到本地服务器上的以下 URL 来访问该工具:http://MyServer/Reports。& & 返回页首将报表添加到 Web 应用程序& & 既然您知道如何设计、部署和测试报表,就让我们将这些报表集成到应用程序中吧!很多 Web 应用程序都包括针对每个用户的自定义主页,通常称为&仪表板&。这个页面通常提供针对用户量身定做的摘要式信息并作为跳转点来访问应用程序的其他功能。& & 我将使用 Reporting Services 附带的示例报表构建一个仪表板来演示报表集成,如图3所示。如果您在安装过程中安装了示例报表,您可以打开该报表项目(安装到 \Reporting Services\Samples\Reports)并将其部署到测试服务器。您可以使用报表管理器工具通过浏览到 SampleReports 文件夹来测试示例报表。& & & & 图3仪表板 Web 应用程序& & 为用户提供从应用程序访问报表的权限的最简单方法就是使用超级链接。如您已经看到的那样,每个报表都具有唯一的、用于在浏览器中显示报表的路径。对于仪表板应用程序,报表应该在单独的窗口中打开,因此我将为该超级链接指定一个目标。到目前为止,这是非常简单的,但是对于具有参数报表的报表(例如,Employee Sales Summary 报表)来说,情况又如何呢?要真正地将报表集成到应用程序中,您通常需要为参数指定某些值,以便用户不会被经常提示。& & Reporting Services 使这项任务非常简单:报表参数的值可以指定为 URL 的一部分。例如,Employee Sales Summary 报表具有 ReportYear、ReportMonth 和 EmpID 参数,因此显示编号为 24 的员工在 11 月份的销售额的超级链接可以是:&a href="http://MyServer/ReportServer?/SampleReports/Employee SalesSummary&ReportMonth=11&EmpID=24" target="_blank"&November Sales Summary&/a&& & 不具有在 URL 中指定的值的参数将使用在报表设计器中设置的默认值,因此刚才展示的示例销售汇总报表使用的 ReportYear 值是 2003。Reporting Services 还有一组用于控制报表显示方式的内置参数。这些参数通过加上前缀&rs:&来区别您自己的报表参数。& & 其中最有用的一个参数就是 rs:Format 参数,它用于指定呈现报表的格式。这使您可以包括不需要显示在 HTML 中的报表,还可以使用诸如 PDF 甚至是 XML 的格式。其他常用参数是 rs:Command,指示出要应用到您所指定的路径的操作。例如,rs:Command=Render 将呈现一个报表,而 rs:Command=ListChildren 将列出文件夹中所有项。& & 如果您没有指定命令,Reporting Services 将查看您指定的路径并计算出要采取的适当操作,例如,呈现报表。图 4 显示了 rs:parameters 的列表。& & 另一组内置参数控制各种输出格式的行为并使用 rc:prefix。每个报表格式都具有其自己特定的一组参数。例如,要以没有标题行的逗号分隔值 (CSV) 格式呈现报表,您应该使用 rc:NoHeader 参数:&a href="http://MyServer/ReportServer?/SampleReports/Company Sales&rs:Command=Render&rs:Format=CSV&rc:NoHeader=true"&Company Sales&/a&& & HTML 格式具有非常多的 rc:parameters,在将报表集成到 Web 应用程序中时为您提供很多的灵活性。如果应用程序将报表参数选择传递到报表,那么您可能要通过将 rc:Parameters 设置为 false 来避免提示用户,甚至可以通过将 rc:Toolbar 设置为 false 来关闭整个工具栏。有关常用 HTML rc:parameters 的列表的详细信息,请参见图 5。& & 如果您的 Web 应用程序使用框架来显示报表(比如说,在左侧窗格中显示报表列表,在右侧窗格中显示报表内容),您将需要使用 rc:LinkTarget 参数来指定内容框架的名称。否则,当用户点击报表中的任意嵌入链接时,浏览器就会使用整个窗口来重新显示报表,而不是保留导航窗格和内容窗格的框架。& & 您可以使用我介绍过的 URL 参数来添加&快速启动&区域,该区域包含使用户可以打开常用报表的超级链接的列表(请参见图 3)。每个超级链接将其目标设置为 _blank 以在独立的浏览器窗口中打开报表,并使用诸如 rs:Format=EXCEL 这样的参数来控制报表在浏览器中的显示方式。& & 返回页首将报表嵌入到 Web 应用程序中& & 如果在用户查看报表时,不再使用弹出新的浏览器窗口,您可能希望实际地将报表嵌入到自己的 Web 页中。最简单的方法就是在 Web 页上使用 IFRAME,并使用我介绍过的基于 URL 的相同技术来设置 SRC 属性。如果您使用这种技术,切记要将 rc:LinkTarget 参数设置为 IFRAME. 的名称,以避免当用户单击报表的链接时在框架外弹出任意一个框架。& & 如果您以前设计过 ASP.NET 的服务器控件,您可能会认为 IFRAME. 技术并不十分完美,因为它要求 Web 开发人员理解 Reporting Services 的 URL 参数语法才能构建适当的 SRC 字符串。构建一个封装有所有参数并使开发人员可以简单地设置诸如 ReportPath 和 Zoom 之类的参数的服务器控件难道不是一个更好的想法吗?& & Reporting Services 非常方便地附带了名为 ReportViewer 的示例(安装到 \Reporting Services\Samples\Applications\ReportViewer 目录),它可以实现这个想法。该控件封装了 IFRAME. 和 URL 访问参数逻辑,并提供了一个更简单的用于将报表嵌入到应用程序中的方法。要使用该控件,请打开并构建 ReportViewer解决方案,然后通过浏览到 ReportViewer 解决方案的 bin 目录中的 ReportViewer.dll,切换到您的 Web 应用程序并将该控件添加到工具箱中。& & 您可以使用该控件将嵌入报表添加到仪表板应用程序中。将控件添加到 Web 页,设置高度和宽度属性并添加以下代码以便在页面中显示一个报表:Private Sub Page_Load(ByVal sender As System.Object, ByVal _e As System.EventArgs) Handles MyBase.LoadIf Not IsPostBack ThenReportViewer1.ServerUrl = "http://MyServer/ReportServer"ReportViewer1.ReportPath = "/SampleReports/Sales Order" & _"Detail&SalesOrderNumber=so8153"ReportViewer1.Toolbar = ReportViewer.multiState.FalseReportViewer1.Zoom = "75"End IfEnd Sub& & 返回页首保证报表的安全& & Reporting Services 安全性使用熟悉的基于角色的模型。用户和组可以分配给诸如 System Administrator 或 Browser 之类的角色,特定角色的所有成员都将允许执行为该角色定义的操作。& & 报表管理器用于执行与安全性相关的任务,例如,分配用户角色或修改项(例如,报表)的权限等。默认情况下,Administrators Windows 组同时是所有文件夹的 System Administrator 和 Content Manager 的成员。为了扩展报表访问到其他用户,用户帐户或组必须添加到诸如 Browser 的角色中。这通常是在文件夹级设置的,同时也可以针对单独的报表进行重写。& & 除了保护对报表的访问外,管理员还必须决定如何将报表连接到源数据库。可以配置数据源使用集成的安全性,以便可以使用当前的用户帐户进行数据库连接。此外,还可以定义 Windows?或 SQL Server 用户名和密码,并将其安全地存储在报表服务器数据库中。这种方法要求报表运行在无用户交互(例如,订阅所涉及的交互)的情况下。& & 返回页首使用 Reporting Services Web 服务& & 到目前为止,我一直使用的 URL 访问方法提供了一种快速便捷的方式来查看报表并指定参数,但是它不能提供对所有可用的报表管理功能的访问。Reporting Services 还附带了一个具有丰富功能的 API,为您提供通过 Web 服务对高级功能的访问。例如,该 Web 服务包括用于管理报表的数据源信息的方法或者枚举某个文件夹中所有项的方法。& & 我将使用 Web 服务将报表的动态列表添加到仪表板应用程序中。为此,您将需要使用 Add Web Reference 将一个 Web 服务引用添加到应用程序中。指定到 Web 服务的路径,如下所示:http://MyServer/ReportServer/ReportService.asmx& & 在添加引用后,您可以创建 ReportingService 代理类的一个实例,并调用该服务上的一个方法,就像我在此处完成的一样:Private Sub LoadSampleReports()Dim rs As New ReportingServicers.Credentials = System.Net.CredentialCache.DefaultCredentialsDim item As CatalogItemFor Each item In rs.ListChildren("/SampleReports", False)If item.Type = ItemTypeEnum.Report ThenDropDownList1.Items.Add(New ListItem(item.Name, item.Path))End IfNextEnd Sub& & 如果您正在一个 Intranet 环境中部署应用程序,您要通过将 添加到应用程序的 web.config 文件中来启用模拟。您还要将客户端登录凭据传递到该服务,如前面的示例所示。& & ListChildren 方法返回 CatalogItem 对象的数组,该数组表示用户有权查看的项,包括报表、文件夹和数据源。Path 属性提供了到项的唯一路径,例如,/SampleReports/Sales Order Detail,Type 属性使您可以区别报表和其他类型的项。& & 既然我已经将报表名称加载到了下拉列表中,我必须决定如何在仪表板应用程序内显示报表。我决定扩展我早期编写的 ReportViewer 代码并且只要用户选择某个报表并点击&Go&按钮就更改 ReportPath 属性。您还可以使用 IFRAME. 并将 SRC 设置为适当的 URL(并为报表的名称加上前缀&http://MyServer/ReportServer?&)。& & 除了报表管理功能外,Web 服务提供的其他主要功能就是报表呈现。大多数应用程序(包括报表管理器应用程序)都使用 Web 服务功能来列出报表或更改设置,并使用我介绍过的 URL 方法来显示报表。但是,如果您想要完全控制报表内容在应用程序中处理的方式,可以使用 ReportingService 类的 Render 方法。该方法返回一个可以在以后保存到输出文件的字节数组;取决于请求的格式,输出文件可以是图形文件或 Excel 电子表格。如果您要以 HTML 格式呈现报表,可能会更加复杂一些,因为您将需要使用 RenderStream 方法来分别呈现图像或其他资源。& & 尽管本文的讨论重点在于 Web 应用程序,您也可以使用相同的技术将报表生成功能添加到基于 Windows 的应用程序中。最简单的方法仍是使用 URL 访问,或者从应用程序启动用户的浏览器,或者包括 Microsoft WebBrowser ActiveX?控件并使用 Navigate 方法来加载适当的 URL。当您想要更好地控制某些操作(例如,在图片框中显示结果或将文件直接保存到磁盘的操作)时,Web 服务的 Render 方法是一个很好的备选方法。& & 信息工作者通常必须处理两种类型的报表:当他们需要收集信息时他们想要获得的类型以及每周都出现在他们桌面上或他们电子邮件中的类型。至此,我已重点阐述了用户获取他们自己的报表的过程,但 Reporting Services 还包括一种非常强大的称为订阅的功能,它使您可以将报表&推&给客户。& & 返回页首订阅报表& & Reporting Services 订阅功能让用户按照计划接收报表。报表通常会通过电子邮件发送到用户,但 Reporting Services 同时还让您将报表生成到一个文件共享甚至可以编写自己的提交扩展。这使您可以轻松地完成分发任务,例如,向每个销售代表以电子邮件方式发送每周销售统计报表,或者设置每月财政报表在每个月的最后一天运行,并将其作为一个 PDF 写出到公司文件共享。& & 在设置订阅前,您需要考虑报表将如何连接到数据库以检索其数据。因此,订阅的报表将不会由用户直接执行,您无法为数据源使用集成的安全性,但在报表运行时必须指定要使用的用户名和密码。如果您试图为使用集成安全性的报表设置订阅,Reporting Services 将会返回一个错误。& & 要更改示例报表的数据源,请打开&Report Manager | Sample Reports&,然后单击 AdventureWorks 数据源。该数据源由所有示例报表共享,因此对它所做的任何更改将会影响所有报表。选中&Credentials stored securely in the report server&选项,指定一个具有访问 AdventureWorks 数据库权限的帐户的有效域用户名和密码,选中&Use as Windows credentials when connecting to the data source option&,然后单击&Apply&按钮。请注意,这种更改意味着指定的帐户将始终用于连接该数据库,不管实际上是哪个用户运行该报表。& & 因此,您已经准备好深入研究并查看提供对订阅访问的 Web 服务 API。使用 Web 服务的这一部分比使用 List 或 Render 方法要多一些挑战,主要原因在于可用选项的数量。我将要使用的方法是 CreateSubscription,它也属于 ReportingService 类。有关该方法的参数的详细说明,请参阅 asp" target="_blank">ReportingService 类,但最基本的是您需要指定要订阅的报表、生成计划(例如,每周一早晨或每月的最后一个周五)、电子邮件选项(包括电子邮件地址)以及所有报表参数值。& & 我已经将名为 EmailSubscriber 的实用工具类包括在本文的示例代码中,该示例代码摘要了某些复杂的内容。仪表板应用程序使用该类允许用户指定他们的电子邮件地址并使 Employee Sales Summary 报表通过电子邮件每周一发送给他们。在产品应用程序中,您可以调整每个用户的报表,例如,当您创建订阅时,可以根据员工的 Windows 用户帐户检索他们的员工 ID,然后适当地设置报表参数。& & 如果您不希望等到下周一才测试您的订阅,它有助于您了解有关 Reporting Services 如何处理订阅计划的更多信息。当您创建一个订阅时,Reporting Services 会创建一个根据要求的计划执行的 SQL Server 代理作业。您可以通过打开 Enterprise Manager,展开 Management、SQL Server Agent 和 Jobs 文件夹来查看这个作业。该订阅作业将具有&Report Server&类别,并以由 Reporting Services 用来跟踪该作业的 GUID 命名。右键单击该作业并选择 Start Job,如果您已正确地设置了您报表的方方面面,您的报表将会发送电子邮件给您。& & 返回页首接下来该怎么做?& & 您可以用来向应用程序中添加重要报表生成功能的两个其他 Reporting Services 功能包括 Data Driven Subscriptions 和 Snapshots,前者使您可以设置用户的邮件列表并以电子邮件形式将特定参数化的报表发送给他们,后者是在计划点的报表视图,同时还可以提供报表的历史视图。Reporting Services 是使用模块化的体系结构构建的,如果您需要更强大的功能,它可以使您使用自己喜好的、以 .NET 为目标的语言来添加功能强大的新扩展。& & John C. Hancock是 Microsoft 的高级顾问,致力于商务智能和 .NET 开发。他现在定居在多伦多,要联系他,请访问 http://www.johnchancock.net。& & 原文转自:http://www.ltesting.net
声明:该文章系网友上传分享,此内容仅代表网友个人经验或观点,不代表本网站立场和观点;若未进行原创声明,则表明该文章系转载自互联网;若该文章内容涉嫌侵权,请及时向
上一篇:下一篇:
相关经验教程
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益

我要回帖

更多关于 error reporting 0 的文章

 

随机推荐