上一篇介紹如何在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)。