關於JAVA項目報表選型過程

来源:https://www.cnblogs.com/supersnowyao/archive/2017/12/31/8159234.html
-Advertisement-
Play Games

本人一直在走.NET技術路線,考慮到後期公司搞JAVA項目,也算是進行技術災備,開始對JAVA技術進行關註。萬事開頭難,也是上來一頭包。沒辦法,頂著上吧。上面開始分給我任務了。就是對後期項目報表進行方案選型。哥們兒花了兩周的時間總算是提供了幾個方案,以供相關人員選擇。特將此次過程整理如下: 一、萬事 ...


       本人一直在走.NET技術路線,考慮到後期公司搞JAVA項目,也算是進行技術災備,開始對JAVA技術進行關註。萬事開頭難,也是上來一頭包。沒辦法,頂著上吧。上面開始分給我任務了。就是對後期項目報表進行方案選型。哥們兒花了兩周的時間總算是提供了幾個方案,以供相關人員選擇。特將此次過程整理如下:

 

一、萬事開頭難,百度幫上前。兩眼一摸黑,搜完才算完。

       JAVA只是瞭解過,真要從無到有,也是要慢慢做上一兩個項目的。既然如此,借上此機會,先橫刀立馬再說。百度一搜,果然在JAVA項目中可以用的報表琳琅滿目,看的我是眼花繚亂。 經過一番整理後,發現大家都是在用開源報表iReport,一陣竊喜。不管怎麼著,實現機制也相對容易。不過,美中不足的是,最後一版是2014年,在社區裡面還發現,此軟體已經不再後期維護,這不是要了親命嘛。不管怎麼說,先試試吧,搞出來一個樣子也好。經過一番學習,報表也設計出來了,集成到demo程式中也可以出來PDF報表。此時,又發現一個問題,中文不支持,坑是一個接一個啊。沒辦法,在網上一頓找,發現需要向font.jar中填加相應的字體,配置相關的參數。好吧,乖乖配置上後,報表終於出來了。還是挺有成就感的。

       此時,想到前面項目中報表的樣式,我想用此報表是否可以實現(在.NET項目中,報表使用的是RDLC)。好嘛,不試不知道,一試嚇一跳。不支持我需要的列跨行展示,這真是稍微提高點複雜度就直接掛了。讓我也是由衷的醉了。百度查一下大家怎麼處理的,最後的結果是大家都沒處理成這個問題。去國外的論壇網站上看看,也是同樣的結果。看來iReport雖然好用,考慮到功能不全,版本斷篇兒,也只能放棄了。鬱悶!

 

二、以為逢迴路轉,實際黑暗一片

       既然此路不通,只能轉別的方向了。iReport既然不支持了,我想是不是此項目已經轉到其他組織,或者進行了版本更新改了名字。後來在相關官網上發現有jasperReport,下載安裝後發現果然如此,從界面來看很像Eclipse的開發環境,使用友好性也提高了。不過經過實驗後,用到自己的項目上,集成思路完全可以按照iReport方式來集成。對於我所需要的複雜報表依舊無法實現。看了想用這款報表來做展示,簡單的數據展示沒有問題,但是複雜一些的還是不要考慮了。

       不過在網上查的資料,發現有的項目用的是BIRT,不過此報表我搞了半天也沒搭出環境來,不說設計器在哪兒,光需要引用的集成包那叫一個多啊,還需要配置各種配置文件。總之,在初次涉及報表功能時,最好不要採用此種方案,否則會倍受折磨。

 

三、開源雖然好,依舊收費強

       既然開源的已經無法滿足,只好轉向商用收費的報表工具了。通過網上的瞭解,帆軟報表(FineReport)、潤乾報表在市面上的評價還是不錯的。後來研究後,發現二者的區別不是很大,在用戶使用友好性、難易度方面。個人更偏向於帆軟。兩者均可以設計複雜的報表展示。最後用帆軟設計的demo報表集成到項目中。

       綜上所述,在此次報表選型過程中,根據能否滿足項目功能、成本、難易度幾個維度來考慮。個人認為,商用報表工具優先考慮,其次在可以折中的情況下,jasperReport也是不錯的選擇,最後我沒有搞定的就是BIRT,集成起來很麻煩,不知道在做報表設計的時候會是什麼感受。希望做過此部分的同行們可以給出建議,共同學習。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Python 目錄 Mode one :開發基礎 第一章 基礎語法 1.python的起源 1.1.python的應用 1.2.python版本的選擇 1.3.python安裝 1.4.hello world 2.開啟python之路 2.1.變數 2.2數據類型 2.3.while迴圈 2.4.c ...
  • 今天想到了一個問題的演算法,就自己去敲了代碼運行,這個問題是經典的斐波那契數列求值。用了for迴圈、遞歸、尾遞歸運行了出來,突然想到一個問題for迴圈的時間複雜度、遞歸的時間複雜度、尾遞歸的時間複雜度那個更小呢?也就是那個演算法更加節省時間效率更高呢? 於是我就把這三個做了比較,發現for迴圈的效率更高 ...
  • #配置模塊#創建import configparserconfig = configparser.ConfigParser()#添加config["DEFAULT"] = {'ServerAliveInterval':'45', 'Compression':'yes', 'CompressionLe ...
  • 如果一個程式只包含固定數量的且其生命期都是己知的對象. 那麼這是一個非常簡單的程式。 通常,程式總是根據運行時才知道的某些條件去創建新對象。在此之前,不會知道所需對象的數量,甚至不知道確切的類型。為解決這個普遍的編程問題,需要在任意時刻和任意位置創建任意數量的對象。所以,就不能依靠創建命名的引用來持 ...
  • 現在正式開始第一篇博客。 先看一個式子: x+y+z=5 2*x+3*y+z=11 x+4*y+z=11 如果問人怎麼解,人家肯定會告訴你,消元啦~ 實際上消元有兩種:加減消元和帶入消元 在電腦上編程實現的話,加減消元會簡單一些。 這樣就有了我們的高斯消元法。 高斯消元就是有多個加減消元構成的,能夠 ...
  • 1.Java I/O 概述 2.Java I/O File類 3.Java I/O 獲取文件目錄並寫入到文本 4.Java I/O 輸入與輸出 5.Java I/O 複製文本文件 6.Java I/O 添加屬性和有用的介面 7.Java I/O Reader & Writer(字元流) 8.Java ...
  • 位元組流、字元流涉及的類比較多,比較容易混淆。因此,有必要針對何時使用位元組流、何時使用字元流、何時使用Buffer類的流做一個歸納。要歸納它們,無需過多的語言,只需抓住它們的重點和特性即可。 在決定何時使用何種類時,以下幾個問題需要考慮清楚。 數據源:表示輸入,或稱為讀。可提供使用的兩個父類為Inpu ...
  • 一、原理 Spring MVC基於模型-視圖-控制器(Model-View-Controller,MVC)模式實現,它能夠幫你構建像Spring框架那樣靈活和松耦合的Web應用程式,將請求處理的邏輯和視圖中的渲染實現解耦。 1、DispatcherServlet是Spring MVC的核心 。Spr ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...