上一篇介绍如何在SSRS中以共享目录的方式来订阅报表。由于SSRS对于邮件的方式订阅报表有些特殊,所以此篇将介绍如何以变通的方式实现报表邮件订阅。
实现邮件的方式订阅报表,我们将其拆分成三个部分。
我们利用SQL Server Agent生成job来以固定周期触发一个流程。然后在这个流程中,首先实现一个app将报表生成到一个指定目录下,然后再调用另外一个程序,根据配置文件,把报表发送给指定邮件组的用户。
首先,创建生成报表pdf的应用程序。
生成pdf的主要思路是用一个winform应用程序添加一个reportviewer控件,然后直接将报表生成pdf格式。
打开Visual Studio 2012,创建一个winform应用程序。
在窗体上添加ReportViewer控件。
然后,在数据库中建立加几张表,用来保存报表控件的配置信息,以及邮件发送的配置信息。这三张表的结构可以根据实际情况定义,在本片中,ReportBase主要保存ReportServer和ReportPath两条信息,用来定位一张服务器端报表。EmailBase主要用来记录发送邮件所有的用户名和密码以及smtp服务器所在地址。ReportTo用来记录邮件发送给谁。
创建好基础表之后,回到项目,添加一个LINQ to SQL Classes(当然你可以选择Entity Data Model)。
连接到刚才建立的数据库。