如果我们要了解 Java 报表的发展史,首先研究一下 Java 语言的发展历程。 1995 5 Sun Microsysems 公司推出 Java 程序设计语言和 Java 平台。这种简单的、跨平台的、面向对象的、分布式的、健壮的、安全的语言出现后,全世界的目光都被这个神奇的语言所吸引了。正式这种伟大的革命,基于 Java 语言的各种软件和工具如雨后春笋般出现。
 
在报表软件市场 JReport Style Report 即是其中两个佼佼者, 然而作为当时报表行业龙头的水晶报表并没有对应的 java 版本,一大批以前使用 Crystal Report 开始转向 JReport Style Report ,直到 2004 年报表市场一直是 Crystal Report JReport Style Repprt 三足鼎立的局面。这段时间里国产软件帆软和润乾在 2001 2002 开始开发报表产品,基本是 04 年后才开始有成型产品问世。
 
Style Report 为例,我们来回顾下 Java 报表发展历程,
  • 2001Style Report V4.0 发布定时计划、安全归档等技术,开始专注解决企业级报表问题
  • 2002 Style Report V 4.5 发布基于web界面的自定义报表技术,解决即席报表问题;
  • 2003 style Report V5.0 实现基于SOAP JSP的系统集成技术,完成企业环境下异构系统间的集成;
  • 2004 Style Report V6.0 发布基于OLAP ROLAP的数据分析技术,逐步向商业智能领域开始拓展。
  • 2005Style Report V7.0 基于行列对称扩展的复杂报表技术;同年,基于参数流的报表控制技术,将数据填报及工作流机制引入报表系统。
  • 2007 Stle Report V8.0实时数据分析(数据混搭)专利技术
  • 2009 Style Report V10.0发布多维图表、矢量地图等等数据可视化元素,分布式处理架构实现实时计算和展现的行业难题。
  • 2012年,Style Report V11 移动应用、海量数据报表展现技术
 
  JReport 的发展历程也同样是从报表打印数据、 web 报表应用、 OLAP 、复杂报表到移动应用, Java 报表的功能进化史伴随着客户需求的演进而演进,伴随着技术的革新而进步。国内的 Java 报表需求有很强烈的中国特色风格 --- 复杂式报表,包含复杂表头、行列对称扩展等等特殊需求也催生了润乾报表的发展和强大。
 
以上的几个代表厂商都是采用纯 Java 语言编写的 Java 报表,除此之外,市场之中还存在另外一种声音: “支持 Java 的报表工具”。因为 Java 报表的跨平台性诸多非 Java 报表厂商逐渐推出支持 Java 的报表工具,可以在 Java 程序中调用,这样的产品就比较多了,总的来说包括一类是采用独立报表服务器的 Brio Cognos 、和勤,甚至包括大名鼎鼎的 Crystal Report ,以及另一类在前端有控件的,如数巨报表等。
 
通行的 Java 报表软件能够在 J2EE 环境下提供很好的集成性,而且运行环境比较简单,只有配备 JDK 即可运行,另外具有高集成性,能够轻松部署在各种操作系统中。它们都包含以下几个功能块:
  • 数据连接、模型生成:灵活开放的ODBC技术确保报表展现以及设计端能够与多种数据源的实现安全性高速度极快的读取及连通性。另外,数据模型的生成和灵活搭建却因不同的开发商不同给出的解决方案不同,例如Style Report有独立的数据建模器,润乾报表有自己专利的非线性数据模型。
  • 报表服务器:一般情况下,报表服务器是个逻辑概念,并没有一个物理的服务器在运行。它是作为应用服务器上的一个应用提交的,或者直接面向应用程序员提交的JAR包。
  • 报表设计器:报表开发人员以及设计人员面对的直接操作平台,主要分为流式报表布局以及类Excel的表格式布局方式。不同的Java报表软件采用不同的设计模式,例如style Report采用流式报表布局,润乾主要采用的表格式布局方式,各有优劣,暂且不表。
  • Web报表端:HTML语言的流行,加之Java本身的交互性特性促成了web报表应用成为必然趋势。
  • OLAP多维数据分析:随着数据分析的需求逐渐增加,报表的需求不仅仅是静态的展现,当然这只是java报表的发展趋势,不并不是所有的java报表都能做到,即使产品在宣传中生成实现,而实际应用起来相当粗浅。
  • 报表输出、打印:java报表数据需要各类表格样式(交叉表、嵌套表、列表);支持各种图表(如柱图、饼图等等);各种导出格式(包括excelcsvpdfxml等)
  • 二次开发、集成:提供开放的API借口,根据客户的个性化需求进行个性化定制和开发、并且支持各种功能块扩展。
 
此外,随着终端用户对报表交互的需求,即席报表成为作为 Java 报表软件里不可或缺的一部分应用。当然对于大型的企业级用户,报表安全、监控、计划任务、集群等等企业级应用的特殊需求也让 Java 报表的功能逐渐完善。
 
随着 HTML5 的盛行和应用,报表的移动应用也逐渐成为必需;随着企业级数据的海量式增长速度,对大数据量处理和展现的需要也同样成为 Java 报表共同面临的难题。任何一类产品的进步都伴随着技术的革新以及客户逐渐理性的需求而成长, Java 报表必将如此。