报表开发完了,客户提出一个需求:需要每日在某个时间点自动将报表导成EXCEL ,并发送邮件到指定的人,原来 reporting services订阅 就能完成上面的工作。
官方描述如下:
在 Configuration Manager 控制台中,导航到“System Center Configuration Manager/站点数据库/计算机管理/报表/Reporting Services/<报表服务器名称>”并展开节点。
在结果窗格中,右键单击报表,然后单击“新建订阅”。
在创建订阅向导的“订阅传递”页面上,指定此报表订阅的传递属性。从“报表传递方式”下拉列表中,选择“电子邮件”。有关此页面上选项的详细信息,请参阅“报表订阅”对话框:“订阅传递”选项卡。
单击“下一步”继续。
在创建订阅向导的“订阅计划”页面上,配置生成和传递报表时将依据的计划。有关此页面上选项的详细信息,请参阅“报表订阅”对话框:“订阅计划”选项卡。
单击“下一步”继续。
在创建订阅向导的“订阅参数”页面上,指定运行此报表需要的任何参数。有关此页面上选项的详细信息,请参阅“报表订阅”对话框:“订阅参数”选项卡。
单击“下一步”继续。
在创建订阅向导的“摘要”页面上,查看将要创建的订阅,然后单击“下一步”。
在创建订阅向导的“确认”页面上,查看已经执行的操作,然后单击“关闭”以退出向导。
在 Configuration Manager 控制台中,导航到“System Center Configuration Manager/站点数据库/计算机管理/报表/Reporting Services/<报表服务器名称>”并展开节点。
在结果窗格中,右键单击报表,然后单击“新建订阅”。
在创建订阅向导的“订阅传递”页面上,指定此报表订阅的传递属性。在“报表传递方式”下拉列表中,选择“Windows 文件共享”。有关此页面上选项的详细信息,请参阅“报表订阅”对话框:“订阅传递”选项卡。
单击“下一步”继续。
在创建订阅向导的“订阅计划”页面上,配置生成报表并向文件共享传递报表时将依据的计划。有关此页面上选项的详细信息,请参阅“报表订阅”对话框:“订阅计划”选项卡。
单击“下一步”继续。
在创建订阅向导的“订阅参数”页面上,指定运行此报表需要的任何参数。有关此页面上选项的详细信息,请参阅“报表订阅”对话框:“订阅参数”选项卡。
单击“下一步”继续。
在创建订阅向导的“摘要”页面上,查看将要创建的订阅,然后单击“下一步”。
在创建订阅向导的“确认”页面上,查看已经执行的操作,然后单击“关闭”以退出向导。
其实 ,我是想完成第一种:通过电子邮件传递报表,官方的这个说明很粗糙,其实第三步,选择“电子邮件”的前提是在SQL server 的 "Reporting service 配置管理器"下,进行了"电子邮件设置",只是郁闷的是这里为什么不需要输入用户名,密码,导致我的订阅直接失败 ,看来还是在哪个细节上出了问题,于是我继续查找相关资料.....
继续 :
查找到的资料,关键点如下:
(1)在Reporting Services Configuration工具中配置邮件SMTP服务器及发送邮件地址
访问“Microsoft SQL Server 2005-->Configuration Tools-->Reporting Services Configuration”,在出现的界面中单击Email Settings,在SMTP Server中输入电子邮件SMTP服务器的名称或者IP地址,在Sender Address中输入有权限发送邮件的Email地址。
(2) 去设置具体的报表订阅(同官方)
注意:
1、请将要订阅的报表设置好参数的默认值
2、SQLSERVER AGENT服务要启动,设置好的订阅计划其实是在SQLSERVER AGENT中的一个计划任务,因此只有SQLSERVER AGENT服务启动了,才能实现订阅。
总结下: 看来问题出在smtp server 上了,可能只能用企业自己的邮件服务器(我猜测是这样) ,于是我继续查找相关资料.....
继续 :
查找到的资料,关键点如下:
配置SQL Server 2005 Reporting Service 的订阅功能
一 配置报表服务器的远程 SMTP 服务
1. 请验证报表服务器 Windows 服务是否对 SMTP 服务器拥有 Send As 权限。
2. 在文本编辑器中打开 RSReportServer.config 文件。
3. 请验证是否将 <UrlRoot> 设置为报表服务器 URL 地址。此值是在您配置报表服务器时设置的,应该已经填写。如果未设置此值,则请键入报表服务器 URL 地址。
4. 在“传递”部分中,查找 <ReportServerEmail>。
5. 在 <SMTPServer> 中,键入 SMTP 服务器的名称。此值可以是 IP 地址、企业 Intranet 上计算机的 UNC 名称或者完全限定域名。
6. 请验证是否将 <SendUsing> 设置为 2。如果将其设置为其他值,则报表服务器无法配置为使用远程 SMTP 服务。
7. 在 <From> 中,键入有权从 SMTP 服务器发送电子邮件的帐户的名称。
8. 保存该文件。
二 创建电子邮件订阅
1. 在报表管理器中的“内容”页上,导航到要订阅的报表。单击报表将其打开。
2. 单击“订阅”选项卡,再单击“新建订阅”。
3. 对于传递方法,请从“传递者”列表框中选择“报表服务器电子邮件”。
4. 在“收件人”文本框中,键入要将报表传递到的电子邮件地址。若要指定多个电子邮件地址,请用分号 (;) 进行分隔。还可以在“抄送”、“密件抄送”和“答复”文本框中键入其他电子邮件地址。
5. 按如下说明选择传递选项:
o若要嵌入或附加报表副本,请选择“包括报表”。报表的格式由在下面选择的呈现格式确定。如果认为报表大小将超过为电子邮件系统所定义的限制,则不要选择此选项。
o若要在电子邮件正文中包括指向报表的 URL 链接,请选择“包括链接”。
6. 从“呈现格式”列表框中选择一种呈现格式。如果选择“包括报表”以嵌入或附加报表副本,则此选项可用。
o若要在电子邮件正文中嵌入报表,请选择"Web 存档”。
o若要将报表作为附件发送,请选择任何其他呈现格式。
7. 从“优先级”列表框中选择优先级。在 Microsoft Exchange 中,此设置将为电子邮件的重要性级别设置标志。
8. 按如下说明指定订阅处理选项:
o若要指定传递计划,请单击“预定报表运行完成时”,再单击“选择计划”。将打开计划页。
o若要在报表快照更新为新版本时传递报表,请单击“刷新报表内容时”。报表快照的更新计划将决定订阅的处理时间。
9. 对于参数化报表,指定在响应此订阅时生成的报表所使用的参数。所指定的参数可以不同于在按需运行报表时所使用的参数或按计划执行其他操作时所使用的参数。
说明 : 已经按上面的检查了RSReportServer.config ,<SendUsing> = 2 ,依然订阅失败 ,继续研究中........