本人一直在走.NET技术路线,考虑到后期公司搞JAVA项目,也算是进行技术灾备,开始对JAVA技术进行关注。万事开头难,也是上来一头包。没办法,顶着上吧。上面开始分给我任务了。就是对后期项目报表进行方案选型。哥们儿花了两周的时间总算是提供了几个方案,以供相关人员选择。特将此次过程整理如下:

一、万事开头难,百度帮上前。两眼一摸黑,搜完才算完。

JAVA只是了解过,真要从无到有,也是要慢慢做上一两个项目的。既然如此,借上此机会,先横刀立马再说。百度一搜,果然在JAVA项目中可以用的报表琳琅满目,看的我是眼花缭乱。 经过一番整理后,发现大家都是在用开源报表iReport,一阵窃喜。不管怎么着,实现机制也相对容易。不过,美中不足的是,最后一版是2014年,在社区里面还发现,此软件已经不再后期维护,这不是要了亲命嘛。不管怎么说,先试试吧,搞出来一个样子也好。经过一番学习,报表也设计出来了,集成到demo程序中也可以出来PDF报表。此时,又发现一个问题,中文不支持,坑是一个接一个啊。没办法,在网上一顿找,发现需要向font.jar中填加相应的字体,配置相关的参数。好吧,乖乖配置上后,报表终于出来了。还是挺有成就感的。

此时,想到前面项目中报表的样式,我想用此报表是否可以实现(在.NET项目中,报表使用的是RDLC)。好嘛,不试不知道,一试吓一跳。不支持我需要的列跨行展示,这真是稍微提高点复杂度就直接挂了。让我也是由衷的醉了。百度查一下大家怎么处理的,最后的结果是大家都没处理成这个问题。去国外的论坛网站上看看,也是同样的结果。看来iReport虽然好用,考虑到功能不全,版本断篇儿,也只能放弃了。郁闷!

二、以为逢回路转,实际黑暗一片

既然此路不通,只能转别的方向了。iReport既然不支持了,我想是不是此项目已经转到其他组织,或者进行了版本更新改了名字。后来在相关官网上发现有jasperReport,下载安装后发现果然如此,从界面来看很像Eclipse的开发环境,使用友好性也提高了。不过经过实验后,用到自己的项目上,集成思路完全可以按照iReport方式来集成。对于我所需要的复杂报表依旧无法实现。看了想用这款报表来做展示,简单的数据展示没有问题,但是复杂一些的还是不要考虑了。

不过在网上查的资料,发现有的项目用的是BIRT,不过此报表我搞了半天也没搭出环境来,不说设计器在哪儿,光需要引用的集成包那叫一个多啊,还需要配置各种配置文件。总之,在初次涉及报表功能时,最好不要采用此种方案,否则会倍受折磨。

三、开源虽然好,依旧收费强

既然开源的已经无法满足,只好转向商用收费的报表工具了。通过网上的了解,帆软报表(FineReport)、润乾报表在市面上的评价还是不错的。后来研究后,发现二者的区别不是很大,在用户使用友好性、难易度方面。个人更偏向于帆软。两者均可以设计复杂的报表展示。最后用帆软设计的demo报表集成到项目中。

综上所述,在此次报表选型过程中,根据能否满足项目功能、成本、难易度几个维度来考虑。个人认为,商用报表工具优先考虑,其次在可以折中的情况下,jasperReport也是不错的选择,最后我没有搞定的就是BIRT,集成起来很麻烦,不知道在做报表设计的时候会是什么感受。希望做过此部分的同行们可以给出建议,共同学习。

关于JAVA项目报表选型过程的更多相关文章

  1. idea创建普通java项目以及maven创建项目过程(转)

    1. idea创建一个普通项目流程 http://blog.csdn.net/testcs_dn/article/details/52303941 2. idea创建maven项目流程 http:// ...

  2. 手动编译并运行Java项目的过程

    现在Java开发基本上就是IDE调试,如果跨平台打个jar包过去运行一般就可以了,但是有些情况比如需要引入外部依赖的时候,这个时候是不能直接运行的,还需要引入一些外部的参数,并不是简单的javac和j ...

  3. 将 java 项目打包成可运行的 jar 包(main 函数带参数),并上传到 linux 服务器上运行

    一.概述 java项目有两种架构,一种是 B/S 架构的,一种是 C/S 架构的. 对于 B/S 架构来说,我们常见的 java ee 即是 B/S 架构,通常,开发人员会在本地进行开发,然后将项目打 ...

  4. Java开发环境的搭建以及使用eclipse从头一步步创建java项目

    一.java 开发环境的搭建 这里主要说的是在windows 环境下怎么配置环境. 1.首先安装JDK java的sdk简称JDK ,去其官方网站下载最近的JDK即可..http://www.orac ...

  5. Java项目往数据库中插入数据,出现中文乱码

    项目环境: JSP+Servlet+Mysql数据库 需要检查的地方: 1. java项目整体的编码格式为utf-8.并且将数据传递给数据库之前,数据是否依旧是正常的(可以通过打断点的方式一步步跟踪查 ...

  6. 使用maven来管理您的java项目

    maven是一个项目管理工具,使用maven可以自动管理java项目的整个生命周期,包括编译.构建.测试.发布和报告等.在大型项目开发中,使用maven来管理是必不可少的. 一.安装maven 1.W ...

  7. (一)JAVA项目(非web项目)部署到windows服务器运行

    [转]http://blog.csdn.net/tracy19880727/article/details/11205063 一般服务器运行的几乎都是web项目,今天遇到一个问题,把写好的Java项目 ...

  8. java项目——数据结构实验报告

    java项目——数据结构总结报告 20135315  宋宸宁 实验要求 1.用java语言实现数据结构中的线性表.哈希表.树.图.队列.堆栈.排序查找算法的类. 2.设计集合框架,使用泛型实现各类. ...

  9. 把我的Java项目部署到Linux系统

    以前,还未毕业,凭借自己三脚猫的功夫,只会在Windows环境中使用tomcat容器把项目跑起来. 以前的操作是,利用Eclipse把项目导出成War包,放到tomcat的webApp文件夹中,鼠标点 ...

随机推荐

  1. [Objective-C语言教程]类型定义:typedef(19)

    Objective-C编程语言提供了一个名称为typedef的关键字,可以使用此关键字为类型指定新名称. 以下是为单字节数字定义术语BYTE的示例 - typedef unsigned char BY ...

  2. Linux运维: Rsync同步数据(ubuntu16.04+windows10)

    rsync同步数据 -环境:Linux (ubuntu16.04) + windows10 Linux: 安装 sudo apt-get install rsync rsync --version 查 ...

  3. Eclipse中的创建maven项目,无法添加src/main/java等source folder

    maven无法添加src/main/java 通过Eclipse创建Java Web项目,目录结构如下: 默认是只有src/main/resources 这个source folder 按照maven ...

  4. webpack打包报错Chunk.entrypoints: Use Chunks.groupsIterable and filter by instanceof Entrypoint instead

    npm install –save-dev extract-text-webpack-plugin@next 会下载到+ extract-text-webpack-plugin@4.0.0-beta. ...

  5. 04-树6 Complete Binary Search Tree (30 分)

    A Binary Search Tree (BST) is recursively defined as a binary tree which has the following propertie ...

  6. maven 根据profile,resources,filters来区分部署环境

    项目过程中,在不同的阶段,分别需要部署开发环境,测试环境,线上环境.如果都用一套配置文件,很容易弄乱,所以维持多套配置文件很有必要. maven提供了一组属性以供开发人员灵活搭配,可以根据环境来打包, ...

  7. (转载)Java中对List集合内的元素进行顺序、倒序、随机排序的示例代码

    1 import java.util.Collections; 2 import java.util.LinkedList; 3 import java.util.List; 4 5 public c ...

  8. Ubuntu16.04 下如何安装搜狗拼音输入法【亲测有效】

    Ubuntu16.04 下如何安装搜狗拼音输入法[亲测有效]   一.添加fcitx键盘输入法系统[系统默认是iBus] 1.将下载源添加至系统源: sudo add-apt-repository p ...

  9. 【CSS3】background-origin和background-clip的区别

    background-clip 与 background-origin是css3中引入的两个跟元素背景相关的属性,它们有相同的可选值,即border.padding.content三种,而且这两个属性 ...

  10. 透析ARP原理

    对于ARP协议, 我本来是不了解的,只是解决了两个ARP相关的P2的Bug后,也就懂了.本文将从原理的角度对ARP做一个透析. 1. 什么是ARP? ARP(Address Resolution Pr ...