本文先从通用的角度定义了与报表相关的各种概念。然后介绍了怎么应用JasperReport和Ireport设计报表,最后介绍了怎么使用JfreeChart生成图形报表。文章中出现的很多概念和定义都出自作者自己的思考,没有通用性,在阅读时请不必深究它的准确性。
1、 什么是报表,什么是报表应用程序
1.1 什么是报表
报表是数据统计结果的呈现。常见的报表格式有表格、数据立方体(多维表)、曲线图、直方图、饼图等等,其中以表格最为常见。
总结各种报表的共同特征,可以这样来定义报表的结构。一般来说,
Report = Title + Page(s) + Report Footer
Pages(s)表示一个报表可能有一页或多页
Page = PageHeader + Content + PageFooter
Content则代表真正的数据,它一般由若干列和若干行组成。
Content = ColumnHeader + Row(s) + ColumnFooter
一个报表的结构可以表示为下图所示的树形:
这棵树中的所有叶结点,就构成了报表的实体。一个叶结点一般称作一个Band, 从上到下排列,一个Report的组成如下图所示:
下图是一个报表的例子。它有3页。
1.2 计算机上的报表与报表应用程序
可以利用计算机处理数据和界面设计的功能来生成、展示报表。计算机上的报表的主要特点是动态化。
已经有各种各样的计算机报表设计工具,它们一般提供格式设计和数据填充等功能。广义地讲,EXCEL、WORD、甚至写字板都可以算作报表设计工具,但是它们没有定义专门的报表结构,也无法实现报表格式和报表数据的动态决定,无法实现计算机报表的“动态化”特性,也就是说不能用它来开发“报表应用程序”,所以它们一般不能视为报表设计工具。
而所谓报表应用程序,指的是能够在运行时动态地决定报表格式和报表数据的应用
程序,它必须要实现数据格式和数据内容之间的分离,也就是报表和数据源之间的分离。
一个报表应用程序可以定义为:
报表应用程序 = 报表 + 数据源 + 报表的具体应用。
报表由报表设计工具来设计。报表设计工具定义报表格式,以及报表内容与数据源之间的映射。具体地说就是定义报表的大小、形状和各个Band的内容。比如用设计报表的大小使它适于A4纸型,比如把报表脚的内容设为当前日期,或者定义Column Header 设为与数据库中字段的名字,在ColumnFooter Band中计算合计等等。常用的报表工具有应用于微软平台下的CrystalReport,用于Java平台下的JReport,StyleReport,Jasper Report等等。
数据源代表报表所显示数据的来源。数据源并非某个具体的数据库或表。一般来说,报表中的数据源可以理解为一个ResultSet,典型的情况下,它是执行某个SQL查询后得到的结果。ResultSet除了来自关系数据库,也可以取自XML数据源,或者自定义的任何一种数据源。因此,需注意“Datasource”在不同的上下文里有不同的指代,有时它指Query,有时指ResultSet,有时指底层的数据库/数据源实体。
报表的具体应用指的是:
从信息系统设计的角度来说,
(1) 怎么样让用户在程序运行时自定义报表数据的内容(比如是得到今年的税务报表还是去年的)
(2) 怎么样把报表提交给用户(是以WEB方式展现,还是让用户保存为EXCEL文件)
(3) 采取什么样的系统架构(是桌面应用程序,还是C/S或者B/S应用程序)
这几个问题都要通过程序设计的途径来解决,并且解决的方案要到报表设计工具的制约。比如说如果使用Jasper Report技术,由于JasperReport是单纯的报表设计工具,开发者必须手工编写访问报表的程序。而如果使用JReport技术,由于JReport的开发商提供了一个作为独立WEB服务器的JREntSrver,这个服务器可以部署报表并自动生成访问报的表的页面,这时就可以减少很多代码编写的工作量。
为帮助理解,下图给出了一个非常简单的基于WEB的报表应用程序。它用于按书类汇总书籍信息。
作者对报表和报表应用程序的定义或许并不严谨,但亦不失为一种有意义的框架。脑中有了这个架构,可以为与报表相关的开发提供引导作用。下面就以一种具体的报表设计技术------JasperReport为例,介绍这个框架的具体实现。
1、 JasperReport及其他
基于JAVA平台的报表设计工具有很多,有的为商业软件,有的则是开源软件。在所有的开源软件中,JasperReport的应用最广泛。本章先介绍JasperReport的基本要领,并给出学习JasperReport的辅助材料,然后介绍用于辅助JasperReport开发的GUI工具Ireport。最后通过一个的实例来介绍怎么用JasperReport+Ireport+JSP开发完整的WEB报表应用程序。
2.1 报表设计工具概述
正如前一章所说,除了界面设计,报表设计工具的另一个功能就是告诉应用程序怎么样填充Title、Page Header等Band。对Rows Band,报表设计工具通过定义报表数据与数据源(ResultSet)之间的对应关系来确定怎么样填充Rows Band。对其他的几个Band,如果Band的内容是不变的(static),则可用设计工具直接写出这些内容。然而在多数情形下,其他Band和Rows Band一样,内容是动态变化的(即运行时才确定的)。举例来说,一个报表会在某个Footer Band显示汇总信息(如“合计”),它的值在设计阶段确定;一个报表可能要求在表尾显示报表生成的日期,它的值也是动态的。
概括起来,一个报表设计工具的功能有以下几点:
1、 报表的外观、布局设计
2、 设置报表数据与数据源数据之间的对应关系,并要求按用户输入的不同参数得到不同的ResultSet。
3、 提供一种灵活性,以使开发者能动态确定各个Band的内容。
下面就以JasperReport为例,看看一个报表设计工具是怎样实现上述几种功能的。
【下载地址】
百度网盘链接:https://pan.baidu.com/s/1l3_fQYt2ny_0hTRZRTFB_w
提取码:af5n
相关文章
使用-JFreeChart来创建基于web的图表
XStream使用文档
WebService发布过程及常见问题
webpack实战入门进阶调优分享
weblogic调优参数及监控指标
weblogic节点管理
weblogic管理控制台概述
weblogic-部署和启动
WebLogic-Server-性能及调优-调优-Java-虚拟机
Java 虚拟机(Java virtual machine,简称 JVM)是一种虚拟“执行引擎”实例,可在微处理器上执行 Java 类文件中的字节码。调整 JVM 的方式会影响 Weblogic Server 和应用程序的性能。
Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。
Velocity 用户手册是帮助页面设计者和内容提供者认识 Velocity 和其简单而功能强大的脚本语言――Velocity 模板语言(VTL)。在手册上的许多例子,都是用 Velocity 插入动态的内容到网页上,但是所有的 VLT 例子都能应用到其他的页面和模板中。
FlashFXP绿色版网盘下载,附激活教程 1774
FlashFxp百度网盘下载链接:https://pan.baidu.com/s/1MBQ5gkZY1TCFY8A7fnZCfQ。FlashFxp是功能强大的FTP工具
Adobe Fireworks CS6 Ansifa绿色精简版网盘下载 1559
firework可以制作精美或是可以闪瞎眼的gif,这在广告领域是需要常用的,还有firework制作下logo,一些原创的图片还是很便捷的,而且fireworks用法简单,配合dw在做网站这一块往往会发挥出很强大的效果。百度网盘下载链接:https://pan.baidu.com/s/1fzIZszfy8VX6VzQBM_bdZQ
navicat for mysql中文绿色版网盘下载 1620
Navicat for Mysql是用于Mysql数据库管理的一款图形化管理软件,非常的便捷和好用,可以方便的增删改查数据库、数据表、字段、支持mysql命令,视图等等。百度网盘下载链接:https://pan.baidu.com/s/1T_tlgxzdQLtDr9TzptoWQw 提取码:y2yq
火车头采集器(旗舰版)绿色版网盘下载 1703
火车头采集器是站长常用的工具,相比于八爪鱼,简洁好用,易于配置。火车头能够轻松的抓取网页内容,并通过自带的工具对内容进行处理。站长圈想要做网站,火车头采集器是必不可少的。百度网盘链接:https://pan.baidu.com/s/1u8wUqS901HgOmucMBBOvEA
Photoshop(CS-2015-2023)绿色中文版软件下载 1819
安装文件清单(共46G)包含Window和Mac OS各个版本的安装包,从cs到cc,从绿色版到破解版,从安装文件激活工具,应有尽有,一次性打包。 Photoshop CC绿色精简版 Photoshop CS6 Mac版 Photoshop CC 2015 32位 Photoshop CC 2015 64位 Photoshop CC 2015 MAC版 Photoshop CC 2017 64位 Adobe Photoshop CC 2018 Adobe_Photoshop_CC_2018 Photoshop CC 2018 Win32 Photoshop CC 2018 Win64