技术开发 频道

教程5: 创建数据驱动订阅



    【IT168 技术文档】Reporting Services 提供数据驱动订阅功能,这样您便可根据动态订阅服务器数据自定义报表的分发。数据驱动订阅专门用于下列情况:
•        向大型收件人池分发报表,该池的成员身份可能随着分发的不同而有所变化。例如,向当前的所有客户分发月报表。
•        根据预定义的条件向特定的收件人组分发报表。例如,向某个组织中的前十位销售经理分发销售业绩报表。

    数据驱动订阅通常由报表服务器管理员创建和维护。要创建数据驱动订阅,必须要具备生成查询的专业技术,了解包含订阅服务器数据的数据源,同时还要拥有对报表服务器的提升权限。本教程将逐步讲述如何使用数据驱动订阅,并通过一个简单示例来帮助您理解相关概念。

1:创建示例订阅服务器数据库   
    定义数据驱动的订阅前,必须具有可提供订阅数据的数据源。在此步骤中,您将创建一个小型数据库,以存储本教程中使用的订阅数据。稍后在处理订阅时,报表服务器将检索此数据并使用它来自定义报表输出、传递选项和报表表示格式。
    可以使用 SQL Server 2000 数据库或 SQL Server 2005 数据库来存储数据。本节假定您使用 Management Studio 在 SQL Server 2005 数据库中创建数据库、表和列。
创建示例订阅服务器数据库
1.        启动 Management Studio,打开与数据库引擎的连接。
2.        创建名为订阅服务器的 SQL Server 数据库。
3.        创建一个表。
4.        添加以下五列:Name、Address、EmployeeID、Format 和 Linked。对于 Name 和 Address,请将数据类型设置为 varchar(50)。对于其他所有列,请使用默认数据类型 nchar(10)。
5.        将此表保存为 UserInfo。
6.        在 Management Studio 工具栏上,单击“新建查询”,并选择“数据库引擎查询”。
7.        展开可用数据库列表,并选择“订阅服务器”。
8.        在查询窗口中,使用 INSERT INTO 添加三行数据。
确保使用有效的电子邮件地址替换 <您的电子邮件地址>。该地址的邮箱提供了每个订阅服务器的传递目标。每行可使用相同的电子邮件地址。以下示例显示了如何使用 INSERT 语句插入一行数据。将语句复制到查询窗口中。
复制到剪贴板
INSERT INTO UserInfo (Name, Address, EmployeeID, Format, Linked) VALUES ('Fernando Caro', '<your e-mail address>', '24', 'IMAGE', 'True')
9.        将下面的语句复制并粘贴到第一组语句后。这些语句用于插入第二行数据:
复制到剪贴板
INSERT INTO UserInfo (Name, Address, EmployeeID, Format, Linked) VALUES ('Rachel Valdez', '<your e-mail address>', '35', 'MHTML', 'True')
10.        将下面的语句复制并粘贴到查询窗口中。这些语句用于插入第三行即最后一行数据:
复制到剪贴板
INSERT INTO UserInfo (Name, Address, EmployeeID, Format, Linked) VALUES ('Michael Blythe', '<your e-mail address>', '38', 'PDF', 'False')
11.        选中所有语句,并单击“!执行”。
12.        使用 SELECT 语句查看您是否有三行数据。例如:select * from UserInfo
您已成功创建了订阅数据,这些数据将为每个订阅服务器驱动报表分发并改变报表输出。
2:修改报表数据源属性   

    在本课中,将首先选择工具和报表。虽然您可以使用报表管理器或 Management Studio 来定义数据驱动订阅,但本教程假定您使用的是 Management Studio。
    将定义的数据驱动订阅用于 Adventure Works 示例报表“员工销售汇总表”。在接下来的步骤中,将修改此报表使用的数据源连接信息,以获取数据。只有使用存储凭据访问报表数据源的报表才能通过数据驱动订阅进行分发。存储凭据是处理无人参与的报表所必需的。
修改数据源属性
1.        单击“开始”,依次指向“程序”、Microsoft SQL Server 2005,再单击 Management Studio。将连接到报表服务器。
2.        定位到包含 Adventure Works 示例报表的文件夹。
3.        依次展开“员工销售汇总表”示例报表和“数据源”。
4.        右键单击 AdventureWorks,然后选择“属性”。
5.        选择“自定义数据源”。
6.        对于“连接类型”,请选择 Microsoft SQL Server。
7.        键入以下连接字符串:
复制到剪贴板
data source=<the name of your SQL Server>; initial catalog=AdventureWorks
8.        单击“安全存储在报表服务器中的凭据”。
9.        键入用户名(使用 domain\user 格式)和密码。如果您没有访问 AdventureWorks 数据库的权限,请指定具有此权限的登录名。
10.        单击“在与数据源建立连接时用作 Windows 凭据”,再单击“确定”。如果没有使用域帐户(例如,如果使用“SA”),请不要单击该复选框。
11.        查看报表以验证报表是否以指定的凭据运行。若要查看报表,请右键单击报表并选择“查看报表”。请注意,报表处于打开状态后,必须选中雇员姓名,然后单击“查看报表”按钮,以查看该报表。
您已成功配置了报表,从而可使用存储凭据获取数据。
3:定义数据驱动订阅   

    在本课程中,您将使用数据驱动订阅页来连接订阅数据源,生成一个检索订阅数据的查询,然后将结果集映射到报表和传递选项。
启动数据驱动订阅向导
1.        如果未打开报表,请打开一个报表。单击页面顶部的“视图”选项卡以打开报表。
2.        若要定义数据驱动订阅,请单击“订阅”选项卡,再单击“新建数据驱动订阅”。
3.        (可选)。键入订阅的说明。
4.        选择“报表服务器电子邮件”作为传递方法,再单击“下一步”。
指定与订阅服务器数据源的连接
1.        选择 Microsoft SQL Server 作为连接类型。
2.        键入以下连接字符串:
复制到剪贴板
data source=<server name>; initial catalog=Subscribers
3.        键入您的域名、用户名和密码。
4.        单击“在与数据源建立连接时用作 Windows 凭据”,再单击“下一步”。
定义检索订阅服务器数据的查询
1.        在查询窗格中,键入以下查询:
复制到剪贴板
Select * from UserInfo
2.        键入您的域名、用户名和密码。
3.        单击“验证”,再单击“下一步”。
设置传递选项
1.        对于“收件人”选项,单击“从数据库获取该值”,然后选择“地址”。
2.        对于“抄送”、“密件抄送”和“答复”选项,单击“无值”。
3.        对于 IncludeReport 选项,单击“指定静态值”,然后选择 True。
4.        对于 RenderFormat 选项,单击“从数据库获取该值”,然后选择“格式”。
5.        对于“优先级”选项,单击“指定静态值”,然后选择“普通”。
6.        对于“主题”选项,单击“指定静态值”,然后选择“在 @ExecutionTime 时运行 @ReportName”。
7.        对于“注释”选项,单击“无值”。
8.        对于“包括链接”选项,单击“从数据库获取该值”,然后选择“链接”。
9.        单击“下一步”。
指定参数值以改变报表输出
1.        使用“月”和“年”的默认参数值。它们分别是“6 月”和“2004 年”。
2.        对于“员工”选项,单击“从数据库获取该值”,然后选择 EmployeeID。
3.        单击“下一步”。
安排订阅
1.        单击“根据为此订阅创建的计划”,再单击“下一步”。
2.        单击“一次”可只运行一次订阅。将开始时间指定为距当前时间 10 分钟后。
3.        单击“完成”。
您已成功地定义并安排了数据驱动订阅,将在十分钟后向您的电子邮箱发送 3 个版本的报表。
4:计算订阅结果   

    在运行订阅时,将有三封电子邮件(分别属于 Subscribers 数据源中的三名订阅者)发送到您的电子邮件收件箱中。每个发送的电子邮件在数据(数据应该是员工特定的)、呈现格式和是否包含链接方面都将是唯一的。
0
相关文章