隨着 .NET 平臺的出現,報表相關的開發控件隨之出現,目前已經有若干成熟的產品可供開發人員使用,本文旨在經過從不一樣維度對比目前最流行的4款 .NET報表控件,給全部報表開發人員在作產品選型時一份全方位的參考。php
數據報表,做爲商業系統中必不可少的功能(或者成爲模塊),隨着這些年大數據、BI、數據決策的流行,數據報表也逐漸成爲商業系統中的核心功能(模塊)。html
因而,報表控件的出現就是爲了極大地簡化開發人員完成複雜數據報表的設計、調試、預覽、打印、導出等功能代碼開發,讓開發人員可以將精力和時間投入到數據整理、準備以及UI方面。sql
從最先的微軟報表SSRS(SQL Server Reporting Services),水晶報表,到現在市場各式各樣的報表工具,現在各有千秋的報表控件,如何爲本身的項目選擇最適合的控件成爲每一個開發人員必須考慮的問題。數據庫
SQL Server Reporting Services(SSRS):它是來自微軟的產品。做爲SQL Server上的加載項建立。此報表生成器在T-SQL開發人員中很是流行,主要是由於它包含在MS SQL Server數據庫中。瀏覽器
RDLC: 微軟自帶的 RDLC 報表,集成到 Visual Studio 當中,是Visual Studio 自帶的報表工具,簡單易用,也在不少系統開發中獲得了普遍的應用。安全
FastReport.NET:具備悠久歷史的俄羅斯開發商的產品。FR.NET生成器與Microsoft Visual Studio一塊兒工做,並基於.NET框架。當您安裝該程序時,其組件將被添加到VS調色板中。咱們在應用程序中使用FR,方法是將組件放置在表單上或經過在代碼中鏈接庫。就像SSRS同樣,它有一個單獨啓動的報表設計器,但您可使用ReportDesigner組件將設計器嵌入到應用程序中。網絡
ActiveReports: 已經有20餘年歷史的老牌報表控件,是 .NET 平臺的全方位的報表解決方案,其特色是無須編碼實現各種報表設計。特有的矩表控件,旨在解決中國式複雜報表,另在報表打印,呈現等方面行業領先。框架
Stimulsoft Report:Stimulsoft擁有大量的報表相關工具,好比報表生成器,報表設計器,Reports for.NET 、Web、MVC、WPF、Silverlight、Flex、PHP、Java、Mobile、WinRT等。編輯器
水晶報表:是由Crystal Services 公司開發的,主要用於設計及產生報表。通過屢次收購,已經被SAP 公司收購,從12版本發佈到16版本,如今由於水晶報表爲SAP 服務,因此更加註重數據分析,而不注重報表易於設計。工具
本文將從如下幾個維度對比每款 .NET 報表控件
· 數據源鏈接(是否支持跨數據源)
· 與 Visual Studio 的集成度
· 報表設計過程(設計器)
· 中文支持程度
· 表格類報表開發能力
· 圖表類報表開發能力
· 瀏覽器的兼容性
· 受權及部署
在實際的項目中,每每數據會存在各類不一樣的數據庫或文件系統,甚至是在線的動態數據,是否可以支持更多的數據源以及可否同時在一張報表中支持多數據源得數據同時顯示並關聯,這將極大的簡化開發人員的工做。
ActiveReports還有一個亮眼的地方就是【可視化數據查詢設計器】,對比了這幾個產品的相似設計器後,其餘產品最多隻能提供兩個表的關聯,而 ActiveReports 對於表的數量沒有限制,並且只須要拖拽數據表到 UI 界面,作相關鍵的關聯就可自動生成 SQL 語句。這也爲不熟悉SQL 語法的開發人員提供了方便。
基於 .NET 平臺開發,Visual Studio IDE 是開發人員最熟悉的工具,若是可以與 Visual Studio IDE 緊密集成,將極大的減小開發時的窗口切換損耗,同時在 IDE 中以熟悉的操做方式可以極大的提升效率。
報表控件發佈後,最終用戶會看到多個和報表控件相關的多個UI組件,參數面板、打印預覽、工具條等,除了中文和英文,對其餘語種的支持也是考量報表控件適用程度的一個點。
同時,對於報表控件這樣入門比較困難的控件,是否可以輕鬆的得到中文資源、幫助、文檔、技術支持,也會決定此控件在項目究竟可否發揮其該有功能的重要前提。
國內的系統中,大量存在表格類(Excel類、文檔類)的數據報表開發,如統計彙總、檢測報告、表單等。
可否很好的支持此類報表的設計和開發,每每是可否採用此控件的決定性因素
隨着業務系統中對圖表、Dashboard、大屏類應用需求的不斷加強,圖表的支持類型和外觀也是考量報表控件的重要方面
從事項目開發的同窗,確定對發佈後的修改深惡痛絕,每每發佈後的頻繁修改會形成項目遲遲沒法交付、改的越多Bug越多的狀況,對於報表模塊,相似發佈後的修改更是屢見不鮮,如何在項目發佈後快速的對應需求變動並保證質量,這是每一個項目負責人必需要考慮的問題
評分項目(5分爲最佳) |
水晶報表 |
FastReport |
Stimulsoft |
ActiveReports |
數據源支持以及可否跨數據源連接 |
4 |
4 |
5 |
4 |
與VS的集成度 |
3 |
3 |
3 |
5 |
報表設計過程(設計器) |
3 |
4 |
5 |
5 |
中文支持 |
2 |
3 |
4 |
5 |
表格類報表的支持程度 |
3 |
3 |
3 |
5 |
圖表類報表的支持程度 |
5 |
4 |
5 |
4 |
瀏覽器的兼容性 |
3 |
5 |
5 |
5 |
受權和部署 |
3 |
4 |
4 |
5 |
下載附件查看「四種.net 報表控件分析.xlsx」
不管是哪個報表控件,都有其最適合的場景,只有明確了項目中的明確需求,才能使控件真正節約開發成本,提升產品質量。如下是在選型時,須要考慮的幾個方面:
瀏覽器兼容性
瀏覽器的兼容性,水晶報表是基於IE瀏覽器內核開發的,因此對IE瀏覽器有很好的兼容性,可是對於其餘的主流報表如:谷歌、火狐、遊獵等瀏覽器的兼容性就不是很好,在網頁端展現的時候親和度比較低,可是ActiveReports,FastReport,Stimulsoft在瀏覽器支持方面特別是IE、谷歌、火狐、遊獵瀏覽器具備很好的兼容性,在網頁端展現的有很好的親和度不會出現偏差。
部署零負擔
在網頁端的展現,水晶報表須要安裝一個ActiveX的插件,而且交互性差。Stimulsoft Reports須要在客戶端安裝Flash,ActiveX等插件才能夠預覽。ActiveReports和FastReport 在網頁端不用安裝任何插件,支持 HTML5,HTML Viewer,Flash Viewer,Raw HTML,Acrobat Reade等
支持移動端
現在愈來愈多的用戶傾向移動辦公,所以對移動端的需求也是大幅度增加,而水晶報表由於如今主要爲SAP 輔助數據分析,因此對移動端報表支持幾乎沒有,FastReport 支持移動端報表展現。Stimulsoft基於HTML5技術實現移動端,但HTML5Viewer 功能會有所限制,比原生的 .NET 功能少了不少。ActiveReports 提供了基於HTML5技術HTML5Viewer 實現響應式報表功能,具備很好的交互性。
快速建立複雜報表
應用於中國市場中,須要根據國內的特徵確適應市場需求,而中國式的複雜報表就是考驗報表工具,是否知足市場的一大標準,不管是複雜運算的會計報表,仍是複雜表頭的彙總統計報表,仍是自由度極高的單元格合併報表,每一種典型的報表都是中國報表設計人員的痛點,也是考驗報表工具可否知足需求的重要標準。Stimulsoft, FastReport,均提供了 交叉表控件,但這種控件只能支持建立多維透視表,沒法去靈活的去自定義或修改。若是要實現複雜的報表展現,必須依賴 TextBox 去拼湊實現。ActiveReports提供了一種獨特的控件「矩表,只須要拖拽設計以及自動合併,便可實現中國複雜報表。
多數據源支持
信息系統通過多年積累或新系統的業務數據都是愈來愈龐雜的,爲了安全可能同時存在於不一樣的數據庫中,所以報表工具必定要同時支持多種主流數據庫,要兼容新型的數據庫源,並且要處理同時支持多數據源的應用場景,而水晶報表目前沒法作到多數據源支持,Stimulsoft, FastReport,均不支持同一報表中綁定多個數據源並展現。ActiveReports 支持在同一張報表中綁定多個數據源,並在同一數據控件中展現。
技術服務與支持
不管選擇哪一種報表工具,開發人員都須要快速上手和使用,並且會隨着系統的深刻開發會有新的需求產生,因此可以隨時快速獲取技術支持,也是企業選擇的一大重要因素,不然在遇到問題時,開發人員只能本身花費大量的時間和精力去尋找解決方案。相反,若是有專業的技術團隊,可輕鬆有效的解決產品問題。4個產品中,只有ActiveReports 在國內有廠商級別的支持,FastReport和Stimulsoft在國內有代理商,但沒法提供技術支持。
維護升級成本低
選擇報表工具就是爲了有效的減小開發成本,因此須要選擇最合適的報表工具,而若是後期系統升級或遷移會帶來大量的工做量時,則會帶來重構的危險,若是報表工具可以有很好的向上及向下的兼容性,則大大減小了系統升級和遷移的成本。ActiveReports和水晶報表的報表文件是一種文件格式,方便服用及升級。
如題目所講,沒有最好的,只有最適合的,每一個項目都具有不一樣的特色,
· 財務系統中,對錶格類的報表的要求很高,
· 管理決策系統,偏重於圖表和大屏的展示
· 生產系統,偏重數據類型的支持
· 事業單位或政府們的內部系統,因存在低版本的IE瀏覽器,須要考慮瀏覽器支持的通用性
· 數據分析部門,要考慮報表在最終用戶處的頻繁修改和定製
· ……
最後,但願報表開發人員可以經過此篇文章對 .NET 報表控件的選型有所幫助。