即使报表服务器使用 SQL Server

主干提醒:利落的报表成效是许多事情应用程序的二个必要,那些报表功能在合龙到
Web 应用程序中之后用处越来越宽广

灵活的表格功用是繁多作业应用程序的一个渴求,这么些报表效能在合龙到 Web
应用程序中之后用场尤其普及。利用 SQL Serverreg; 二〇〇三 Reporting Services
的新星版本,您能够轻易地有着来自各个数据源的表格生成功能。在本文中,笔者将介绍使用
Visual Studioreg; 和 Reporting Services
来编排报表,并演示怎么样将报表集成到 Web 应用程序中。

Reporting Services 是基于服务器的表格生成平台,该平台营造在 .NET
Framework 上并与 SQL Server 二零零二集成在一同,由此你能够行使一个扩充的依据 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,您能够下载坐落于 SQL Server 2002 Reporting
Services 的 120
天试用版软件,它还包涵关于怎么着取得该产品的装置媒体的认证。在设置该产物时,请保管当选包含示例报表的选项,因为自个儿要将那么些报表集成到本文的
Web 应用程序中。

Reporting Services 概述

Reporting Services 报表设计使用新的 Visual Studio .NET 二〇〇二报表设计器,在装置有 Visual Studio 的同等Computer上安装了 Reporting
Services 后,该设计器就足以行使。设计器以新的依据 XML 报表定义语言 (奥迪Q5DL卡塔尔(قطر‎输出报表架商谈数量访问的认证,而 WranglerDL
文件会宣布到报表服务器。假诺您愿意为客商提供创作职能,也足以利用第三方的表格设计器。

组织者能够利用基于 Web
的表格微处理机来治本已发布的报表,并且能够进行一些任务,比如,保障某个客商组报表的平安或改动已陈设报表的数码源连接字符串。客户也还可以报表微处理器来浏览和查阅报表;不过众多供销合作社支持于采纳U昂CoraL 央求或 Reporting Services Web
服务,将报表查看直接集成到它们现存的内部 Web 站点或应用程序中。

图 1 Reporting Services 种类构造

能够将报表参数化,那样客户能够在翻看报表时从选取列表中实行选拔;它们还足以导出为各样格式,比如,Microsoftreg;Excel、PDF

XML。即使实时报表提供最新的数额,也可以将报表缓存一段时间以增长品质并裁减数额源上的载荷。对于商务智能应用程序,报表能够访谈Analysis Services OLAP 多维数据集,况兼 Reporting Services
以至能够导入现成的 Microsoft Access
报表,固然由于那二种才能间存在差别,它并无法扶植具有的 Access 成效。有关
Reporting Services 类别构造的详细景况,请参见图 1。

规划首先个表格

固然笔者介绍的主要在于将报表集成到应用程序中并不是行文报表,但熟稔Reporting Services
的最佳情势就是任何时候开始创造三个新的报表项目。为此,请展开 Visual Studio
并动用 Report Project Wizard 创立叁个新的品种,该向导坐落于 Business
AMDligence Projects
部分。为你的花色钦命一个名称,单击“OK”,然后将显示报表向导对话框。在你采纳数据源的这一步骤中,单击“Edit”开关,以便钦定连接到你数据库服务器上的
AdventureWorks二零零二,单击“OK”,然后选中使其变为分享数据源的选项。

单击“Next”步向到“Design the Query”步骤,钦赐轻巧的 SQL
语句(比方,“SELECT * FROM Product”State of Qatar,然后单击“Next”。Reporting Services
援救显得一组固定列的正式表格式 (Tabular卡塔尔报表,也支撑接收含有动态列的接力表样式视图的矩阵式 (Matrix卡塔尔(قطر‎报表,因而为该报表选拔 Tabular,然后单击“Next”。

将或多或少列(比如,ProductID 和 Name卡塔尔(قطر‎拖到 Details
部分并单击“Next”。选用私下认可的 Bold
样式,单击“Next”,然后钦赐您的报表服务器的虚构目录的
U奥德赛L,比如,。以后,单击“Next”。末了一步,您可认为您的首先个表格钦赐名称,比方,Products
Report;然后单击“Finish”。

该引路将会成立该品种,同临时间还创造多个可以由多少个表格共享AdventureWorks二〇〇一 数据源,以至八个在设计器中展开的关于 Products
数据的表格(请参见图 2卡塔尔(قطر‎。私下认可情状下,显示令你能够修正报表设计的 Layout
选项卡。

图 2 Visual Studio 报表设计器

Data
选项卡用于钦命报表的询问,包蕴安装参数以便在试行报表时提示顾客提供值。单击“Preview”选项卡来测量检验报表展现给顾客的艺术。

当今,您能够将附加的表格加多到该项目,也许经过抬高附加列、将数据分组、加多汇总、以至是增添能够展现来自别的查询的多寡的附加表来修正Products 报表。与广大报表设计器差异,Reporting Services
使用带外设计,那使得它能够轻巧地成立将各类源的数码聚集在同三个职位的表格。
您刚刚成立的报表项目由近些日子驻留在您的费用Computer上的一组文件组成。为了将这个报表宣布给顾客,您要求将该项目配置到报表服务器。

布局和测量试验

在配备报表项目事情发生前,供给钦命将品种安插到哪二个服务器。若是你最先使用该引路创制了报表项目,那么你大概早就钦点了指标服务器。

要检查该装置或钦命贰个新服务器,请接受“Project | Properties”来展现Project Properties 对话框。实行该装置使您可以钦点项指标文件夹名和
Reporting Services Web 服务的 U陆风X8L。在菜单上采摘“Build | Deploy
Solution”将营造报表项目,然后将其结构到服务器。

在配备报表项目后,您就足以拓宽测验了。已安顿到服务器的各类报表都持有独一的路径,该路径能够用来在浏览器中展现报表。比如,要呈现你创设的首先个表格,请展开浏览器并导航到
+Project1/Products+Report。那会以 HTML
格式展现报表并在页面包车型客车上方呈现三个工具栏,以便令你能够对报表实行翻页、修改缩放比例,以至以各个其余格式(例如,PDF卡塔尔查看报表。

您还足以由此导航到服务器上的以下
U翼虎L,来浏览已配备到服务器的富有报表项指标列表:。报表服务器提供令你能够查看已陈设的表格类型和查阅报表的小不点儿的客商分界面。

报表微电脑是叁个更为本身、功用更拉长的工具,能够由此轻松地导航到地头服务器上的以下
U奥德赛L 来访谈该工具:。

将报表增添到 Web 应用程序

既然如此您领略如何筹算、计划和测验报表,就让我们将那些报表集成到应用程序中呢!相当多Web
应用程序都囊括针对种种客户的自定义主页,经常可以称作“仪表板”。这一个页面平时提供针对性客商量身定做的摘要式音讯并作为跳转点来拜谒应用程序的别样职能。

自个儿将利用 Reporting 瑟维斯s
附带的示范报表创设一个仪表板来演示报表集成,如图 3
所示。假若你在安装进度中安装了演示报表,您能够张开该报表项目(安装到
Reporting
ServicesSamplesReports卡塔尔(قطر‎并将其配备到测量试验服务器。您能够动用报表微机工具通过浏览到
萨姆pleReports 文件夹来测验示例报表。

图 3 仪表板 Web 应用程序

为顾客提供从应用程序访谈报表的权杖的最轻松易行方法正是利用一级链接。如你曾经看见的那么,每种报表都具有独一的、用于在浏览器中体现报表的不二法门。对于仪表板应用程序,报表应该在独立的窗口中开辟,因而作者将为该一级链接钦定一个对象。到近年来结束,那是特别轻松的,可是对于全数参数报表的报表(举例,Employee
Sales Summary
报表State of Qatar来讲,意况又怎么呢?要确实地将报表集成到应用程序中,您日常须求为参数内定某个值,以便顾客不会被平常提示。

Reporting Services 使那项职责特别简单:报表参数的值能够钦赐为 UEnclaveL
的一片段。举例,Employee Sales Summary 报表具备 ReportYear、ReportMonth
和 EmpID 参数,因而显得号码为 24 的职员和工人在 十四月份的出卖额的顶尖链接能够是:

a href= Sales SummaryReportMonth=11EmpID=24 target=_blankNovember Sales Summary/a

不富有在 UEvoqueL
中钦定的值的参数将接受在报表设计器中安装的暗中认可值,因而刚才来得的以身作则发售聚集报表使用的
ReportYear 值是 二零零四。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= Sales rs:Command=Renderrs:Format=CSVrc:NoHeader=trueCompany Sales/a

HTML 格式具备相当的多的 rc:parameters,在将报表集成到 Web
应用程序中时为您提供数不完的八面驶风。若是应用程序将报表参数选拔传递到报表,那么您或许要由此将
rc:Parameters 设置为 false 来防止提醒顾客,以至足以经过将 rc:Toolbar
设置为 false 来关闭全部工具栏。有关常用 HTML rc:parameters
的列表的详细消息,请参见图 5。

假定您的 Web
应用程序使用框架来呈现报表(举例说,在右手窗格中呈现报表列表,在左边窗格中呈现报表内容State of Qatar,您将索要利用
rc:LinkTarget
参数来钦定内容框架的名号。不然,当客户点击报表中的放肆嵌入链接时,浏览器就能接受成套窗口来再一次突显报表,而不是保留导航窗格和内容窗格的框架。

你可以动用本身介绍过的 UExigeL
参数来增加“飞速运转”区域,该区域蕴涵使客户能够张开常用报表的一流链接的列表(请参见图
3State of Qatar。各类一流链接将其指标设置为 _blank
以在独立的浏览器窗口中开辟报表,并应用诸如 rs:Format=EXCEL
这样的参数来支配报表在浏览器中的显示方式。

将报表嵌入到 Web 应用程序中

若是在顾客查看报表时,不再动用弹出新的浏览器窗口,您恐怕希望实际地将报表嵌入到温馨的
Web 页中。最简单易行的方法便是在 Web 页上利用 IFRAME,并使用自家介绍过的遵照UHavalL 的千篇一律技艺来安装 SRC 属性。借使你使用这种技能,切记要将
rc:LinkTarget 参数设置为 IFRAME
的名称,避防止当客户单击报表的链接时在框架外弹出任性七个框架。

纵然你早先设计过 ASP.NET 的服务器控件,您恐怕会认为 IFRAME
本领并不特别周到,因为它须要 Web 开拓人士精晓 Reporting Services 的 U奥迪Q5L
参数语法才具营造符合的 SRC
字符串。塑造三个封装有全部参数并使开采人士能够归纳地安装诸如 Report帕特h
和 Zoom 之类的参数的服务器控件难道不是八个越来越好的主见吗?

Reporting 瑟维斯s 特别实惠地附带了名字为 ReportViewer 的演示(安装到
Reporting ServicesSamplesApplicationsReportViewer
目录卡塔尔,它能够完毕这一个主见。该控件封装了 IFRAME 和 URubiconL
访谈参数逻辑,并提供了二个更轻松的用来将报表嵌入到应用程序中的方法。要接收该控件,请展开并构建ReportViewer 应用方案,然后经过浏览到 ReportViewer 解决方案的 bin
目录中的 ReportViewer.dll,切换来你的 Web
应用程序并将该控件增加到工具箱中。

您能够动用该控件将安置报表增添到仪表板应用程序中。将控件增添到 Web
页,设置中度和宽度属性并加多以下代码以便在页面中展现叁个报表:

Private Sub Page_Load(ByVal sender As System.Object, ByVal _ e As
System.EventArgs) Handles MyBase.Load If Not IsPostBack Then
ReportViewer1.ServerUrl = ReportViewer1.ReportPath =
/SampleReports/Sales Order _ DetailSalesOrderNumber=so8153
ReportViewer1.Toolbar = ReportViewer.multiState.False ReportViewer1.Zoom
= 75 End IfEnd Sub

管教报表的平安

Reporting Services
安全性使用深谙的基于剧中人物的模子。顾客和组能够分配给诸如 System
Administrator 或 Browser
之类的剧中人物,特定角色的持有成员都将允许推行为该剧中人物定义的操作。

报表微电脑用于推行与安全性相关的天职,例如,分配顾客角色或涂改项(比如,报表卡塔尔的权力等。暗中认可情状下,Administrators
Windows 组同期是兼具文件夹的 System Administrator 和 Content Manager
的积极分子。为了扩张报表访问到别的客户,顾客帐户或组必须增添到诸如 Browser
的剧中人物中。那常常是在文件夹级设置的,同期也足以本着单身的表格进行重写。

除去爱惜对报表的拜望外,管理员还非得调节哪些将报表连接到源数据库。可以配备数据源使用集成的安全性,以便能够选拔当前的客户帐户实行数据库连接。别的,还是能定义
Windows? 或 SQL Server
顾客名和密码,并将其安全地囤积在表格服务器数据库中。这种形式须要表格运维在无客商交互作用(举例,订阅所关联的相互作用State of Qatar的气象下。

使用 Reporting Services Web 服务

到前段时间停止,作者从来利用的 U君越L
采访方法提供了一种高效便捷的秘诀来查看报表并点名参数,可是它无法提供对具备可用的报表管理效率的探望。Reporting
Services 还顺带了三个享有丰硕意义的 API,为你提供经过 Web
服务对高等功用的探望。举例,该 Web
服务包括用于管理报表的数据源消息的办法依然枚举有些文件夹中保有项的点子。

自家将应用 Web
服务将报表的动态列表增加到仪表板应用程序中。为此,您将急需接收 Add Web
Reference 将四个 Web 服务引用增加到应用程序中。钦点到 Web
服务的门径,如下所示:

在加上援引后,您能够创设 ReportingService代理类的三个实例,并调用该服务上的三个方式,就如自家在那地实现的等同:

Private Sub LoadSampleReports() Dim rs As New ReportingService
rs.Credentials = System.Net.CredentialCache.DefaultCredentials Dim item
As CatalogItem For Each item In rs.ListChildren(/SampleReports, False)
If item.Type = ItemTypeEnum.Report Then DropDownList1.Items.Add(New
ListItem(item.Name, item.Path)) End If NextEnd Sub

万一你正在二个 Intranet 景况中配备应用程序,您要通过将 增添到应用程序的
web.config
文件中来启用模拟。您还要将客商端登入凭据传递到该服务,如前方的演示所示。

ListChildren 方法重回 CatalogItem
对象的数组,该数组表示顾客有权查看的项,包蕴报表、文件夹和数据源。Path
属性提供了到项的并世无两路线,比如,/SampleReports/Sales Order Detail,Type
属性令你能够分别报表和其他门类的项。

既是自身一度将报表名称加载到了下拉列表中,作者必须要调控哪些在仪表板应用程序内显示报表。小编调整扩展自作者最先编写的
ReportViewer 代码並且只要顾客筛选有些报表并点击“Go”按键就改变 ReportPath
属性。您仍然为能够利用 IFRAME 并将 SRC 设置为适当的
UGL450L(并为报表的称号加上前缀“”卡塔尔国。

除了报表管理职能外,Web
服务提供的别样重视效用就是报表显示。大相当多应用程序(包蕴报表微型机应用程序卡塔尔国都施用
Web 服务效果来列出报表或改变设置,并利用本身介绍过的 UEnclaveL
方法来显示报表。然而,倘令你想要完全调控报表内容在应用程序中管理的章程,能够行使
ReportingService 类的 Render
方法。该措施重临一个方可在后来保存到输出文件的字节数组;决计于须求的格式,输出文件可以是图形文件或
Excel 钟表格。倘让你要以 HTML
格式突显报表,大概会特别复杂一些,因为你将索要动用 RenderStream
方法来分别表现图像或任何资源。

即使本文的批评爱惜在于 Web
应用程序,您也得以接收同一的本事将报表生成功用丰盛到基于 Windows
的应用程序中。最简便的不二法门仍然是行使 U奥迪Q5L
访谈,可能从应用程序运转用户的浏览器,大概包涵 Microsoft WebBrowser
ActiveX? 控件并使用 Navigate 方法来加载适当的
U中华VL。当您想要越来越好地操纵某个操作(举个例子,在图纸框中呈现结果或将文件直接保存到磁盘的操作卡塔尔国时,Web
服务的 Render
音信工笔者平时必得管理两系列型的表格:当她们必要采摘新闻时她们想要取得的品类以至周周都出现在她们桌面上或他们电子邮件中的类型。至此,小编已根本阐述了顾客得到他们本身的表格的历程,但
Reporting Services
还包罗一种格外强劲的名叫订阅的功用,它令你可以将报表“推”给客商。

订阅报表

Reporting Services
订阅成效让客户根据安顿抽出报表。报表日常会经过电子邮件发送到客户,但
Reporting Services
同期还使你将报表生成到一个文件分享以至足以编写自个儿的付出扩充。那使您能够轻巧地成功分发职务,举个例子,向各种发售代表以电子邮件情势发送周周发卖总括报表,恐怕安装每月财政报表在每一个月的最后一天运行,并将其用作叁个PDF 写出到公司文件共享。

在装置订阅前,您需求思虑报表将如何连接到数据库以搜索其数额。因而,订阅的报表将不会由顾客直接实施,您不可能为数据源使用集成的安全性,但在表格运营时必需钦赐要选用的客商名和密码。借使您准备为使用集成安全性的表格设置订阅,Reporting
Services 将会回到叁个荒诞。

要转移示例报表的数据源,请张开“Report Manager | 萨姆ple
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类。有关该方法的参数的详细表达,请参阅 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
瑟维斯s
是选用模块化的系统布局创设的,假诺您须求更刚劲的效能,它能够让你使用自身喜好的、以
.NET 为对象的语言来增加作用壮大的新扩充。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website