asp.net Reporting Service在Web Application中的應(yīng)用
更新時間:2008年11月26日 12:38:00 作者:
由于我們這個項目中使用微軟的報表服務(wù)(Reporting Services)作為報表輸出工具,本人也對它進(jìn)行一點點研究,雖沒有入木三分,但這點知識至少可以在大部分Reporting Service的場景中應(yīng)用。
原先剛裝上Reporting Service時還覺得有點神秘,畢竟在做這個項目前還沒有真正接觸這個微軟用于代替水晶報表的報表工具,而且微軟似乎還不滿足于一個報表工具那么簡單。
Reporting Services 是一種基于服務(wù)器的新型報表平臺,部署在Microsoft® SQL Server™ 2000基礎(chǔ)上,可用于創(chuàng)建和管理包含來自關(guān)系數(shù)據(jù)源和多維數(shù)據(jù)源的數(shù)據(jù)的表格報表、矩陣報表、圖形報表和自由格式報表??梢酝ㄟ^基于 Web 的連接來查看和管理您創(chuàng)建的報表。
Reporting Services 提供了一套完整的服務(wù)、工具和應(yīng)用程序編程接口 (API),您即使不是程序員也可以使用 Reporting Services??梢允褂?Reporting Services 中包含的應(yīng)用程序和工具來制作、發(fā)布和管理報表。此外,還提供了支持報表生存周期的各個階段的工具或應(yīng)用程序。程序員可以使用 API 將報表功能擴展或集成到自定義解決方案中。
本文主要簡介Reporting Service開發(fā)中所涉及到的部分技術(shù),首先我們可以從其是一個服務(wù)(Service)可知,它提供了Web Service接口,并且允許我們在報表中嵌入代碼(必須是VB .Net),還可以引用基于.Net Framework的程序集。
在此主要講Reporting Service開發(fā)相關(guān)技術(shù)的二個方面
1.在自定義的應(yīng)用程序中集成Reporting Service提供的報表服務(wù)
生成報表展示組件
要想把Reporting Service的報表(RDL文件)集成到自定義的應(yīng)用程序中,我們可以通過Reporting Service自帶的一個報表展示組件,它可以通過對sample項目ReportViewer編譯得到,默認(rèn)為ReportViewer.dll。
我們通過通過對sample項目ReportViewer進(jìn)行編譯,可以得用于在自定義應(yīng)用程序集成RDL文件的組件,但如果我們需要在自定義應(yīng)用程中傳遞參數(shù)給報表,用默認(rèn)編譯得到的ReportViewer.dll組件將不支持。接下來,我們要解決這個問題,如何將在自定義應(yīng)用程中給報表參數(shù)賦值?
private void SetParameter(string name, string value)
{
…
…
}
此方法的作用將是給報表參數(shù)設(shè)置值,這時大家可能會很高興,因為它提供了一個方法來支持,但當(dāng)我們看到private時,我們也許高興不起來了,微軟基本安全考慮,默認(rèn)狀態(tài)下并不把傳遞參數(shù)的方法暴露出來。但往往實現(xiàn)應(yīng)用與安全都是互斥的。
現(xiàn)在我們至少知道如何擴展該功能來達(dá)到我們的目的。
public void SetQueryParameter(string Name, string value)
{
this.SetParameter(Name, value);
}
我們新增一個public的方法SetQueryParameter,即可。再重新編繹一下,那么這個組件就具備了參數(shù)傳遞功能。
Reporting Services 是一種基于服務(wù)器的新型報表平臺,部署在Microsoft® SQL Server™ 2000基礎(chǔ)上,可用于創(chuàng)建和管理包含來自關(guān)系數(shù)據(jù)源和多維數(shù)據(jù)源的數(shù)據(jù)的表格報表、矩陣報表、圖形報表和自由格式報表??梢酝ㄟ^基于 Web 的連接來查看和管理您創(chuàng)建的報表。
Reporting Services 提供了一套完整的服務(wù)、工具和應(yīng)用程序編程接口 (API),您即使不是程序員也可以使用 Reporting Services??梢允褂?Reporting Services 中包含的應(yīng)用程序和工具來制作、發(fā)布和管理報表。此外,還提供了支持報表生存周期的各個階段的工具或應(yīng)用程序。程序員可以使用 API 將報表功能擴展或集成到自定義解決方案中。
本文主要簡介Reporting Service開發(fā)中所涉及到的部分技術(shù),首先我們可以從其是一個服務(wù)(Service)可知,它提供了Web Service接口,并且允許我們在報表中嵌入代碼(必須是VB .Net),還可以引用基于.Net Framework的程序集。
在此主要講Reporting Service開發(fā)相關(guān)技術(shù)的二個方面
1.在自定義的應(yīng)用程序中集成Reporting Service提供的報表服務(wù)
生成報表展示組件
要想把Reporting Service的報表(RDL文件)集成到自定義的應(yīng)用程序中,我們可以通過Reporting Service自帶的一個報表展示組件,它可以通過對sample項目ReportViewer編譯得到,默認(rèn)為ReportViewer.dll。
我們通過通過對sample項目ReportViewer進(jìn)行編譯,可以得用于在自定義應(yīng)用程序集成RDL文件的組件,但如果我們需要在自定義應(yīng)用程中傳遞參數(shù)給報表,用默認(rèn)編譯得到的ReportViewer.dll組件將不支持。接下來,我們要解決這個問題,如何將在自定義應(yīng)用程中給報表參數(shù)賦值?
復(fù)制代碼 代碼如下:
private void SetParameter(string name, string value)
{
…
…
}
此方法的作用將是給報表參數(shù)設(shè)置值,這時大家可能會很高興,因為它提供了一個方法來支持,但當(dāng)我們看到private時,我們也許高興不起來了,微軟基本安全考慮,默認(rèn)狀態(tài)下并不把傳遞參數(shù)的方法暴露出來。但往往實現(xiàn)應(yīng)用與安全都是互斥的。
現(xiàn)在我們至少知道如何擴展該功能來達(dá)到我們的目的。
復(fù)制代碼 代碼如下:
public void SetQueryParameter(string Name, string value)
{
this.SetParameter(Name, value);
}
相關(guān)文章
SQL Server 2008 R2:error 26 開啟遠(yuǎn)程連接詳解
本篇文章小編為大家介紹,SQL Server 2008 R2:error 26 開啟遠(yuǎn)程連接詳解。需要的朋友參考下2013-04-04
.Net中的Http請求調(diào)用詳解(Post與Get)
在我們服務(wù)端調(diào)用第三方接口時,如:支付寶,微信支付,我們服務(wù)端需要模擬http請求,下面這篇文章主要給大家介紹了關(guān)于.Net中Http請求調(diào)用(Post與Get)的相關(guān)資料,需要的朋友可以參考下2022-09-09
C#反射技術(shù)的簡單操作(讀取和設(shè)置類的屬性)
反射的作用想必大家都知道了吧,少量屬性的自動化操作手動添加幾下當(dāng)然是沒有問題的,但是屬性數(shù)量較多的時候敲起這些繁鎖的代碼可以困了,再說對擴展和維護性造成很多的不遍,以下代碼中如不能直接使用請?zhí)砑觰sing System.Text;的引用。2011-01-01
ASP.NET Core使用AutoMapper實現(xiàn)實體映射
本文詳細(xì)講解了ASP.NET Core使用AutoMapper實現(xiàn)實體映射的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03
ASP.Net WebAPI與Ajax進(jìn)行跨域數(shù)據(jù)交互時Cookies數(shù)據(jù)的傳遞
本文主要介紹了ASP.Net WebAPI與Ajax進(jìn)行跨域數(shù)據(jù)交互時Cookies數(shù)據(jù)傳遞的相關(guān)知識。具有很好的參考價值。下面跟著小編一起來看下吧2017-05-05
基于Asp.Net MVC4 Bundle捆綁壓縮技術(shù)的介紹
本篇文章,小編將為大家介紹,Asp.Net MVC4 Bundle捆綁壓縮技術(shù),有需要的朋友可以參考一下2013-04-04
ASP.NET對HTML頁面元素進(jìn)行權(quán)限控制(三)
界面每個元素的權(quán)限也是需要控制的。比如一個查詢用戶的界面里面有查詢用戶按鈕,添加用戶按鈕,刪除用戶按鈕,不同的角色我們得分配不同的權(quán)限2013-12-12

