报表设计基础及 JsperReort , JreeChr t 简明教程摘要本文先从通用的角度定义了与报表相关的各种概念。然后介绍了怎么应用 JsperReport 和 Ireport 设计报表,最后介绍了怎么使用 JreeChrt 生成图形报表。文章中出现的很多概念和定义都出自作者自己的思考, 没有通用性, 在阅读时请不必深究它的准确性。 1、什么是报表,什么是报表应用程序 什么是报表报表是数据统计结果的呈现。常见的报表格式有表格、数据立方体( 多维表)、曲线图、直方图、饼图等等,其中以表格最为常见。总结各种报表的共同特征,可以这样来定义报表的结构。一般来说, Report = Title + Pge(s) + Report ooter Pges(s) 表示一个报表可能有一页或多页 Pge = PgeHeder + Content + Pgeooter Content 则代表真正的数据,它一般由若干列和若干行组成。 Content = ColumnHeder + Row(s) + Columnooter 一个报表的结构可以表示为下图所示的树形: Report 这棵树中的所有叶结点,就构成了报表的实体。一个叶结点一般称作一个 Bnd , 从上到下排列,一个 Report 的组成如下图所示: Title ( 标题) Pge Heder ( 页头,可以提供一些说明性信息,比如页码) Column Heder ( 列头,一般填入列名) Row(s) ( 实际的数据) Column ooter ( 列脚,一般填入列的汇总信息,如和,平均值等等) Pge ooter ( 页脚,比如页码,或者该页上数据的汇总信息) Report ooter ( 报表脚,一般填入整个报表的汇总信息,或者一些说明性信息) 下图是一个报表的例子。它有 3 页。 Title Pge Report ooter Content Rows 1个或多个 Pge Heder Pge ooter 1个或多个 Column Heder Column ooter 计算机上的报表与报表应用程序可以利用计算机处理数据和界面设计的功能来生成、展示报表。计算机上的报表的主要特点是动态化。已经有各种各样的计算机报表设计工具,它们一般提供格式设计和数据填充等功能。广义地讲, EXCEL 、 WORD 、甚至写字板都可以算作报表设计工具,但是它们没有定义专门的报表结构, 也无法实现报表格式和报表数据的动态决定, 无法实现计算机报表的“动态化”特性,也就是说不能用它来开发“报表应用程序”,所以它们一般不能视为报表设计工具。而所谓报表应用程序, 指的是能够在运行时动态地决定报表格式和报表数据的应用程序, 它必须要实现数据格式和数据内容之间的分离, 也就是报表和数据源之间的分离。一个报表应用程序可以定义为: 报表应用程序= 报表+ 数据源+ 报表的具体应用。报表由报表设计工具来设计。报表设计工具定义报表格式, 以及报表内容与数据源之间的映射。具体地说就是定义报表的大小、形状和各个 Bnd 的内容。比如用设计报表的大小使它适于 4 纸型, 比如把报表脚的内容设为当前日期, 或者定义 Column Heder 设为与数据库中字段的名字,在 Columnooter Bnd 中计算合计等等。常用的报表工具有应用于微软平台下的 CrystlReport , 用于 Jv 平台下的 JReport , StyleReport , Jsper Repor t 等等。数据源代表报表所显示数据的来源。数据源并非某个具体的数据库或表。一般来说, 报表中的数据源可以理解为一个 ResultSet ,典型的情况下,它是执行某个 SQL 查询后得到的结果。 ResultSet 除了来自关系数据库, 也可以取自 XML 数据源, 或者自定义的任何一种数据源。因此, 需注意“ Dtsource ”在不同的上下文里有不同的指代, 有时它指 Query ,有时指 ResultSet ,有时指底层的数据库/ 数据源实体。报表的具体应用指的是: 从信息系统设计的角度来说, (1) 怎么样让用户在程序运行时自定义报表数据的内容(比如是得到今年的税务报表还是去年的) (2) 怎么样把报表提交给用户(是以 WEB 方式展现,还是让用户保存为 EXCEL 文件) (3) 采取什么样的系统架构(是桌面应用程序,还是 C/S 或者 B/S 应用程序) 这几个问题都要通过程序设计的途径来解决, 并且解决的方案要到报表设计工具的制约。比如说如果使用 Jsper Report 技术,由于 JsperReport 是单纯的报表设计工具,开发者必须手工编写访问报表的程序。而如果使用 JReport 技术,由于 JReport 的开发商提供了一个
2010南非世界杯德国 国家队全家福 精美大照片 来自淘豆网m.daumloan.com转载请标明出处.