閱讀419 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Reporting Service在Web Application中的應用

由於我們這個項目中使用微軟的報表服務(Reporting Services)作為報表輸出工具,本人也對它進行一點點研究,雖沒有入木三分,但這點知識至少可以在大部分Reporting Service的場景中應用。

  原先剛裝上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,即可。再重新編繹一下,那麼這個組件就具備了參數傳遞功能。

最後更新:2017-04-02 00:06:39

  上一篇:go 基於流模式長連接的簡單實現
  下一篇:go 總結的網站開發的要點