原先剛裝上Reporting Service時還覺得有點神秘,畢竟在做這個項目前還沒有真正接觸這個微軟用於代替水晶報表的報表工具,而且微軟似乎還不滿足於一個報表工具那麼簡單。
Reporting Services 是一種基於服務器的新型報表平台,部署在Microsoft® SQL Server™ 2000基礎上,可用於創建和管理包含來自關系數據源和多維數據源的數據的表格報表、矩陣報表、圖形報表和自由格式報表。可以通過基於 Web 的連接來查看和管理您創建的報表。
Reporting Services 提供了一套完整的服務、工具和應用程序編程接口 (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,即可。再重新編繹一下,那麼這個組件就具備了參數傳遞功能。