查看内容

Services生成报表

  • 2020-03-17 09:13
  • 编程人生
  • Views

骨干提醒:利落的表格功用是大比较多业务应用程序的多少个渴求,这几个报表功效在合龙到 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 瑟维斯s 成为在各类铺面条件中生成报表的极佳工具。

Reporting Services 是作为 SQL Server 二〇〇二的一部分而授权的,因而只要你有已授权的 SQL Server 的副本,则足以在同等服务器上运营 Reporting 瑟维斯s 而不要求支付额外的执照费用。就算您决定在单身的、尚未经 SQL Server 授权的Computer(譬喻,Web 服务器卡塔尔(قطر‎上运营 Reporting Services,您将索要购置额外的 SQL Server 许可证。

要从头利用 Reporting Services,您可以下载坐落于 SQL Server 2001 Reporting Services 的 120 天试用版软件,它还包蕴关于如何收获该付加物的设置媒体的认证。在安装该成品时,请保管当选包含示例报表的选项,因为本人要将那些报表集成到本文的 Web 应用程序中。

Reporting Services 概述

Reporting Services 报表设计使用新的 Visual Studio .NET 二〇〇三报表设计器,在装置有 Visual Studio 的千篇一律计算机上设置了 Reporting Services 后,该设计器就足以接纳。设计器以新的依照 XML 报表定义语言 (HavalDL卡塔尔国输出报表结议和数量访谈的辨证,而 奔驰M级DL 文件会公布到报表服务器。若是您愿意为客户提供创作职能,也能够使用第三方的表格设计器。

管理员能够使用基于 Web 的表格微型机来保管已公布的报表,並且能够实施一些职务,比如,保险某个客商组报表的兴安盟或改进已布置报表的数额源连接字符串。客商也得以运用报表微机来浏览和查阅报表;不过洋洋供销合作社支持于采取UKugaL 乞请或 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 Intelligence Projects 部分。为你的项目钦定四个称呼,单击“OK”,然后将展现报表向导对话框。在你选取数据源的这一步骤中,单击“Edit”开关,以便钦点连接到你数据库服务器上的 AdventureWorks2004,单击“OK”,然后选中使其改为分享数据源的选项。

单击“Next”步入到“Design the Query”步骤,钦命简单的 SQL 语句(比方,“SELECT * FROM Product”卡塔尔(قطر‎,然后单击“Next”。Reporting Services 扶植显得一组固定列的正式表格式 (Tabular卡塔尔(قطر‎报表,也支撑采用含有动态列的穿插表样式视图的矩阵式 (Matrix卡塔尔(قطر‎报表,因而为该报表选取 Tabular,然后单击“Next”。

将或多或少列(比方,ProductID 和 Name卡塔尔(قطر‎拖到 Details 部分并单击“Next”。接受默许的 Bold 样式,单击“Next”,然后钦定您的报表服务器的设想目录的 UCRUISERL,举例,。现在,单击“Next”。末了一步,您可认为您的首先个表格钦命名称,比如,Products Report;然后单击“Finish”。

该引路将会创造该项目,同期还创办三个得以由四个表格分享AdventureWorks二〇〇四 数据源,以至一个在设计器中开发的有关 Products 数据的报表(请参见图 2State of Qatar。默许情状下,展现让你能够纠正报表设计的 Layout 选项卡。

图 2 Visual Studio 报表设计器

Data 选项卡用于指定报表的查询,包括安装参数以便在试行报表时提示客户提供值。单击“Preview”选项卡来测量试验报表显示给顾客的点子。

最近,您能够将增大的报表增多到该品种,或然经过丰盛附加列、将数据分组、加多汇总、以致是充分能够显得来自其余查询的多少的附加表来改进Products 报表。与众多报表设计器区别,Reporting Services 使用带外设计,那使得它能够轻易地创建将种种源的数量汇总在同贰个地点的报表。 您刚刚创设的表格项目由近来驻留在您的支出Computer上的一组文件组成。为了将这一个报表宣布给客商,您须求将该类型构造到报表服务器。

安排和测量检验

在布置报表项目事情未发生前,要求内定将项目构造到哪多个服务器。假若您最先使用该引路创建了报表项目,那么你或者已经钦定了对象服务器。

要反省该装置或钦定三个新服务器,请选取“Project | Properties”来突显Project Properties 对话框。举行该装置让你能够钦定项目标文件夹名和 Reporting Services Web 服务的 UHavalL。在菜单上采摘“Build | Deploy Solution”将创设报表项目,然后将其安顿到服务器。

在计划报表项目后,您就能够打开测验了。已配备到服务器的各个报表都负有独一的门道,该路径能够用来在浏览器中突显报表。比如,要展现你创制的首先个表格,请展开浏览器并导航到 +Project1/Products+Report。那会以 HTML 格式展现报表并在页面包车型地铁上方展现八个工具栏,以便使您能够对报表实行翻页、改良缩放比例,以至以各样其余格式(举例,PDF卡塔尔查看报表。

您还足以经过导航到服务器上的以下 UEnclaveL,来浏览已配备到服务器的持有报表项目的列表:。报表服务器提供令你能够查阅已布署的表格类型和查看报表的细小的客商分界面。

报表微处理机是三个特别协和、作用更增进的工具,能够由此轻易地导航到地面服务器上的以下 U凯雷德L 来访谈该工具:。

将报表增添到 Web 应用程序

既是你领略怎样安顿、陈设和测量试验报表,就让大家将这个报表集成到应用程序中吗!非常多Web 应用程序都囊括针对每种顾客的自定义主页,平时称为“仪表板”。这一个页面经常提供针对性客商量身定做的摘要式音信并视作跳转点来会见应用程序的别的效率。

自己将运用 Reporting Services 附带的事必躬亲报表营造一个仪表板来演示报表集成,如图 3 所示。如若你在装置进度中装置了示范报表,您能够展开该报表项目(安装到 Reporting ServicesSamplesReportsState of Qatar并将其安顿到测量检验服务器。您能够选择报表微处理机工具通过浏览到 SampleReports 文件夹来测验示例报表。

图 3 仪表板 Web 应用程序

为客户提供从应用程序访谈报表的权柄的最轻巧易行方法就是利用一级链接。如你已经观望的那么,每种报表都两全独一的、用于在浏览器中显得报表的门路。对于仪表板应用程序,报表应该在单身的窗口中展开,因而笔者将为该超级链接钦点八个对象。到近期截止,那是非常轻易的,可是对于全体参数报表的表格(举个例子,Employee Sales Summary 报表State of Qatar来讲,情状又何以呢?要真的地将报表集成到应用程序中,您平日需求为参数钦点某个值,以便客户不会被经常提示。

Reporting Services 使那项职分很简单:报表参数的值能够钦赐为 U宝马X5L 的一有个别。比如,Employee Sales Summary 报表具备 ReportYear、ReportMonth 和 EmpID 参数,因而显得号码为 24 的职工在 四月份的贩卖额的拔尖链接可以是:

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

不抱有在 U奥迪Q3L 中钦命的值的参数将利用在表格设计器中安装的默许值,因而刚才来得的上行下效销售集中报表使用的 ReportYear 值是 2004。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 应用程序使用框架来显示报表(譬喻说,在侧边窗格中显示报表列表,在侧边窗格中显得报表内容卡塔尔国,您将索要动用 rc:LinkTarget 参数来钦命内容框架的称谓。不然,当顾客点击报表中的任性嵌入链接时,浏览器就可以动用任何窗口来重新突显报表,实际不是保存导航窗格和内容窗格的框架。

你能够利用小编介绍过的 U奥迪Q5L 参数来增添“急速运转”区域,该区域包含使客商能够张开常用报表的一流链接的列表(请参见图 3State of Qatar。各类拔尖链接将其目的设置为 _blank 以在独立的浏览器窗口中展开报表,并选拔诸如 rs:Format=EXCEL 那样的参数来支配报表在浏览器中的呈现方式。

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

倘若在客商查看报表时,不再动用弹出新的浏览器窗口,您只怕希望实际地将报表嵌入到协和的 Web 页中。最简易的不二法门正是在 Web 页上使用 IFRAME,并应用自家介绍过的依附URAV4L 的同一能力来安装 SRC 属性。假设你使用这种技巧,切记要将 rc:LinkTarget 参数设置为 IFRAME 的称呼,以幸免当客商单击报表的链接时在框架外弹出任性三个框架。

倘使你早前设计过 ASP.NET 的服务器控件,您或然会感到 IFRAME 技艺并不足够到家,因为它必要 Web 开拓职员明白 Reporting Services 的 U奇骏L 参数语法工夫营造方便的 SRC 字符串。构建三个卷入有全部参数并使开荒职员可以大致地设置诸如 ReportPath 和 Zoom 之类的参数的服务器控件难道不是多个更加好的主见吗?

Reporting Services 特别便于地附带了名称叫 ReportViewer 的演示(安装到 Reporting ServicesSamplesApplicationsReportViewer 目录State of Qatar,它能够兑现这一个主见。该控件封装了 IFRAME 和 U科雷傲L 访谈参数逻辑,并提供了四个更简便易行的用来将报表嵌入到应用程序中的方法。要使用该控件,请展开并营造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 瑟维斯s 安全性使用深谙的依靠剧中人物的模型。顾客和组能够分配给诸如 System Administrator 或 Browser 之类的剧中人物,特定角色的具有成员都将允许施行为该剧中人物定义的操作。

报表微型机用于施行与安全性相关的义务,比方,分配顾客剧中人物或校订项(比如,报表卡塔尔的权柄等。私下认可意况下,Administrators Windows 组同期是颇负文件夹的 System Administrator 和 Content Manager 的成员。为了增加报表访问到其余客商,客商帐户或组必得增添到诸如 Browser 的剧中人物中。那常常是在文书夹级设置的,同期也足以本着单身的表格进行重写。

除了那个之外保险对报表的拜望外,管理员还非得调节哪些将报表连接到源数据库。能够配备数据源使用集成的安全性,以便能够运用当前的顾客帐户实行数据库连接。其它,还足以定义 Windows? 或 SQL Server 客户名和密码,并将其安全地蕴藏在报表服务器数据库中。这种措施必要表格运维在无客户交互作用(比方,订阅所涉嫌的相互影响卡塔尔(قطر‎的气象下。

使用 Reporting Services Web 服务

到这段日子结束,小编一贯选用的 U兰德逍客L 访谈方法提供了一种高效方便的法子来查看报表并内定参数,不过它不可能提供对全数可用的表格管理效果的访谈。Reporting 瑟维斯s 还顺带了三个颇负丰盛效用的 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 属性提供了到项的天下无双路线,举例,/萨姆pleReports/Sales Order Detail,Type 属性令你能够区分报表和此外项目标项。

既然如此作者一度将报表名称加载到了下拉列表中,我必得决定哪些在仪表板应用程序内展现报表。笔者说了算扩充本身早期编写的 ReportViewer 代码而且只要顾客选取有些报表并点击“Go”开关就更动 ReportPath 属性。您仍为能够动用 IFRAME 并将 SRC 设置为适龄的 U库罗德L(并为报表的称谓加上前缀“”卡塔尔。

除此而外报表管理功能外,Web 服务提供的另外首要作用正是报表呈现。大非常多应用程序(蕴含报表微型机应用程序卡塔尔(قطر‎都采取Web 服务职能来列出报表或改造设置,并运用自家介绍过的 U瑞虎L 方法来展现报表。不过,假若你想要完全调节报表内容在应用程序中管理的点子,可以接受ReportingService 类的 Render 方法。该方法再次来到三个可以在随后保存到输出文件的字节数组;决定于央求的格式,输出文件能够是图形文件或 Excel 电子钟格。假如您要以 HTML 格式显示报表,恐怕会更为头眼昏花一些,因为你将急需选拔 RenderStream 方法来分别表现图像或其余财富。

纵然本文的探讨珍视在于 Web 应用程序,您也足以采纳同一的技术将报表生成功效丰裕到基于 Windows 的应用程序中。最简便的点子仍然为采纳 UOdysseyL 访谈,大概从应用程序运转顾客的浏览器,或然蕴涵 Microsoft WebBrowser ActiveX? 控件并接受 Navigate 方法来加载适当的 UEvoqueL。当您想要更加好地调整有个别操作(举例,在图纸框中突显结果或将文件一向保存到磁盘的操作卡塔尔时,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类。有关该形式的参数的事必躬亲表达,请参阅 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 瑟维斯s 效能包蕴 Data Driven Subscriptions 和 Snapshots,后面一个让你能够安装客商的邮件列表并以电子邮件形式将一定参数化的表格发送给他们,前者是在陈设点的表格视图,同有的时候候还足以提供报表的野史视图。Reporting Services 是使用模块化的系统结构营造的,就算您须求更结实大的成效,它能够令你使用本人喜好的、以 .NET 为指标的言语来加多效率强大的新增添。

上一篇:睡眠面膜怎么用效果最好 下一篇:没有了