[收藏]利用SQL Server Reporting Services 从应用程序生成用户友好的报表
2007-11-11 11:46:18 来源:WEB开发网订阅报表
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(WINDOWS平台上强大的数据库平台) 代理作业。您可以通过打开 Enterprise Manager,展开 Management、sql server(WINDOWS平台上强大的数据库平台) 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。
摘自 2004 年 8 月刊的 MSDN Magazine。
您可以在本地报刊亭购买或者最好 订阅。
更多精彩
赞助商链接