ReportingServices服务部署配置及开发

上传人:无*** 文档编号:90565386 上传时间:2022-05-15 格式:DOC 页数:39 大小:2.41MB
收藏 版权申诉 举报 下载
ReportingServices服务部署配置及开发_第1页
第1页 / 共39页
ReportingServices服务部署配置及开发_第2页
第2页 / 共39页
ReportingServices服务部署配置及开发_第3页
第3页 / 共39页
资源描述:

《ReportingServices服务部署配置及开发》由会员分享,可在线阅读,更多相关《ReportingServices服务部署配置及开发(39页珍藏版)》请在装配图网上搜索。

1、Reporting Services服务部署配置及开发一、 配置报表服务环境l 要求必须安装所有 Reporting Services 组件。即检查是否存在C:Program FilesMicrosoft SQL ServerMSSQL.3目录。l Reporting Services 配置工具进行运行环境配置1、配置服务状态。(1)、单击“开始”,依次指向“程序”、Microsoft SQL Server 2005 和“配置工具”,再单击“Reporting Services 配置”。此时将出现“选择报表服务器安装实例”对话框,可以选择要配置的报表服务器实例,如图:(2)、在“计算机名称”中

2、,指定安装报表服务器实例的计算机名称。指定的默认值是本地计算机名称,但也可以键入远程 SQL 服务器实例的名称。如果指定远程计算机,请单击“查找”以建立一个连接。必须事先配置报表服务器,以便进行远程管理。(3)、在“实例名称”中,选择要配置的 SQL Server 2005 Reporting Services 实例。在列表中只显示 SQL Server 2005 报表服务器实例。不能配置较早版本的 Reporting Services。(4)、单击“连接”。(5)、开启报表服务。如图:同时,会启动数据实例,如图:2、创建和配置虚拟目录。说明:报表服务器和报表管理器是通过 URL 访问的 AS

3、P.NET 应用程序。报表服务器 URL 提供对报表服务器的简单对象访问协议 (SOAP) 端点的访问。报表管理器 URL 用于启动报表管理器。每个 URL 都包括您在 Reporting Services 配置工具中指定的虚拟目录。可以为虚拟目录选择默认网站或其他网站。(1)、配置报表服务管理虚拟目录,如图:(2)、配置报表文件管理服务虚拟目录,如图:3、配置服务帐户。说明:Reporting Services 需要服务帐户才能运行报表服务器 Web 服务和 Microsoft Windows 服务。报表服务器 Windows 服务是在安装过程中配置的,但如果要更新密码或者要使用其他帐户,则

4、可以使用 Reporting Services 配置工具修改该服务。如果您使用的是 Microsoft Windows XP 或 Windows 2000 服务器,则不能配置报表服务器 Web 服务。ASP.NET 安全标识始终用于在这些操作系统上运行报表服务器 Web 服务。针对 Windows Server 2003,则报表服务器 Web 服务将应用程序池的安全标识用作它的服务帐户。可以使用 Reporting Services 配置工具新建自动为报表服务器操作配置的应用程序池。还可以选择现有的应用程序池。(1)、配置Windows帐号。如图:(2)、配置WebService帐号,如图:4

5、、创建和配置报表服务器数据库。说明:报表服务器是一个无状态服务器,它需要将 SQL Server 数据库用于内部存储。可以使用 Reporting Services 配置工具来创建和配置与报表服务器数据库的连接。还可以选择现有的数据库,前提是其使用 SQL Server 2005 Reporting Services 的架构。提供了一个升级选项,以便您可以将数据库更新为新架构。如图: 5、管理加密密钥。说明:Reporting Services 使用对称密钥来加密和解密敏感数据,如存储的凭据和数据库连接信息。创建和存储对称密钥是在初始化过程中执行的,该初始化过程会准备报表服务器以进行加密操作。

6、明确报表服务器是否已初始化是报表服务器管理中的一个必不可少的部分。如果发生硬件故障或者计划迁移到另一台计算机,则管理对称密钥对于报表服务器恢复非常重要。Reporting Services 配置工具提供了用于备份、还原和重新创建加密密钥的选项,以及用于在不能恢复时删除加密值的选项。还可以用它来查看报表服务器实例的初始化状态。如图:6、配置电子邮件传递。说明:Reporting Services 包括一个报表服务器电子邮件传递扩展插件,该插件使报表订阅服务器可以将报表传递到电子邮箱。电子邮件传递扩展插件使用简单邮件传输协议 (SMTP) 传递报表或通知。您可以使用 Reporting Servi

7、ces 配置工具指定将网络上的哪个 SMTP 服务器或网关用于电子邮件传递。如图:7、配置扩展报表服务器部署模型。说明:Reporting Services 支持在负载平衡群集中部署报表服务器。要在扩展部署中运行多个报表服务器,所有报表服务器实例均需使用单个的共享报表服务器数据库。该数据库提供其所有加盟报表服务器的内部存储和状态信息。若要部署报表服务器扩展部署,应使用 Reporting Services 配置工具将每个报表服务器连接到共享的报表服务器数据库。如图:l 管理服务器报表经过配置工具完成配置之后,IIS中网站(ReportingServices2005)会自动创建两个虚拟目录Rep

8、ortServer和Reports 。其中ReportServer是报表服务管理,报表的编译执行都是通过它,而Reports是报表文件服务管理,可以浏览报表、订阅等操作来管理报表。在地址栏中输入:http:/localhost:网站端口号/ReportServer ,显示如图:在地址栏中输入:http:/localhost:网站端口号/Reports ,显示如图:二、 报表制作l 概念介绍1、数据源数据源就是指定连接的数据源类型、连接字符串和凭据。通俗点讲就是指定对一个数据库(并非只局限于数据库,还可以是xml、报表服务器模型待)的连接信息。在 Reporting Services 中,针对报

9、表定义数据集的第一步是定义要使用的数据源。数据源中不包含查询信息。查询信息包含在数据集中,而数据集使用数据源来连接数据库。若要指定在报表定义中使用的数据源,则必须在报表设计器创建一个数据源。而不是在报表服务器资源管理器中。数据源可以是共享的,也可以是特定的,同时,也可以定义多个数据源。指定数据源的方式:(建议非特殊情况采用共享数据源,易于维护) 作为存储在报表内的嵌入信息(这称为“报表特定数据源”)。 作为共享数据源,该数据源是在报表设计器中单独定义的,在报表发布时将作为单独项保存在报表服务器上。 作为用于在运行时选择数据源的表达式。数据源的添加与设置2、数据集通俗地讲,数据集就是为报表的最终

10、展现提取所需的数据。数据集可以是一段SQL,也可以是存储过程,数据集的具体内容依赖于所选择的数据源(即:选择不同的类型的数据源,对应的数据集中的SQL或存储过程也是与数据源所指定的类型相匹配)。a) 关系数据库可以使用 Transact-SQL 查询或存储过程b) 多维数据库可以使用多维查询或数据挖掘查询c) XML 文档或 Web 服务可以指定带有或不带有命名空间的查询d) 报表模型可以使用报表模型元数据查询另外,Reproting Service报表中,同一个报表可以支持一个或多个数据集,这对于复杂的需要从不同的数据源进行数据提取相当简便。同一报表指定多个数据集(SQL)使用存储过程的数据

11、集注意:使用存储过程作为数据集形式时,对于存储过程中的参数,如何进行传值需要进行单独设置。即在数据集的参数选项中,添加存储过程所需的参数列表,并指定值即可(上图左边红色区域),同时要保证参数名称与存储过程中的名称完全一致。错误写法:Exec usp_rpt_DayReportData 参数1, 参数2, 参数3如果命令类型不指定为 StoredProcedure,而是指定为Text,当用的是存储过程时,也可以写成 Exec usp_rpt_DayReportData (不建议这样做)l 表格报表表格报表是最常用一种数据展现形式,展示的是一个二维表,最大的特点是列是已明确的,行是不固定的。表格报

12、表初始外观如下(注意红色标记地方):表格报表初始外观图表格报表的数据分组:(详见下图)一个报表中,可以存在多个分组,各分组之间按从上到下的顺序对数据进行处理,从某种意义上讲,可以理解为是存在着一种层级关系,即:先按1标记组(下图中行前有1 标记的行,后面类同)进行分组,再按2标记组进行分组,最后按3标记组进行分组。表格报表设计器中详细设置图示说明:、对于一个分组在存在多行的情况,可通过选中组标记(分组行的最前端有数字的格上),右键,选择插入行即可(上图橙色圈的地方)。、对于数据合计,可以对具体的分组或整个报表添加(上图绿、橙、黄背景色的行)。、对于数据分组可以设置更多相关的信息,如分组字段、数

13、据过滤、可见性等等(见下图)组属性设置图示以下其他类型数据报表中的分组及合计与表格报表类似,以下将只介绍其他数据报表的自身特性及主要设计步骤。l 层级报表设计层级报表也称作下钻报表,交互性和可读性都比较好,允许用户展开或折叠分组的部分来浏览更多的细节内容。奇特之处是行部分简单地基于切换项来实现显示或隐藏。层级报表展示效果非常好,报表界面十分简洁,导出Excel后还可以保留展示的效果和功能。设计器中效果图导出Excel效果图步骤要点:编辑分组2,选择可见性标签,勾选“可由其他关联报表项确定可见性”,选择分组1中的对象,由textbox4控制显示即可l 钻取报表设计钻取报表的最大特性是通过传递参数

14、值到目标报表中,可以单击当前报表中的链接对其进行访问的一种报表。单击带有钻取操作的文本框,即可打开钻取报表。如果钻取报表有参数,则需要为每个报表参数传递参数值。链接源可以使用文本框或图像实现。步骤要点:向报表添加报表钻取操作 1、右键单击文本框,并选择“属性”。将打开“文本框属性”对话框。2、单击“导航”选项卡。 3、在“超链接”部分,单击“跳至报表”。 4、在文本框的下拉列表中选择 目标报表5、单击“参数”按钮。将打开“参数”对话框。6、在显示了为钻取报表定义的参数的“参数名称”下拉列表中,选择 具体的参数。 7、单击“参数值”文本框。在此下拉列表中,选择 具体的字段。 8、单击“确定”。下

15、一步将更改钻取链接的文本类型和颜色。9、单击“字体”选项卡。10、在“效果”下拉列表中,选择“下划线”。 11、单击“确定”。12、在该文本框的“属性”窗口中,单击“颜色”属性文本框。在此下拉列表中,选择“表达式”。“表达式编辑器”将打开。13、用以下表达式替换默认文本“黑色”。=Parameters!MyFontColor.Value 添加的文本框现在具有带下划线的文本,并且将按照参数 MyFontColor 中设置的颜色显示。这种直观的表示方式有助于报表读者了解存在指向另一个报表的活动链接。 在可以预览报表之前,您必须按照下一步骤定义 MyFontColor 参数。 创建用于字体颜色的内部

16、报表参数 (这个主要是为了管理方便)1、在“布局”视图的“报表”菜单上,单击“报表参数”。此时将打开“报表参数”对话框。2、单击“添加”。将创建一个具有属性默认设置的新参数。3、在“属性”部分的“名称”属性中,键入 MyFontColor。4、验证“数据类型”是否为 String。5、选中“隐藏”复选框。“提示”属性已禁用。6、验证“默认值”是否为“无查询”。7、在“默认值”中,选中“无查询”,并键入值 MediumBlue 或任何其他有效的字体颜色。8、预览报表。l 书签和链接、书签书签是报表中的广本框或图像,可以用作链接浏览。允许在同一张报表内浏览,相当方便。需要设置报表项的Bookmar

17、k属性(每个报表项此属性唯一值),设置目标项书签后,通过跳转到书签功能,来选择目标书签。、链接跳转到URL可以实现浏览任何局域网或WWW环境里的报表服务器、文件、文件夹和应用程序中的报表或文档内容。可用于灵活的、强大的交互式的浏览。提示:对于URL的安全性,报表服务器不会尝试任验收证,需要在传递前进行验证。l 矩阵报表矩阵也就是交叉表或枢轴表。正如表的行产生于隐藏的结果集一样,矩阵的列做同样的事情。矩阵应该至少有两个带有交叉的聚合值的组。一个组创建行,一个组创建列。设计视图效果实际效果描述设计要点:1、数据显示基本设置设置对应行、列各分组的分组字段,以及具体的静态字段即可!各字段设置描述说明、

18、矩阵的下钻设置选中具体的组编辑组可见性,设置“可由其他关联报表项确定可见性”属性来设置下钻操作所依赖的具体报表项即可。(见下图)下钻设置示图、矩阵的分组设置选中具体要进行合计的行分组字段,右键选中小计即可自动增加分组合计行。注意:行合计默认排列于分组的最下方,可以通过单击行合计单元格右上角的小三角符号,来设置行合计的属性Position,来确定行合计是位于分组的上方或下方。对于合计列的设置同行类似。l 其他图表报表(后续使用之后陆续补充)l 报表技巧1、除数为0的处理方式。当进行除的计算时,需要考虑除数可能为0的情况,即黄色部分;另外,还应该在被除数上进行再次处理,即灰色部分。否则当出现0值时

19、,对应文本框会显示“错误号”字样。=IIf(Sum(Fields!tpmj.Value)=0,0,Sum(Fields!tpje.Value)/IIf(Sum(Fields!tpmj.Value)=0,1,Sum(Fields!tpmj.Value)2、外观边框预览与导出Excel之间的差别处理。在制作报表时,默认报表项的边框为1pt,在预览时各报表项线条显示是细线条,但在导出Excel后,线条却变成了粗线条(与预览时的外观不一致)。产生原因:因每个报表项(数据表格时,每个单元格可理解为一个文本框,图像除外)为一个文本框,每相邻的文本框间都会存在相邻边相互紧贴的关系,同于每个边为1pt,所以导

20、出到Excel后,单元格的边框导致显示比预览的粗。解决办法:(1)可手动修改默认设置,将每个单元格的边框样式,即只设每个单元格的左、上边框,或者右、下边框(整个表格的四条外边框同理对应设置),这样导出即可实现细线条。(不推荐此法,设置相当麻烦,而且在预览展示上会出现部分单元格线条无法显示,而导出Excel却正常)(2)比较理想简便方法A,首先将整个表格设置成无边框(图1)图B,其次以单元格方式,选中所有单元格,将边框样式设置为0.5pt或0.25pt(图)。本步骤必须通过属性面板设置(通过上方工具栏将会无效)图2C,最后如有需要,可适当调整需要合并的单元格的边框样式(图)。(对于横向合并的单元

21、格,可直接合并,边框不需要做处理,而对于纵向合并的单元格,Reporting Service不支持直接合并,只能通过将纵向相邻单元格的边框设置无none来实现,在导出Excel中,也会保持所设置的样式)3、创建用于字体颜色的内部报表参数 (这个主要是为了管理方便)。前面钻取报表中已进行过详细步骤设置的介绍(此处略)4、数据格式化。数据格式化:标准格式化、显示格式化、条件格式化。报表中的格式化是基于.Net Framework中的格式化机制,可以使用正则表达式格式化(功能相当强大,从简单到极复杂都能实现,关于正则可以参见MSDN库中介绍)标准格式化:使用标准的、简单的字符串来指定数字或日期的格式

22、化选项(依赖于所使用计算机的区域文化设置格式)显示格式化:不依赖于持定计算机的区域文化设置,格式化效果保持不变。(具体格式符可参见联机帮助介绍,推荐采用此种方式进行格式化)条件格式化:基于报表中其他字段或条件相关的表达式来确定值的显示格式。(例:Switch(Fields!MyLocal.Value=”DE”,”de-DE”,Fields!MyLocal.Value=”UK”,”en-GB”)对于整数以含有分隔符方式来显示时,格式化符号没有默认的,只需要手动进行设置其显示格式为 #,# 即可!(如下图),而对于其他显示格式,默认格式符选择可满足日常绝大部分要求。注意:在以“%”百分符显示数据时

23、,Reporting Service会自动将相应数据进行换算,无需手动进行 乘以100的处理。5、复制说明。报表支持整行或整列(列中不存在合并列)复制,同时包括行或列的样式,各报表项值的表达式,会同时复制(报表项的默认名称会自动变化,使其保持唯一)。三、 订阅报表l 概述订阅是一种持续存在的请求,它在特定的时间或为响应某个事件而传递报表,然后以您定义的方式提交该报表。订阅提供了一种可替代按需运行报表的方法。按需运行报表要求您在每次查看报表时都执行特定的操作。相比之下,使用订阅则可以自动传递最新的报表。目前我们仅开发了”标准订阅”和“数据驱动订阅”,针对”文件共享传递”不支持。l 标准订阅(Cr

24、eateSubscription)标准订阅由各个用户创建和管理。标准订阅由静态值组成,这些值在订阅处理期间不能改变。每个标准订阅都有一组报表显示选项、传递选项和报表参数。l 数据驱动订阅(CreateDataDrivenSubscription)数据驱动订阅是动态的,具体体现在表示形式、传递和参数值是在运行时从数据源中检索的。数据驱动订阅专门用于下列情况:1、向大型收件人池分发报表,该池的成员身份可能随着分发的不同而有所变化。例如,向当前的所有客户分发月报表。2、根据预定义的条件向特定的收件人组分发报表。例如,向某个组织中的前十位销售经理分发销售业绩报表。若要使用数据驱动订阅,必须具备生成查询

25、的专业知识并了解如何使用参数。通常,由报表服务器管理员创建和管理这些订阅。四、 部署报表l 工具部署l 脚本部署rs -i D:二次开发组rsUtilitiesDeployReportsDeployReports.rss -s http:/localhost:8016/reportserver -v strAimFolder=数据源 -v strAimReportsFolder=日报 -v oOverWriteDataSource=true -v strDataSourceName=vankeRptDS -v strServerName=10.5.1.3SQL2005 -v strDataBa

26、seName=ERP25_vanke_20071229 -v strDataSourceUserName=sa -v strDataSourcePassword=myJerry&2008%Pt$rv! -v strReportsFilePath=D:ttt Dim mDefinition As Byte() = Nothing Dim mWarnings As Warning() = Nothing Dim strParentPath As String = / + strAimFolder Dim strParentReportsPath As String = / + strAimRepo

27、rtsFolder Sub Main() rs.Credentials = System.Net.CredentialCache.DefaultCredentials Dim items As CatalogItem() = Nothing Dim i As Integer Dim oAimFolderExists As Boolean = False Dim oAimReportsFolderExists As Boolean = False Dim oDataSourceExists As Boolean = False Try 列出ReportServer根目录下所有项,判断目标目录是否

28、存在 items = rs.ListChildren(/, True) For i = 0 To items.Length - 1 是文件夹类型 If items(i).Name.ToUpper = strAimFolder.ToUpper And items(i).Type = ItemTypeEnum.Folder Then oAimFolderExists = True End If If items(i).Name.ToUpper = strAimReportsFolder.ToUpper And items(i).Type = ItemTypeEnum.Folder Then oAi

29、mReportsFolderExists = True End If 是数据源类型 If items(i).Name.ToUpper = strAimFolder.ToUpper And items(i).Type = ItemTypeEnum.DataSource Then oDataSourceExists = True End If Next Catch ex As Exception Console.WriteLine(ex.Message.ToString) End Try 创建数据源目标目录 If oAimFolderExists Then Console.WriteLine(目录

30、 & strAimFolder & 已经存在!) Else Try rs.CreateFolder(strAimFolder, /, Nothing) Catch ex As Exception Console.WriteLine(ex.Message.ToString) End Try End If 创建报表目标目录 If oAimReportsFolderExists Then Console.WriteLine(目录 & strAimReportsFolder & 已经存在!) Else Try rs.CreateFolder(strAimReportsFolder, /, Nothin

31、g) Catch ex As Exception Console.WriteLine(ex.Message.ToString) End Try End If 创建数据源 If oAimFolderExists And oDataSourceExists And oOverWriteDataSource = False Then Console.WriteLine(数据源已经存在!) Else CreateDataSource() End If 发布报表 Try Dim oDirectoryInfo As DirectoryInfo If strReportsFilePath = Then oD

32、irectoryInfo = New DirectoryInfo(.) Else oDirectoryInfo = New DirectoryInfo(strReportsFilePath) End If Dim files As FileInfo() = oDirectoryInfo.GetFiles(*.rdl) Console.WriteLine(总共报表数量: 0, files.Length) Dim fiNext As FileInfo 循环发布报表 For Each fiNext In files DeployReport(Microsoft.VisualBasic.Left(fi

33、Next.Name, fiNext.Name.Length - 4) Next 将报表引用已创建的数据源 Dim reference As New DataSourceReference reference.Reference = strParentPath & / & strDataSourceName Dim subItems As CatalogItem() = rs.ListChildren(strParentReportsPath, False) For Each item As CatalogItem In subItems If item.Type = ItemTypeEnum.

34、Report Then Dim dataSources As DataSource() = rs.GetItemDataSources(item.Path) For Each datasource As DataSource In dataSources datasource.Item = reference Next rs.SetItemDataSources(item.Path, dataSources) End If Next Catch ex As Exception Console.WriteLine(ex.Message.ToString) End Try End Sub Publ

35、ic Sub CreateDataSource() Dim folderPath As String = / & strAimFolder Dim csrdb As New DataSourceDefinition csrdb.ConnectString = Initial Catalog= & strDataBaseName & ;Data Source= & strServerName csrdb.Extension = SQL csrdb.CredentialRetrieval = CredentialRetrievalEnum.Store csrdb.Enabled = True cs

36、rdb.EnabledSpecified = True csrdb.ImpersonateUserSpecified = False csrdb.UserName = strDataSourceUserName csrdb.Password = strDataSourcePassword csrdb.CredentialRetrieval = CredentialRetrievalEnum.Integrated Try rs.CreateDataSource(strDataSourceName, strParentPath, True, csrdb, Nothing) Catch ex As

37、Exception Console.WriteLine(ex.Message.ToString) End Try End Sub Public Sub DeployReport(ByVal strReportName As String) Try Dim stream As FileStream = File.OpenRead(strReportsFilePath & & strReportName & .rdl) mDefinition = New Byte(stream.Length) stream.Read(mDefinition, 0, CInt(stream.Length) stre

38、am.Close() Catch ex As IOException Console.WriteLine(ex.Message.ToString) End Try Try mWarnings = rs.CreateReport(strReportName, strParentReportsPath, True, mDefinition, Nothing) If Not (mWarnings Is Nothing) Then Dim warning As Warning For Each warning In mWarnings Console.WriteLine(warning.Message) Next warning Else SetReportDataSourceRef(strReportName) Console.WriteLine(发布报表:0 成功!, strReportName) End If Catch ex As Exception Console.WriteLine(ex.Message.ToString) End Try End Sub

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!