文档详情

jfreechart简明教程(补足六个汉字).doc

发布:2018-12-29约1.67万字共37页下载文档
文本预览下载声明
报表设计基础及JasperReort,JFreeChart简明教程 作者:chenjianjx@ 2005年3月27日 摘要 本文先从通用的角度定义了与报表相关的各种概念。然后介绍了怎么应用JasperReport和Ireport设计报表,最后介绍了怎么使用JfreeChart生成图形报表。文章中出现的很多概念和定义都出自作者自己的思考,没有通用性,在阅读时请不必深究它的准确性。 什么是报表,什么是报表应用程序 1.1 什么是报表 报表是数据统计结果的呈现。常见的报表格式有表格、数据立方体(多维表)、曲线图、直方图、饼图等等,其中以表格最为常见。 总结各种报表的共同特征,可以这样来定义报表的结构。一般来说, Report = Title + Page(s) + Report Footer Pages(s)表示一个报表可能有一页或多页 Page = PageHeader + Content + PageFooter Content则代表真正的数据,它一般由若干列和若干行组成。 Content = ColumnHeader + Row(s) + ColumnFooter 一个报表的结构可以表示为下图所示的树形: Report Report 1个或多个 1个或多个 Report FooterTitlePage Report Footer Title Page Page HeaderPage FooterContent Page Header Page Footer Content 1个或多个 1个或多个 Column HeaderColumn Footer Column Header Column Footer Rows 这棵树中的所有叶结点,就构成了报表的实体。一个叶结点一般称作一个Band, 从上到下排列,一个Report的组成如下图所示: Title (标题) Page Header (页头,可以提供一些说明性信息,比如页码) Column Header (列头,一般填入列名) Row(s) (实际的数据) Column Footer (列脚,一般填入列的汇总信息,如和,平均值等等) Page Footer (页脚,比如页码,或者该页上数据的汇总信息) Report Footer (报表脚,一般填入整个报表的汇总信息,或者一些说明性信息) 下图是一个报表的例子。它有3页。 1.2 计算机上的报表与报表应用程序 可以利用计算机处理数据和界面设计的功能来生成、展示报表。计算机上的报表的主要特点是动态化。 已经有各种各样的计算机报表设计工具,它们一般提供格式设计和数据填充等功能。广义地讲,EXCEL、WORD、甚至写字板都可以算作报表设计工具,但是它们没有定义专门的报表结构,也无法实现报表格式和报表数据的动态决定,无法实现计算机报表的“动态化”特性,也就是说不能用它来开发“报表应用程序”,所以它们一般不能视为报表设计工具。 而所谓报表应用程序,指的是能够在运行时动态地决定报表格式和报表数据的应用 程序,它必须要实现数据格式和数据内容之间的分离,也就是报表和数据源之间的分离。 一个报表应用程序可以定义为: 报表应用程序 = 报表 + 数据源 + 报表的具体应用。 报表由报表设计工具来设计。报表设计工具定义报表格式,以及报表内容与数据源之间的映射。具体地说就是定义报表的大小、形状和各个Band的内容。比如用设计报表的大小使它适于A4纸型,比如把报表脚的内容设为当前日期,或者定义Column Header 设为与数据库中字段的名字,在ColumnFooter Band中计算合计等等。常用的报表工具有应用于微软平台下的CrystalReport,用于Java平台下的JReport,StyleReport,Jasper Report等等。 数据源代表报表所显示数据的来源。数据源并非某个具体的数据库或表。一般来说,报表中的数据源可以理解为一个ResultSet,典型的情况下,它是执行某个SQL查询后得到的结果。ResultSet除了来自关系数据库,也可以取自XML数据源,或者自定义的任何一种数据源。因此,需注意“Datasource”在不同的上下文里有不同的指代,有时它指Query,有时指ResultSet,有时指底层的数据库/数据源实体。 报表的具体应用指的是: 从信息系统设计的角度来说, 怎么样让用户在程序运行时自定义报表数据的内容(比如是得到今年的税务报表还是去年的) 怎么样把报表提交给用户(是以WEB方式展现,还是让用户保存为EXCEL文件) 采取
显示全部
相似文档