背景部分
使用Reporting Services很容易製作和釋出我們需要的報表,報表效果也還不錯
不過如果報表資料過大或報表數量過多,開啟及檢視報表感覺可能就是另外一回事了
好在Reporting Services提供了離線下載功能;同時,也提供了Web Services供開發人員呼叫
作為一個軟體工程師,完全可以建一個控制檯程式,程式碼寫好,使用配置檔案獲取報表引數
執行,喝杯茶,所有的報表就下載到本地了~~~
技術部分
Web Services比較常用的服務地址如下
http://[RS Server Name]/ReportServer/ReportExecution2005.asmx
其中:[RS Server Name]是Reporting Services伺服器的名字
我們當然可以在專案中新增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