2009-01-26 75 views
6

我想向.NET應用程序添加報告功能。我的數據源只是應用程序的數據模型,即可能從任何東西(不一定是從數據庫中)生成或加載的一堆對象。Microsoft.Reporting。* vs XML/XSLT

最初的計劃是從這些對象生成報告數據XML文件,然後使用XSLT將其轉換爲XHTML報告文件。該報告可以通過瀏覽器控件顯示在應用程序中。

但是,我注意到存在Microsoft.Reporting。*命名空間,從我嘗試過的,似乎在那裏的類和控件也可以照顧我的報告。用它代替它會是一個好主意嗎?與XML/XSLT方法相比,它會節省工作嗎?我可能會遇到哪些微軟報表框架的限制(如果有的話)?

回答

7

有幾件事要考慮。

1)Reporting Services是Sql Server的一部分,所以如果你走這條路線,你可能會有額外的許可證問題。

2)Reporting Services可以提供網頁,或者在WinForms中使用全分頁,排序,子報表,總計等等 - 這在XSL中確實很難。它也可以很好地與打印機配合使用。

3)報告服務配備所見即所得編輯器來構建報告。這不是完美的任何手段,但比手工製作更容易。

4)使用XSL創建XHTML可以實現真正的性能。 XSL適用於整個XML Dom,如果您正在處理多頁報告,這可能是一個大文檔。我希望Reporting Services能夠更快地工作。

5)Reporting Services可以利用整個.Net,因此您可以免費獲得許多其他功能。

除非您的報告要求非常簡單,否則使用Reporting Services將爲您節省時間。儘管如此,它的樂趣不大。

+0

我已經生成你的對象的XML,然後從該XML創建本地的ReportViewer報告以及

建設報告一個小測試應用程序,它從一個對象列表中生成一個報告,並且只需要首先安裝ReportViewer.exe可再發行組件。報告服務似乎並沒有綁定到Sql Server。 – 2009-01-26 13:36:36

4

同意大部分MrTelly的意見有以下例外和補充:

  • 除非你是啞巴有關XSLT和您的報告數據是巨大的(100 + MB - 裸記住我談論提供報告的數據而不是源數據),性能不太可能成爲一個重大問題。我們已經構建了一個XML/XSLT報告系統,它可以將.NET數據集轉換爲報表並將其轉換爲報表,並且使用正確書寫的XSLT,性能大部分是亞秒級(對於大型數據集,它可以更長,但對於Web應用程序來說沒有什麼可怕的) 。

  • 帶有XML/XSLT解決方案的報表佈局基本上是無限的,使用Reporting Services,您僅限於RDL(Microsoft的報表定義語言)中的構造。如果您需要比標準報告結構更復雜的報告,Reporting Services將會令人沮喪。

相關問題