原先剛裝上Reporting Service時還覺得有點神秘,畢竟在做這個項目前還沒有真正接觸這個微軟用於代替水晶報表的報表工具,而且微軟似乎還不滿足於一個報表工具那麼簡單。
Reporting Services 是一種基於伺服器的新型報表平台,部署在Microsoft SQL Server 2000基礎上,可用於建立和管理組件含來自關係資料來源和多維資料來源的資料的表格報表、矩陣報表、圖形報表和自由格式報表。可以通過基於 Web 的串連來查看和管理您建立的報表。
Reporting Services 提供了一套完整的服務、工具和API (API),您即使不是程式員也可以使用 Reporting Services。可以使用 Reporting Services 中包含的應用程式和工具來製作、發布和管理報表。此外,還提供了支援報表生存周期的各個階段的工具或應用程式。程式員可以使用 API 將報表功能擴充或整合到自訂解決方案中。
本文主要簡介Reporting Service開發中所涉及到的部分技術,首先我們可以從其是一個服務(Service)可知,它提供了Web Service介面,並且允許我們在報表中內嵌程式碼(必須是VB .Net),還可以引用基於.Net Framework的程式集。
在此主要講Reporting Service開發相關技術的二個方面
1.在自訂的應用程式中整合Reporting Service提供的報表格服務
產生報表展示組件
要想把Reporting Service的報表(RDL檔案)整合到自訂的應用程式中,我們可以通過Reporting Service內建的一個報表展示組件,它可以通過對sample項目ReportViewer編譯得到,預設為ReportViewer.dll。
我們通過通過對sample項目ReportViewer進行編譯,可以得用於在自訂應用程式整合RDL檔案的組件,但如果我們需要在自訂應用程中傳遞參數給報表,用預設編譯得到的ReportViewer.dll組件將不支援。接下來,我們要解決這個問題,如何將在自訂應用程中給報表參數賦值?
複製代碼 代碼如下:private void SetParameter(string name, string value)
{
…
…
}
此方法的作用將是給報表參數設定值,這時大家可能會很高興,因為它提供了一個方法來支援,但當我們看到private時,我們也許高興不起來了,微軟基本安全考慮,預設狀態下並不把傳遞參數的方法暴露出來。但往往實現應用與安全都是互斥的。
現在我們至少知道如何擴充該功能來達到我們的目的。 複製代碼 代碼如下:public void SetQueryParameter(string Name, string value)
{
this.SetParameter(Name, value);
}
我們新增一個public的方法SetQueryParameter,即可。再重新編繹一下,那麼這個組件就具備了參數傳遞功能。