- Jasperreports被垂直分为若干个部分:
- title band:只在整个报表的第一页最上面部分显示,除了第一页不管多少页面都不会再显示
- pageHeader band:整个报表中每一个页面都会出现,位置在页面的上部,第一页显示在title band下面
- pageFooter band:显示在所有页面的最下端
- detail band:报表内容段,这个band中设计报表中需要重复出现的内容,detail段的内容每页都会出现
- columnHeader band:针对detail band的表头段,一般情况下这个段中画报表的表头
- columnFooter band:针对detail band的表尾段
- summary band:表格的合计段,出现在整个报表的最后一页中的detail band的后面,一般用来统计报表
- jasperreport中最基本的对象主要有七个:
- Line
- Rectangle
- Ellipse
- Static text
- Text field
- Image
- Subreport
- Crosstab
- Chart
- 每一个元素都必须在一个band内部,有一些通用属性如高度宽度位置,修改外观用属性,添加用组件
- 一个style是一个预定义的属性的集合用来控制元素的外观(比如背景色,边框线,字体),fonts用来描述text的外观,其中定义一个字体:
- font name:字体名称
- font dimension:字体大小
- attribute:属性,如加粗, 斜体,下划线等等
- PDF Font Name:PDF字体名称
- PDF Embedded:是用外部的TTF类别的字体生成报表时是否把它包含在PDF文件里
- PDF Encoding:指定一个字体编码名称
使用扩展TTF,那么字体文件必须放在classpath下
- 右键style 添加style,使用sthle时拖动style到元素上即可
- jasperreport中有三种类型的对象可以用来保存数据,fields|parameters|variables,他们的类型是标准的java的object,需要使用必须先创建他们,在左边report inseptor中点击即可创建,点击也可更改属性:
- fields:
- 用来组织记录,必填两种,name和type,选填description, type可以时任何的java数据类型
- 可以使用sql query 创建,在preview右边的按钮可以编辑sql query用于创建,fields 的数据类型构建在原始sql类型之上 ,也可以使用javabean(POJO)生成fields
- parameters:
- 通常使用来打印的时候从程序里传值到报表里,也就是说parameters通常的是起参数传递的作用
- 可以设定default value在没有赋值时会使用default value的值,使用前必须先行创建
- 在查询之中亦可以使用parameters:
- select * from employee where dept_id = $p{deptId}
- 程序中插入的话需要把相关的值放入到一个java.util.Map的类中,然后换到report里,使用的是JasperFillManager中的fillReport接口
- 设定初始值,在需要的时候再向parameters传值,若没有初始化的值也没有对其赋值,其结果将为null
- 对于一个parameters 我们不仅可以传递一个string,integer,boolean,还可以传送一些较大较复杂的对象,如图像(java.awt.Image),或者为一个子报表提供datasource链接,类型必须与parameters类型保持一致,否则抛出ClassCastException
- 内嵌parameters类型:
- variables:
- 用来存储对某些字段计算后的结果
- 必要属性:
- variable name:名称,调用时使用$V{variable name}
- variable class type:类型,可以是任意java类型
- calctlation type:一个计算类型可以用来计算结果,预先定义值为nothing时,不作任何计算,jasperreports会根据指定类型和从数据源中获得的的每一条记录计算出结果然后更改variables的值,计算类型列举如下: