ASP.NET中訪問SQL 2005報表服務(二)

通過調用SQL 2005Web service訪問SQL 2005報表服務

這種方法適合建立自己的報表解決方案,如改善報表參數的UI界面,提供漂亮的報表導航界面界面等。

使用 Add Web Reference 將一個 Web 服務引用添加到應用程序中。指定到 Web 服務的路徑,如下所示:

http://MyServer/ReportServer/ReportService.asmx

如果報表服務就在本機可以直接點擊”Web services on the local machine”進行選擇。

 

 

 

在添加引用後,就可以創建 ReportingService 代理類的一個實例,並調用該服務上的方法。

         

        //獲取已存在報表服務引用實例

        ReportService2005.ReportingService2005 reportingService = new ReportingService2005();

        //設定驗證關係

        reportingService.Credentials = System.Net.CredentialCache.DefaultCredentials;

        //從報表服務器獲取報表數據

        ReportService2005.CatalogItem[] reportItems = reportingService.ListChildren("/ReportProjectDemo", true);

//遍歷報表數組中的WebReference.CatalogItem實例,然後放置到前臺的DropDownList中去

        foreach (ReportService2005.CatalogItem item in reportItems)

        {

            if(item.Type == ItemTypeEnum.Report)

            {

                DropDownList1.Items.Add(new ListItem(item.Name, item.Path));

            }

        }

 

 

如果您正在一個 Intranet 環境中部署應用程序,要通過將添加到應用程序的 web.config 文件中來啓用模擬。您還要將客戶端登錄憑據傳遞到該服務,如前面的示例所示。

ListChildren 方法返回 CatalogItem 對象的數組,該數組表示用戶有權查看的項,包括報表、文件夾和數據源。Path 屬性提供了到項的唯一路徑,例如,/SampleReports/Sales Order DetailType 屬性使您可以區別報表和其他類型的項。

既然我已經將報表名稱加載到了下拉列表中,我必須決定怎麼樣在儀表板應用程序內顯示報表。我決定擴展我早期編寫的 ReportViewer 代碼並且只要用戶選擇某個報表並點擊“Go”按鈕就更改 ReportPath 屬性。您還可以使用 IFRAME 並將 SRC 設置爲適當的 URL(併爲報表的名稱加上前綴“http://MyServer/ReportServer?”)

除了報表管理功能外,Web 服務提供的其他主要功能就是報表呈現。大多數應用程序(包括報表管理器應用程序)都使用 Web 服務功能來列出報表或更改設置,並使用URL 方法來顯示報表。但是,如果想要完全控制報表內容在應用程序中處理的方式,可以使用 ReportingService 類的 Render 方法。該方法返回一個可以在以後保存到輸出文件的字節數組,取決於請求的格式,輸出文件可以是圖形文件或 Excel 電子表格。如果要以 HTML 格式呈現報表,可能會更加複雜一些,因爲您將需要使用 RenderStream 方法來分別呈現圖像或其他資源。

具體可以參考下文

http://www.codeproject.com/KB/reporting-services/SQLRSViewer.aspx

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章