本人一直在走.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. VS中工程的“依赖”,“库目录”,“包含目录”

    写多了Vs中的工程,就会遇到很多环境配置问题,例如“依赖项”,“库目录”,“包含目录”等等等等. 今天要记录的就是这些的基本含义:我们拿一个例子来看,更加清晰易懂一些: 例如在Opencv3.0+VS ...

  2. 总结day23 ---- 网络编程,以及计算机基础概念

    计算机网络的发展及基础网络概念 问题:网络到底是什么?计算机之间是如何通信的? 早期 : 联机 以太网 : 局域网与交换机 广播 主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无 ...

  3. P1642 规划

    题目链接 题意分析 一看就知道是一道\(01\)分数规划的题 我们二分值之后 跑树形背包就可以了 CODE: #include<iostream> #include<cstdio&g ...

  4. AssertJ断言系列<一>

    1 - Get AssertJ Core assertions Maven的pom.xml加入如下配置: <dependency> <groupId>org.assertj&l ...

  5. QuantLib 金融计算——数学工具之求解器

    目录 QuantLib 金融计算--数学工具之求解器 概述 调用方式 非 Newton 算法(不需要导数) Newton 算法(需要导数) 如果未做特别说明,文中的程序都是 Python3 代码. Q ...

  6. createQuery与createSQLQuery区别

    该篇文章也贴上来: hibernate 中createQuery与createSQLQuery两者区别是:前者用的hql语句进行查询,后者可以用sql语句查询前者以hibernate生成的Bean为对 ...

  7. Java8内存结构—永久代(PermGen)和元空间(Metaspace)

    本文转载 作者:liuxiaopeng 博客地址:https://www.cnblogs.com/paddix/p/5309550.html 一.JVM 内存结构 根据 JVM 规范,JVM 内存共分 ...

  8. [BZOJ 2894]世界线

    传送门 \(\color{green}{solution}\) 在开这道题之前建议先看看3756:pty的字符串,然后你会发现这题就很zz了. 当然,作为一名合格的博主,我还是应该写点什么的 首先,我 ...

  9. bzoj4998: 星球联盟(link-cut-tree)

    题面 bzoj 题解 bzoj2959: 长跑的弱化版 产生了环就并查集维护一下 Code #include<bits/stdc++.h> #define LL long long #de ...

  10. Visual Studio 跨平台開發實戰(4) - Xamarin Android 基本控制項介紹 (转帖)

    前言 不同於iOS, Xamarin 在Visual Studio中針對Android, 可以直接設計使用者介面. 在本篇教學文章中, 筆者會針對Android的專案目錄結構以及基本控制項進行介紹, ...