程式碼匯出Reporting Services報表檔案

Andy Yang發表於2014-03-20

背景部分

使用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

相關文章