紫罗兰

--爱的天空

常用链接

统计

最新评论

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 阅读(1071) | 评论 (1)编辑 收藏

仅列出标题