紫罗兰

--爱的天空

常用链接

统计

最新评论

2007年2月6日 #

iReport-1.2.8使用的帮助文档(第一部分)

iReport 帮助文档

第一部分 功能介绍:

1.      报表结构

  一个报表的结构大致是几个部分:

title 、 pageHeader 、 columnHeader 、 detial 、 columnFooter 、 pageFooter 、 summary 、 groupHeader 、 groupfooter 。

 

· Title :

每个报表一般会有一个名字,比如×××销售报表, title 就是搁置这个名称的最好地方了,当然你也可以根据需要搁置在合适的地方。

· pageHeader :

报表的一些公共要素,比如页码、创建时间、创建人等信息放置在这里是比较好的选择。

· columnHeader :

无可非议的这里是放置列的名称,记住不是列数据。

· Detial :

放置需要循环的数据,比如销售记录数据。

· columnFooter :

放置列级别的统计计算值或是列的说明。

· pageFooter :

放置页级别的统计值或是页的说明。

· Summary :

可能需要对几页(你的报表可能有几个页组成)的统计值。比如 50 个销售记录共占用了 3 页,那么放置这些统计记录的统计值最好的地方就是 summary 。

· groupHeader :

每个表的内容可能需要根据某个属性进行划分显示内容和计算内容,比如希望以月份为单位每组分开显示销售记录,那么就可以定义一个组(组的定义参考后文), groupHeader 就是放置组说明或是组标志最好的地方。

· Groupfooter :放置组的统计或是说明

 

2.      iReport 的输出格式

iReport 的预览输出格式可以支持以下几种:

 

PDF 、 HTML 、 CSV 、 JAVA2D 、 Excel 、纯文字、 JRViewer ,其中最常用的是 PDF 、 JRViewer 。 JRViewer 是直接以 C/S 方式作为报表的输出格式,在 JFrame 框架下输出。 Jasperreport 提供默认的 JRViewer 输出类。

 

3.      报表的动态对象变量、参数、字段

报表上主要的元素为静态文本 (static text) 、变量 (variable) 、动态域 (Field) 、参数 (Parameter) 。静态文本就是显示在报表上不变的文字。变量是指通过系统自带的计算得到的一些值(如当前页、总记录数等)。动态域可以是连接数据库时所的的字段,也可以是通过自定义数据源 ( 可能是包含一组数据的实体类 ) 。参数是程序运行时传到报表内部的变量,通常通过 Map 形式传入,可作为显示变量或者用于 sql 语句中变化的条件。 这些有关的内容,我们要介绍这些对象的使用和意义:

·字段( Fields ):是数据库抽取出来的,希望在报表中出现的数据库内容。比如一个 ID 的所有值。 $F{ filedsName } 表示字段,是报表中最重要的部分。如果 JDBC 方式的连接,输入 sql 查询语句就可得到所有查询所得到的字段;如果是 Custom Datasource 方式,新建一字段,例如 user_id 。数据类中 getFieldValue(JRField field) , field 就是报表中的 $F{Field_name} 。程序中根据 JRField 对象的 name 属性来确定返回哪个值

 

 

·参数( Parameters ):这是你的应用需要提供给报表的入口,比如你希望在报表被解释的时候提供 Where 语句的条件值,那么就可以使用参数( Parameters )。 $P{ parameterName }

代表参数, {} 内是参数的名称,在报表中设定后,在运行的时候通过从外部传入的参数来动态生成标题等数据,并且可以作为查询条件传入 sql 语句使用 ( 如果是使用 JDBC 直接连接数据库的话 )

 

·变量( Variables ):这是报表中一些逻辑运算的表现,比如统计值。 $V{ variablesName }

 

每种对象的定义格式如每个对象的后面说明,比如定义一个变量( Variables ),那么表达式就写成 $V{ variablesName } ,报表中出现的就是这个变量的名称。后文会详细的介绍使用方法。

$V{PAGE_NUMBER} 代表当前页数, $V 代表 variable ,对现有的 group , $V{groupname_COUNT} 代表当前组的记录数

// 代表返回当前行的第四个字段

if("user_id".equals(field.getName()))return data[index][3] ;

 

4.      编译、静态运行、动态运行

Jasperreport 运行时需要的就是一个 jasper 后缀的文件,编译过程其实就是把 jrxml 后缀的文件生成 jasper 后缀的文件。(可以参考 Jasperreport 的运行原理)

 

静态运行和动态运行是相对的,后者带数据源运行,比如带数据库运行。前者就是静态文本运行,和数据源无关,如果报表中出现和数据源有关的对象,则以 null 显示。

5.        几种 Datasource 的方法

a)      JDBC 连接数据库。新建一个连接,选择类型为 Database JDBC connection ,给这个连接一个名字,填写 driver ,数据库连接的 url ,数据库用户名密码等信息后,测试通过即可建立连接。

 

b)      Customer JRDatasource 取得数据。首先写一个包含数据的类,它实现了 JRDatasource 接口,实现 next() 和 getFieldValue(JRFeild field) 两个方法。 Next 方法用于取得下一条记录, getFieldValue 方法则根据 jasper 文件中定义的 field 的名称来取得对应列的数据。另外,为了在 ireport 中能预览效果,我们还需要构造取得该数据源类的方法,通常命名为 XXXDatasourceFactory 类,它提供了 getTheDatasource 类取得数据源类这个对象。在连接时,填上工厂类和取得数据源类的对应方法后即可得到数据。

 

然后在菜单上的 build->set active connection 选择连接,在 datasource->report query 里输入 sql 语句或 javabean 方式得到数据域。得到的数据域按名存放在 Fields 里,可拖拽到页面报表上。

 

posted @ 2007-02-06 18:06 violet 阅读(1104) | 评论 (1) | 编辑 收藏

仅列出标题