前言
隨著 .NET 平臺(tái)的出現(xiàn),報(bào)表相關(guān)的開(kāi)發(fā)控件隨著而來(lái),已經(jīng)有若干成熟的產(chǎn)品可供開(kāi)發(fā)人員使用,本文旨在通過(guò)從不同維度對(duì)比目前最流行的4款 .NET報(bào)表控件:水晶報(bào)表、FastReport、ActiveReports 和 Stimulsoft,給所有報(bào)表開(kāi)發(fā)人員在做產(chǎn)品選型時(shí)一份全方位的參考。
為什么需要報(bào)表控件
因?yàn)槲④浽谥袊?guó)幾十年的推廣,.NET作為很多開(kāi)發(fā)團(tuán)隊(duì)開(kāi)發(fā)商業(yè)項(xiàng)目時(shí)首選的開(kāi)發(fā)平臺(tái)。隨著對(duì) Visual Studio IDE的使用,很多開(kāi)發(fā)人員已經(jīng)習(xí)慣了在 VS中完成大量代碼的可視化設(shè)計(jì)、測(cè)試以及調(diào)試。
而數(shù)據(jù)報(bào)表,作為商業(yè)系統(tǒng)中必不可少的功能(或者成為模塊),隨著這些年大數(shù)據(jù)、BI、數(shù)據(jù)決策的流行,數(shù)據(jù)報(bào)表也逐漸成為商業(yè)系統(tǒng)中的核心功能(模塊)。
于是,報(bào)表控件的出現(xiàn)就是為了極大地簡(jiǎn)化開(kāi)發(fā)人員完成復(fù)雜數(shù)據(jù)報(bào)表的設(shè)計(jì)、調(diào)試、預(yù)覽、打印、導(dǎo)出等功能代碼開(kāi)發(fā),讓開(kāi)發(fā)人員能夠?qū)⒕蜁r(shí)間投入到數(shù)據(jù)整理、準(zhǔn)備以及UI方面。
從最早的微軟報(bào)表SSRS(SQL Server Reporting Services),水晶報(bào)表,到如今市場(chǎng)各式各樣的報(bào)表工具,如今各有千秋的報(bào)表控件,如何為自己的項(xiàng)目選擇最適合的控件成為每個(gè)開(kāi)發(fā)人員必須考慮的問(wèn)題。
常見(jiàn) .NET報(bào)表控件介紹
SQL Server Reporting Services(SSRS):它是來(lái)自微軟的產(chǎn)品。作為SQL Server上的加載項(xiàng)創(chuàng)建。此報(bào)表生成器在T-SQL開(kāi)發(fā)人員中非常流行,主要是因?yàn)樗贛S SQL Server數(shù)據(jù)庫(kù)中。
RDLC: 微軟自帶的 RDLC 報(bào)表,集成到 Visual Studio 當(dāng)中,是Visual Studio 自帶的報(bào)表工具,簡(jiǎn)單易用,也在很多系統(tǒng)開(kāi)發(fā)中得到了廣泛的應(yīng)用。
FastReport.NET:具有悠久歷史的俄羅斯開(kāi)發(fā)商的產(chǎn)品。FR.NET生成器與Microsoft Visual Studio一起工作,并基于.NET框架。當(dāng)您安裝該程序時(shí),其組件將被添加到VS調(diào)色板中。我們?cè)趹?yīng)用程序中使用FR,方法是將組件放置在表單上或通過(guò)在代碼中連接庫(kù)。就像SSRS一樣,它有一個(gè)單獨(dú)啟動(dòng)的報(bào)表設(shè)計(jì)器,但您可以使用ReportDesigner組件將設(shè)計(jì)器嵌入到應(yīng)用程序中。
ActiveReports: 已經(jīng)有20余年歷史的老牌報(bào)表控件,是 .NET 平臺(tái)的全方位的報(bào)表解決方案,其特點(diǎn)是無(wú)須編碼實(shí)現(xiàn)各類報(bào)表設(shè)計(jì)。特有的矩表控件,旨在解決中國(guó)式復(fù)雜報(bào)表,另在報(bào)表打印,呈現(xiàn)等方面行業(yè)領(lǐng)先。
Stimulsoft Report:Stimulsoft擁有大量的報(bào)表相關(guān)工具,比如報(bào)表生成器,報(bào)表設(shè)計(jì)器,Reports for.NET 、Web、MVC、WPF、Silverlight、Flex、PHP、Java、Mobile、WinRT等。
水晶報(bào)表:是由Crystal Services 公司開(kāi)發(fā)的,主要用于設(shè)計(jì)及產(chǎn)生報(bào)表。經(jīng)過(guò)多次收購(gòu),已經(jīng)被SAP 公司收購(gòu),從12版本發(fā)布到16版本,現(xiàn)在因?yàn)樗?bào)表為SAP 服務(wù),所以更加注重?cái)?shù)據(jù)分析,而不注重報(bào)表易于設(shè)計(jì)。
全面對(duì)比
本文將從以下幾個(gè)維度對(duì)比每款 .NET 報(bào)表控件
數(shù)據(jù)源連接(是否支持跨數(shù)據(jù)源)
與 Visual Studio 的集成度
報(bào)表設(shè)計(jì)過(guò)程(設(shè)計(jì)器)
中文支持程度
表格類報(bào)表開(kāi)發(fā)能力
圖表類報(bào)表開(kāi)發(fā)能力
瀏覽器的兼容性
授權(quán)及部署
數(shù)據(jù)源支持以及能否跨數(shù)據(jù)源鏈接
在實(shí)際的項(xiàng)目中,往往數(shù)據(jù)會(huì)存在各種不同的數(shù)據(jù)庫(kù)或文件系統(tǒng),甚至是在線的動(dòng)態(tài)數(shù)據(jù),是否能夠支持更多的數(shù)據(jù)源以及能否同時(shí)在一張報(bào)表中支持多數(shù)據(jù)源得數(shù)據(jù)同時(shí)顯示并關(guān)聯(lián),這將極大的簡(jiǎn)化開(kāi)發(fā)人員的工作。
水晶報(bào)表支持常用的數(shù)據(jù)庫(kù) Access, Excel,XML 文件,OLE DB驅(qū)動(dòng),ODBC 驅(qū)動(dòng),JDBC 驅(qū)動(dòng)的任意數(shù)據(jù)庫(kù),SalesForce數(shù)據(jù)等
FastReport支持常用的數(shù)據(jù)庫(kù):FastReport使用ADO.NET數(shù)據(jù)源,號(hào)稱支持連接到任何數(shù)據(jù)庫(kù),如Access、OLE DB驅(qū)動(dòng)、ODBC驅(qū)動(dòng)、SQL、和XML、CSV數(shù)據(jù),并可以對(duì)數(shù)據(jù)進(jìn)行分類排序、數(shù)據(jù)過(guò)濾。只支持?jǐn)?shù)據(jù)庫(kù)單連,不支持同一張報(bào)表中跨多個(gè)數(shù)據(jù)源。
StimulSoft Report 支持常用的數(shù)據(jù)庫(kù),Access、Oracle、MySQL、PostgreSQL、SQLite、XML 等,除此之外還支持如Firebird、IBM Db2、Sybase Adaptive Server Enterprise 等。不支持同一張報(bào)表中跨多個(gè)數(shù)據(jù)源。
ActiveReports 支持常用的數(shù)據(jù)庫(kù):Oracle、SQLServer、Access、XML、CSV、JSON、ODBC驅(qū)動(dòng)、即OLE DB 驅(qū)動(dòng)所支持的數(shù)據(jù)庫(kù) .除了常用的關(guān)系型數(shù)據(jù)庫(kù)外, ActiveReports 支持運(yùn)行時(shí)綁定數(shù)據(jù)源,如DataTable 數(shù)據(jù)源,Object 數(shù)據(jù)源,Json 數(shù)據(jù)源等。
ActiveReports 在連接常用數(shù)據(jù)庫(kù)SQL Server,Access,Oracle,Json 等提供的可視的鏈接窗口,用戶不需要記住每一種數(shù)據(jù)庫(kù)的連接字符串,的寫(xiě)法,只需要輸入對(duì)應(yīng)的用戶名和密碼,ActiveReports 會(huì)自動(dòng)生成連接字符串,所以對(duì)于用戶來(lái)說(shuō)如此可以節(jié)省很多時(shí)間,這點(diǎn)是所有.NET 報(bào)表控件中最易用的。并且,ActiveReports是唯一一個(gè)自同一張報(bào)表支持跨數(shù)據(jù)源的報(bào)表控件。
ActiveReports還有一個(gè)亮眼的地方就是【可視化數(shù)據(jù)查詢?cè)O(shè)計(jì)器】,對(duì)比了這幾個(gè)產(chǎn)品的類似設(shè)計(jì)器后,其他產(chǎn)品最多只能提供兩個(gè)表的關(guān)聯(lián),而 ActiveReports 對(duì)于表的數(shù)量沒(méi)有限制,而且只需要拖拽數(shù)據(jù)表到 UI 界面,做相關(guān)鍵的關(guān)聯(lián)就可自動(dòng)生成 SQL 語(yǔ)句。這也為不熟悉SQL 語(yǔ)法的開(kāi)發(fā)人員提供了方便。
與VS的集成度
基于 .NET 平臺(tái)開(kāi)發(fā),Visual Studio IDE 是開(kāi)發(fā)人員最熟悉的工具,如果能夠與 Visual Studio IDE 緊密集成,將極大的減少開(kāi)發(fā)時(shí)的窗口切換損耗,同時(shí)在 IDE 中以熟悉的操作方式能夠極大的提高效率。
水晶報(bào)表:支持 Visual Studio 2010及以上版本,支持開(kāi)發(fā)WPF、WinForms、ASP.NET 項(xiàng)目模板。
FastReport:支持Visual Studio 最新版,支持Visual Studio 2005及以上版本,支持開(kāi)發(fā)WPF、WinForms、ASP.NET、MVC 項(xiàng)目。
Stimulsoft Report:支持 Visual Studio 全平臺(tái),但是在安裝集成后,需要用戶手動(dòng)添加到工具箱。對(duì)于在MVC 中和 ASP.NET 中使用HTML5 很多功能不支持,如創(chuàng)建動(dòng)態(tài)報(bào)表,鉆取功能。所以如果考慮使用HTML5作為輸出的話,可能就需要考慮其他產(chǎn)品。
對(duì)于所有內(nèi)部的報(bào)表格式,并不是在各個(gè)平臺(tái)通用的,如內(nèi)部的MDZ、MDX、MRX 格式,只能在 WinForms、WPF、ASP.NET、MVC 使用。所以要想從一個(gè)平臺(tái)遷移到另一個(gè)平臺(tái),需要考慮創(chuàng)建通用的報(bào)表文件格式。
ActiveReports 支持 Visual Studio 2010 及以上版本,支持 Visual Studio 全平臺(tái)開(kāi)發(fā),HTML5、 WinForms、ASP.NET、ASP.NET MVC、WPF。
ActiveReports 支持 Visual Studio 2010 及以上版本,支持 Visual Studio 全平臺(tái)開(kāi)發(fā),HTML5、 WinForms、ASP.NET、ASP.NET MVC、WPF。
報(bào)表設(shè)計(jì)過(guò)程(設(shè)計(jì)器)
水晶報(bào)表:設(shè)計(jì)器風(fēng)格同 Word 編輯器的風(fēng)格,多了數(shù)據(jù)源管理等窗口。習(xí)慣使用Word編輯器的用戶,可以快速上手。水晶報(bào)表設(shè)計(jì)器只支持一種報(bào)表類型,按照區(qū)域劃分的報(bào)表類型,將報(bào)表分為不同的保鏢頭,頁(yè)眉詳細(xì)數(shù)據(jù)區(qū)域,報(bào)表尾,頁(yè)腳。
FastReport:報(bào)表設(shè)計(jì)器頂部有五個(gè)選項(xiàng)可以進(jìn)行切換的選擇需要的設(shè)置左邊是工具欄的選擇,通過(guò)雙擊進(jìn)行控件的選擇,F(xiàn)astReport只支持一種報(bào)表類型,按照區(qū)域劃分的報(bào)表類型簡(jiǎn)稱區(qū)域報(bào)表,將報(bào)表分為報(bào)表頭、頁(yè)眉、明細(xì)、頁(yè)腳。
StimulSoft Report:設(shè)計(jì)器風(fēng)格和體驗(yàn)也是與Office 保持一致,所以初次接觸 StimulSoft Report不會(huì)感覺(jué)很陌生。 但要是要開(kāi)始創(chuàng)建報(bào)表,可能得需要跟著文檔一步一步做。
StimulSoft Report不提供與Visual Studio的集成報(bào)表設(shè)計(jì)器,所以導(dǎo)致用戶無(wú)法在Visual Studio中進(jìn)行報(bào)表設(shè)計(jì)。
ActiveReports:報(bào)表設(shè)計(jì)器整體風(fēng)格與 Visual Studio 一致,顯得比較專業(yè),使用上會(huì)稍微有點(diǎn)難度,但還好 ActiveReports 提供設(shè)計(jì)器源碼,開(kāi)發(fā)人員可根據(jù)需求去自定制整個(gè)設(shè)計(jì)器。包含了報(bào)表設(shè)計(jì),報(bào)表預(yù)覽,報(bào)表導(dǎo)出功能。設(shè)計(jì)器面向用戶群為非技術(shù)人員,采用拖拽編輯即可實(shí)現(xiàn)全類型的報(bào)表設(shè)計(jì)。
ActiveReports支持四種報(bào)表類型,基于代碼的區(qū)域報(bào)表,基于模板的區(qū)域報(bào)表,頁(yè)面報(bào)表,RDL報(bào)表,用于滿足不同的報(bào)表設(shè)計(jì)需求。
ActiveReports提供集成VS的報(bào)表設(shè)計(jì)器和獨(dú)立的報(bào)表設(shè)計(jì)器,這樣用戶在打開(kāi) Visual Studio 中就不需要離開(kāi)Visual Studio 去設(shè)計(jì)報(bào)表。大大提升了開(kāi)發(fā)便利。
中文支持程度
報(bào)表控件發(fā)布后,最終用戶會(huì)看到多個(gè)和報(bào)表控件相關(guān)的多個(gè)UI組件,參數(shù)面板、打印預(yù)覽、工具條等,除了中文和英文,對(duì)其他語(yǔ)種的支持也是考量報(bào)表控件適用程度的一個(gè)點(diǎn)。
同時(shí),對(duì)于報(bào)表控件這樣入門(mén)比較困難的控件,是否能夠輕松的獲得中文資源、幫助、文檔、技術(shù)支持,也會(huì)決定此控件在項(xiàng)目究竟能否發(fā)揮其該有功能的重要前提。
中文UI 支持
水晶報(bào)表:支持簡(jiǎn)體中文,除中文之外還支持其他27種常用語(yǔ)言,這些語(yǔ)言資源文件已經(jīng)內(nèi)嵌在產(chǎn)品中;可直接使用。
FastReports:支持簡(jiǎn)體中文,除中文之外還支持其他27種常用語(yǔ)言,這些語(yǔ)言資源文件已經(jīng)內(nèi)嵌在產(chǎn)品中;可直接使用。
Stimulsoft:內(nèi)嵌了28種語(yǔ)言支持,設(shè)置本地化語(yǔ)言,非常簡(jiǎn)單,只需要通過(guò)切換語(yǔ)言,整個(gè)界面會(huì)立即切換成當(dāng)前語(yǔ)言版本,這個(gè)使用起來(lái)會(huì)特別方便,也不需要開(kāi)發(fā)人員去做特殊的本地化設(shè)置,再根據(jù)操作系統(tǒng)自動(dòng)切換。
ActiveReports 對(duì)于語(yǔ)言支持沒(méi)有限制,已內(nèi)置好的資源包包含英文,日文,簡(jiǎn)體中文,如果需要支持其他語(yǔ)言,ActiveReports提供了本地化資源包的要求,這樣不管最終用戶是什么語(yǔ)言,都可以定制出不同的 UI界面。
中文技術(shù)支持
水晶報(bào)表:現(xiàn)在屬于SAP 公司下的報(bào)表工具,在國(guó)內(nèi)沒(méi)有專門(mén)的技術(shù)服務(wù)團(tuán)隊(duì),相關(guān)資料以及服務(wù)支持是英文的。因此可能在尋找技術(shù)支持過(guò)程中會(huì)比較耗費(fèi)時(shí)間。而且無(wú)法通過(guò)直接的溝通來(lái)解決,如電話,會(huì)議,現(xiàn)場(chǎng)培訓(xùn)等。另外官方網(wǎng)站也是在國(guó)外,因?yàn)榫W(wǎng)絡(luò)問(wèn)題,可能會(huì)導(dǎo)致下載試用過(guò)程不順暢。水晶報(bào)表常見(jiàn)問(wèn)題手冊(cè)(英文)(https://blogs.sap.com/2016/02/11/crystal-reports-faq/?_ga=2.106191943.515772796.1527134830-1626841048.1517997028)
FastReport:在中國(guó)沒(méi)有專門(mén)的技術(shù)團(tuán)隊(duì)負(fù)責(zé)產(chǎn)品的售前、售后支持,沒(méi)有對(duì)應(yīng)豐富的中文資料例如:視頻、中文文檔,實(shí)例demo、論壇。產(chǎn)品提供商也不提供售后技術(shù)支持,在購(gòu)買前需要自己先完全評(píng)估好產(chǎn)品,開(kāi)發(fā)中遇到任何技術(shù)上的問(wèn)題都只能自己解決。
Stimulsoft:是俄羅斯報(bào)表控件廠商,暫時(shí)還沒(méi)有專門(mén)的國(guó)內(nèi)支持團(tuán)隊(duì),所有的網(wǎng)站資源均為英文,資源比較全面,如果語(yǔ)言沒(méi)有障礙的話,資料使用起來(lái)也是沒(méi)有任何問(wèn)題。與水晶報(bào)表存在一個(gè)同樣令人頭疼的問(wèn)題就是沒(méi)有國(guó)內(nèi)的支持團(tuán)隊(duì),有任何技術(shù)問(wèn)題要么自己查資料解決,要么得用英文去郵件或線上溝通。
Stimulsoft report 在線幫助文檔(https://www.stimulsoft.com/en/documentation)
常見(jiàn)問(wèn)題手冊(cè)(https://stimulsoft.zendesk.com/hc/en-us)
ActiveReports:在中國(guó)有專業(yè)的業(yè)務(wù)團(tuán)隊(duì),中文資料全面,如中文幫助手冊(cè),中文入門(mén)視頻,中文博客,中文社區(qū)支持,金牌服務(wù)電話,中文培訓(xùn)等。因此在幫助國(guó)內(nèi)的企業(yè)快速上手,快速解決使用上的困難,占有極大的優(yōu)勢(shì)。
中文技術(shù)支持論壇(http://gcdn.grapecity.com.cn/forum.php?mod=forumdisplay&fid=152)
常見(jiàn)問(wèn)題手冊(cè)(中文)(http://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=22704&extra=page=1)
學(xué)習(xí)視頻(http://gcdn.grapecity.com.cn/forum.php?mod=forumdisplay&fid=153)
Demo 代碼(http://gcdn.grapecity.com.cn/forum.php?mod=forumdisplay&fid=155)
表格類報(bào)表的支持程度
國(guó)內(nèi)的系統(tǒng)中,大量存在表格類(Excel類、文檔類)的數(shù)據(jù)報(bào)表開(kāi)發(fā),如統(tǒng)計(jì)匯總、檢測(cè)報(bào)告、表單等。
能否很好的支持此類報(bào)表的設(shè)計(jì)和開(kāi)發(fā),往往是能否采用此控件的決定性因素
水晶報(bào)表:提供交叉表控件,OLAP報(bào)表控件,可以創(chuàng)建于Excel 中類似的單維度和多維度數(shù)據(jù)透視表。但靈活性不強(qiáng),只能創(chuàng)建單表頭的數(shù)據(jù)透視表。無(wú)法修改或添加總計(jì),匯總公式,或是自定義單元格合并。更無(wú)法支持中國(guó)復(fù)雜報(bào)表的表角斜線及無(wú)規(guī)則的單元格合并。
FastReports:提供矩陣(Matrix)控件,用來(lái)進(jìn)行復(fù)雜報(bào)表的設(shè)計(jì),可以實(shí)現(xiàn)單維度和多維度的數(shù)據(jù)透視表,可以進(jìn)行自動(dòng)合計(jì)和警示功能,但是它設(shè)計(jì)起來(lái)比較復(fù)雜,靈活性差。并且不支持單元格的自動(dòng)合并,不能進(jìn)行復(fù)雜表頭的設(shè)計(jì)。
Stimulsoft:提供了表格控件和交叉表(Cross Tab)分別解決列表淚報(bào)表和數(shù)據(jù)透視表的需求。但是表格控件并不是嚴(yán)格意義的表格,沒(méi)有表頭表尾詳細(xì)數(shù)據(jù)的概念,是用單元格拼起來(lái)的,所以無(wú)法控制每一行的顯示。交叉表可以創(chuàng)建多維合計(jì)透視表,但是在合計(jì)表達(dá)式只能選擇默認(rèn)的Sum,而且無(wú)法創(chuàng)建復(fù)雜的表頭。
ActiveReports:提供表格控件、矩表控件專為創(chuàng)建Word 類報(bào)表及Excel類表格報(bào)表以及各式復(fù)雜中國(guó)式報(bào)表。
創(chuàng)建復(fù)雜報(bào)是ActiveReports 特長(zhǎng),使用已提供的表格和矩表,即可靈活的實(shí)現(xiàn)單元格合并,多為復(fù)雜表頭報(bào)表。
圖表類報(bào)表的支持程度
隨著業(yè)務(wù)系統(tǒng)中對(duì)圖表、Dashboard、大屏類應(yīng)用需求的不斷增強(qiáng),圖表的支持類型和外觀也是考量報(bào)表控件的重要方面
圖表類型(注: 紅色標(biāo)注是各品牌特有的)
水晶報(bào)表支持圖表類型包括:條形圖、柱形圖、折線圖、面積圖、餅圖、散點(diǎn)圖、氣泡圖、甘特圖、量表圖、漏斗圖、三維圖表、雷達(dá)圖。
FastReport支持圖表類型包括:條形圖、柱形圖、折線圖、面積圖、餅圖、散點(diǎn)圖、氣泡圖、甘特圖、量表圖、漏斗圖、三維圖表、雷達(dá)圖。
Stimulsoft 報(bào)表支持圖表類型:支持38 種類型,圖表UI 采用扁平化設(shè)置,而且也為設(shè)計(jì)人員提供了多套的UI 主題選擇,所以在美觀程度上做的是最好的。
ActiveReports 報(bào)表支持圖表類型:條形圖,柱形圖,折線圖,面積圖,餅圖,散點(diǎn)圖,氣泡圖,甘特圖,漏斗圖,三維圖表,金融圖,三維圖表,多Y軸圖表,復(fù)合圖表,四象限圖。
圖表設(shè)計(jì)步驟
水晶報(bào)表
水晶報(bào)表必須為圖表準(zhǔn)備數(shù)據(jù),數(shù)據(jù)準(zhǔn)備完成后,才可以使用圖表控件,對(duì)于運(yùn)行時(shí)報(bào)表數(shù)據(jù)源的報(bào)表,創(chuàng)建圖表就不會(huì)很方便。
FastReports
FastReports 在創(chuàng)建圖表時(shí),首先插入圖表,然后綁定對(duì)應(yīng)的數(shù)據(jù)源。
Stimulsoft Report
ActiveReports
ActiveReports 在創(chuàng)建圖表時(shí),只需要為報(bào)表提供可用的數(shù)據(jù)字段即可,因此在數(shù)據(jù)綁定中相對(duì)方便。
瀏覽器的兼容性
水晶報(bào)表:支持 IE 10 及以上,F(xiàn)irefox ESR 52.0 及以上,Edge14.14及以上,Chrome 瀏覽器,不支持IE 10以下的瀏覽器。
FastReport:報(bào)表支持當(dāng)前所有的瀏覽器 IE、谷歌、火狐、Safari 等
Stimulsoft:支持IE 、Firefox 、Chrome、Safari ,但要求在網(wǎng)頁(yè)端瀏覽報(bào)表需要安裝不同的插件,如Flash,ActiveX等。
ActiveReports: IE 9+、Firefox 20 +、Chrome 30 +、Safari 6.0+
部署后的修改
從事項(xiàng)目開(kāi)發(fā)的同學(xué),肯定對(duì)發(fā)布后的修改深惡痛絕,往往發(fā)布后的頻繁修改會(huì)造成項(xiàng)目遲遲無(wú)法交付、改的越多Bug越多的情況,對(duì)于報(bào)表模塊,類似發(fā)布后的修改更是家常便飯,如何在項(xiàng)目發(fā)布后快速的對(duì)應(yīng)需求變更并保證質(zhì)量,這是每個(gè)項(xiàng)目負(fù)責(zé)人必須要考慮的問(wèn)題
水晶報(bào)表:報(bào)表需求無(wú)論變化多么微小,都需要在修改后重新編譯部署整個(gè)項(xiàng)目,所以在后期維護(hù)成本是非常大的,并且沒(méi)有單獨(dú)的設(shè)計(jì)器提供給最終用戶新增報(bào)表。
FastReport:非開(kāi)發(fā)客戶無(wú)法自主進(jìn)行報(bào)表的設(shè)計(jì),當(dāng)報(bào)表程序發(fā)布后客戶如果想要進(jìn)行簡(jiǎn)單的修改都是需要返回重新設(shè)計(jì)及編譯。
Stimulsoft:是針對(duì)不同的平臺(tái),需要將設(shè)計(jì)好的報(bào)表文件根據(jù)要發(fā)布的平臺(tái)去編譯成對(duì)應(yīng)的文件,所以發(fā)布后,如果有需要更改報(bào)表的需求,整個(gè)項(xiàng)目也需要重新發(fā)布維護(hù),另外同一張報(bào)表文件,無(wú)法在不同平臺(tái)無(wú)障礙使用。
ActiveReports:報(bào)表設(shè)計(jì)文件作為獨(dú)立的XML格式的文件,同時(shí)也為開(kāi)發(fā)人員提供最終用戶設(shè)計(jì)器,可修改報(bào)表,修改完成后只需要替換舊文件,就可正常使用,不需要重新編譯發(fā)布。
全部打分
如何選型
無(wú)論是哪一個(gè)報(bào)表控件,都有其最適合的場(chǎng)景,只有明確了項(xiàng)目中的明確需求,才能使控件真正節(jié)約開(kāi)發(fā)成本,提高產(chǎn)品質(zhì)量。以下是在選型時(shí),需要考慮的幾個(gè)方面:
瀏覽器兼容性
瀏覽器的兼容性,水晶報(bào)表是基于IE瀏覽器內(nèi)核開(kāi)發(fā)的,所以對(duì)IE瀏覽器有很好的兼容性,但是對(duì)于其他的主流報(bào)表如:谷歌、火狐、游獵等瀏覽器的兼容性就不是很好,在網(wǎng)頁(yè)端展示的時(shí)候親和度比較低,但是ActiveReports,F(xiàn)astReport,Stimulsoft在瀏覽器支持方面特別是IE、谷歌、火狐、游獵瀏覽器具有很好的兼容性,在網(wǎng)頁(yè)端展示的有很好的親和度不會(huì)出現(xiàn)誤差。
瀏覽器兼容性
在網(wǎng)頁(yè)端的展示,水晶報(bào)表需要安裝一個(gè)ActiveX的插件,并且交互性差。Stimulsoft Reports需要在客戶端安裝Flash,ActiveX等插件才可以預(yù)覽。ActiveReports和FastReport 在網(wǎng)頁(yè)端不用安裝任何插件,支持 HTML5,HTML Viewer,F(xiàn)lash Viewer,Raw HTML,Acrobat Reade等
支持移動(dòng)端
如今越來(lái)越多的用戶傾向移動(dòng)辦公,因此對(duì)移動(dòng)端的需求也是大幅度增長(zhǎng),而水晶報(bào)表因?yàn)楝F(xiàn)在主要為SAP 輔助數(shù)據(jù)分析,所以對(duì)移動(dòng)端報(bào)表支持幾乎沒(méi)有,F(xiàn)astReport 支持移動(dòng)端報(bào)表展示。Stimulsoft基于HTML5技術(shù)實(shí)現(xiàn)移動(dòng)端,但HTML5Viewer 功能會(huì)有所限制,比原生的 .NET 功能少了很多。ActiveReports 提供了基于HTML5技術(shù)HTML5Viewer 實(shí)現(xiàn)響應(yīng)式報(bào)表功能,具有很好的交互性。
快速創(chuàng)建復(fù)雜報(bào)表
應(yīng)用于中國(guó)市場(chǎng)中,需要根據(jù)國(guó)內(nèi)的特征確適應(yīng)市場(chǎng)需求,而中國(guó)式的復(fù)雜報(bào)表就是考驗(yàn)報(bào)表工具,是否滿足市場(chǎng)的一大標(biāo)準(zhǔn),無(wú)論是復(fù)雜運(yùn)算的會(huì)計(jì)報(bào)表,還是復(fù)雜表頭的匯總統(tǒng)計(jì)報(bào)表,還是自由度極高的單元格合并報(bào)表,每一種典型的報(bào)表都是中國(guó)報(bào)表設(shè)計(jì)人員的痛點(diǎn),也是考驗(yàn)報(bào)表工具能否滿足需求的重要標(biāo)準(zhǔn)。Stimulsoft, FastReport,均提供了 交叉表控件,但這種控件只能支持創(chuàng)建多維透視表,無(wú)法去靈活的去自定義或修改。如果要實(shí)現(xiàn)復(fù)雜的報(bào)表展示,必須依賴 TextBox 去拼湊實(shí)現(xiàn)。ActiveReports提供了一種獨(dú)特的控件“矩表,只需要拖拽設(shè)計(jì)以及自動(dòng)合并,即可實(shí)現(xiàn)中國(guó)復(fù)雜報(bào)表。
多數(shù)據(jù)源支持
信息系統(tǒng)經(jīng)過(guò)多年積累或新系統(tǒng)的業(yè)務(wù)數(shù)據(jù)都是越來(lái)越龐雜的,為了安全可能同時(shí)存在于不同的數(shù)據(jù)庫(kù)中,因此報(bào)表工具一定要同時(shí)支持多種主流數(shù)據(jù)庫(kù),要兼容新型的數(shù)據(jù)庫(kù)源,而且要處理同時(shí)支持多數(shù)據(jù)源的應(yīng)用場(chǎng)景,而水晶報(bào)表目前無(wú)法做到多數(shù)據(jù)源支持,Stimulsoft, FastReport,均不支持同一報(bào)表中綁定多個(gè)數(shù)據(jù)源并展示。ActiveReports 支持在同一張報(bào)表中綁定多個(gè)數(shù)據(jù)源,并在同一數(shù)據(jù)控件中展示。
技術(shù)服務(wù)與支持
無(wú)論選擇哪種報(bào)表工具,開(kāi)發(fā)人員都需要快速上手和使用,而且會(huì)隨著系統(tǒng)的深入開(kāi)發(fā)會(huì)有新的需求產(chǎn)生,所以能夠隨時(shí)快速獲取技術(shù)支持,也是企業(yè)選擇的一大重要因素,否則在遇到問(wèn)題時(shí),開(kāi)發(fā)人員只能自己花費(fèi)大量的時(shí)間和精力去尋找解決方案。相反,如果有專業(yè)的技術(shù)團(tuán)隊(duì),可輕松有效的解決產(chǎn)品問(wèn)題。4個(gè)產(chǎn)品中,只有ActiveReports 在國(guó)內(nèi)有廠商級(jí)別的支持,F(xiàn)astReport和Stimulsoft在國(guó)內(nèi)有代理商,但無(wú)法提供技術(shù)支持。
維護(hù)升級(jí)成本低
選擇報(bào)表工具就是為了有效的減少開(kāi)發(fā)成本,所以需要選擇最合適的報(bào)表工具,而如果后期系統(tǒng)升級(jí)或遷移會(huì)帶來(lái)大量的工作量時(shí),則會(huì)帶來(lái)重構(gòu)的危險(xiǎn),如果報(bào)表工具能夠有很好的向上及向下的兼容性,則大大減少了系統(tǒng)升級(jí)和遷移的成本。ActiveReports和水晶報(bào)表的報(bào)表文件是一種文件格式,方便服用及升級(jí)。
總結(jié)
如題目所講,沒(méi)有最好的,只有最適合的,每個(gè)項(xiàng)目都具備不同的特點(diǎn),
財(cái)務(wù)系統(tǒng)中,對(duì)表格類的報(bào)表的要求很高,
管理決策系統(tǒng),偏重于圖表和大屏的展現(xiàn)
生產(chǎn)系統(tǒng),偏重?cái)?shù)據(jù)類型的支持
事業(yè)單位或政府們的內(nèi)部系統(tǒng),因存在低版本的IE瀏覽器,需要考慮瀏覽器支持的通用性
數(shù)據(jù)分析部門(mén),要考慮報(bào)表在最終用戶處的頻繁修改和定制
……
最后,希望報(bào)表開(kāi)發(fā)人員能夠通過(guò)此篇文章對(duì) .NET 報(bào)表控件的選型有所幫助。
榜單收錄、高管收錄、融資收錄、活動(dòng)收錄可發(fā)送郵件至news#citmt.cn(把#換成@)。
海報(bào)生成中...