背景部分 服務器
使用Reporting Services很容易製做和發佈咱們須要的報表,報表效果也還不錯工具
不過若是報表數據過大或報表數量過多,打開及查看報表感受可能就是另一回事了spa
好在Reporting Services提供了離線下載功能;同時,也提供了Web Services供開發人員調用orm
做爲一個軟件工程師,徹底能夠建一個控制檯程序,代碼寫好,使用配置文件獲取報表參數blog
運行,喝杯茶,全部的報表就下載到本地了~~~ip
技術部分 開發
Web Services比較經常使用的服務地址以下get
http://[RS Server Name]/ReportServer/ReportExecution2005.asmxio
其中:[RS Server Name]是Reporting Services服務器的名字asm
咱們固然能夠在項目中添加Web Reference的方式加入Web Services
不過也能夠使用VS工具中的WSDL生成編譯文件,供後期項目重複使用,下載能夠點擊這裏
對於導出報表功能,我也簡單的獲取了一個類來封裝調用,下載能夠點擊這裏
調用舉例
Report rpt = new Report();
// 如下參數按照實際環境修改
rpt.ServerUrl = "http://[RS Server Name]/ReportServer";
rpt.UserName = "User Name";
rpt.Password = "Password";
rpt.Domain = "Domain Name";
// 報表所在的路徑,參考下圖
rpt.FolderPath = "/Northwind Reports/NorthwindCustomers";
// 導出文件的格式
rpt.Format = ReportFormat.EXCEL;
// 導出到指定位置
rpt.Export(@"C:\Nw2.pdf");
若是須要傳入參數,能夠參考以下
rpt.Parameters = new ParameterValue[1];
rpt.Parameters[0] = new ParameterValue();
rpt.Parameters[0].Label = "Month";
rpt.Parameters[0].Name = "Month";
rpt.Parameters[0].Value = Month;
其中:rpt.Parameters[0].Value必須使用RDL報表中參數實際使用的值
[03/29/2016]Updates:
在報表查看頁面中能夠點擊右側下拉菜單,點擊其中的「Download...」,下載的RDL文件直接使用記事本能夠找到參數的實際使用名稱
Andy Yang
2014.03.20