关于JAVA项目报表选型过程
本人一直在走.NET技术路线,考虑到后期公司搞JAVA项目,也算是进行技术灾备,开始对JAVA技术进行关注。万事开头难,也是上来一头包。没办法,顶着上吧。上面开始分给我任务了。就是对后期项目报表进行方案选型。哥们儿花了两周的时间总算是提供了几个方案,以供相关人员选择。特将此次过程整理如下:
一、万事开头难,百度帮上前。两眼一摸黑,搜完才算完。
JAVA只是了解过,真要从无到有,也是要慢慢做上一两个项目的。既然如此,借上此机会,先横刀立马再说。百度一搜,果然在JAVA项目中可以用的报表琳琅满目,看的我是眼花缭乱。 经过一番整理后,发现大家都是在用开源报表iReport,一阵窃喜。不管怎么着,实现机制也相对容易。不过,美中不足的是,最后一版是2014年,在社区里面还发现,此软件已经不再后期维护,这不是要了亲命嘛。不管怎么说,先试试吧,搞出来一个样子也好。经过一番学习,报表也设计出来了,集成到demo程序中也可以出来PDF报表。此时,又发现一个问题,中文不支持,坑是一个接一个啊。没办法,在网上一顿找,发现需要向font.jar中填加相应的字体,配置相关的参数。好吧,乖乖配置上后,报表终于出来了。还是挺有成就感的。
此时,想到前面项目中报表的样式,我想用此报表是否可以实现(在.NET项目中,报表使用的是RDLC)。好嘛,不试不知道,一试吓一跳。不支持我需要的列跨行展示,这真是稍微提高点复杂度就直接挂了。让我也是由衷的醉了。百度查一下大家怎么处理的,最后的结果是大家都没处理成这个问题。去国外的论坛网站上看看,也是同样的结果。看来iReport虽然好用,考虑到功能不全,版本断篇儿,也只能放弃了。郁闷!
二、以为逢回路转,实际黑暗一片
既然此路不通,只能转别的方向了。iReport既然不支持了,我想是不是此项目已经转到其他组织,或者进行了版本更新改了名字。后来在相关官网上发现有jasperReport,下载安装后发现果然如此,从界面来看很像Eclipse的开发环境,使用友好性也提高了。不过经过实验后,用到自己的项目上,集成思路完全可以按照iReport方式来集成。对于我所需要的复杂报表依旧无法实现。看了想用这款报表来做展示,简单的数据展示没有问题,但是复杂一些的还是不要考虑了。
不过在网上查的资料,发现有的项目用的是BIRT,不过此报表我搞了半天也没搭出环境来,不说设计器在哪儿,光需要引用的集成包那叫一个多啊,还需要配置各种配置文件。总之,在初次涉及报表功能时,最好不要采用此种方案,否则会倍受折磨。
三、开源虽然好,依旧收费强
既然开源的已经无法满足,只好转向商用收费的报表工具了。通过网上的了解,帆软报表(FineReport)、润乾报表在市面上的评价还是不错的。后来研究后,发现二者的区别不是很大,在用户使用友好性、难易度方面。个人更偏向于帆软。两者均可以设计复杂的报表展示。最后用帆软设计的demo报表集成到项目中。
综上所述,在此次报表选型过程中,根据能否满足项目功能、成本、难易度几个维度来考虑。个人认为,商用报表工具优先考虑,其次在可以折中的情况下,jasperReport也是不错的选择,最后我没有搞定的就是BIRT,集成起来很麻烦,不知道在做报表设计的时候会是什么感受。希望做过此部分的同行们可以给出建议,共同学习。
关于JAVA项目报表选型过程的更多相关文章
- idea创建普通java项目以及maven创建项目过程(转)
1. idea创建一个普通项目流程 http://blog.csdn.net/testcs_dn/article/details/52303941 2. idea创建maven项目流程 http:// ...
- 手动编译并运行Java项目的过程
现在Java开发基本上就是IDE调试,如果跨平台打个jar包过去运行一般就可以了,但是有些情况比如需要引入外部依赖的时候,这个时候是不能直接运行的,还需要引入一些外部的参数,并不是简单的javac和j ...
- 将 java 项目打包成可运行的 jar 包(main 函数带参数),并上传到 linux 服务器上运行
一.概述 java项目有两种架构,一种是 B/S 架构的,一种是 C/S 架构的. 对于 B/S 架构来说,我们常见的 java ee 即是 B/S 架构,通常,开发人员会在本地进行开发,然后将项目打 ...
- Java开发环境的搭建以及使用eclipse从头一步步创建java项目
一.java 开发环境的搭建 这里主要说的是在windows 环境下怎么配置环境. 1.首先安装JDK java的sdk简称JDK ,去其官方网站下载最近的JDK即可..http://www.orac ...
- Java项目往数据库中插入数据,出现中文乱码
项目环境: JSP+Servlet+Mysql数据库 需要检查的地方: 1. java项目整体的编码格式为utf-8.并且将数据传递给数据库之前,数据是否依旧是正常的(可以通过打断点的方式一步步跟踪查 ...
- 使用maven来管理您的java项目
maven是一个项目管理工具,使用maven可以自动管理java项目的整个生命周期,包括编译.构建.测试.发布和报告等.在大型项目开发中,使用maven来管理是必不可少的. 一.安装maven 1.W ...
- (一)JAVA项目(非web项目)部署到windows服务器运行
[转]http://blog.csdn.net/tracy19880727/article/details/11205063 一般服务器运行的几乎都是web项目,今天遇到一个问题,把写好的Java项目 ...
- java项目——数据结构实验报告
java项目——数据结构总结报告 20135315 宋宸宁 实验要求 1.用java语言实现数据结构中的线性表.哈希表.树.图.队列.堆栈.排序查找算法的类. 2.设计集合框架,使用泛型实现各类. ...
- 把我的Java项目部署到Linux系统
以前,还未毕业,凭借自己三脚猫的功夫,只会在Windows环境中使用tomcat容器把项目跑起来. 以前的操作是,利用Eclipse把项目导出成War包,放到tomcat的webApp文件夹中,鼠标点 ...
随机推荐
- 谷歌将对欧洲 Android 设备制造商收取其应用服务费用
简评:欧盟就谷歌违反了<反垄断法>开出天价罚单,导致谷歌运营生态被打破,为了配合这一裁决,谷歌将调整其运营模式.欧盟似乎赢了,而这最后买单的却是消费者. 今年七月份,谷歌要求 Androi ...
- 确定 RN 中方法的 queue
 如果不指定,每一个模块,都会生成自己的一个串行队列. 可以通过强行声明一个队列来指定所有方法都在这个队列执行 - (dispatch_queue_t)methodQueue { return di ...
- java集合中的HashMap源码分析
1.hashMap中的成员分析 transient Node<K,V>[] table; //为hash桶的数量 /** * The number of key-value mapping ...
- 架构师养成记--33.Redis哨兵、redis简单事务
Redis哨兵 有了主从复制,如果我想想对主从服务器进行监控,在redis2.6后提供了哨兵机制,2.6有哨兵1.0版本,并不稳定.2.8以后的哨兵功能才稳定起来. 顾名思义,哨兵就是监控Redis系 ...
- c#-MVC基础操作-数据的展示及增删改、登录页面及状态保持
一.数据展示 1.View代码: <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynam ...
- Eclipse安装genymotion最新的方法
https://www.cnblogs.com/WXBai/p/5938884.html 安卓开发: http://tools.android-studio.org/index.php/sdkhttp ...
- Django-工程搭建
-----环境安装 1.创建虚拟环境 mkvirtualenv django_py3_1.11 -p python3 2.安装django pip install django==1.11.11 ...
- 一些很好用但不常用的css属性总结 (持续中......)
在各种框架横行的9012,感觉我们学前端的都变得浮躁了很多,放一张最近流行的神图: 唉,扯远了, 还是整理我的东西吧,路漫漫其修远兮,吾将上下而求索! 1, position:sticky; 粘性定位 ...
- hdu-1277--字典树坑题
hdu-1227 字典树,坑题!!当字典树练手 Problem Description 我们大家经常用google检索信息,但是检索信息的程序是很困难编写的:现在请你编写一个简单的全文检索程序. 问题 ...
- Flask 数据库迁移
在开发过程中,需要修改数据库模型,而且还要在修改之后更新数据库.最直接的方式就是删除旧表,但这样会丢失数据. 更好的解决办法是使用数据库迁移框架,它可以追踪数据库模式的变化,然后把变动应用到数据库中. ...