iReport是用于定义JasperReport报表的可视化工具,JasperReport使用XML来定义一个报表的结构。
一、安装
下载地址:
http://www.jaspersoft.com/ir_opensource_download.html
下载iReport-3.0.0-windows-installer.exe,按提示执行默认安装。
二、基本设置
(1)语言
iReport提供所谓的中文版本,中英混排,而且没有使用专门的中文字号。要改成英语,点击菜单中的“Options”-“Settings...”,将“General”面板中的“Language”项设为“English”即可。
(2)编译路径
"Options" -> "Settings" -> "Compiler" -> "Default compilation directory" 下选择编译路径,生成的jasper文件将放在此目录。
(3)PDF报表的中文处理
需要将中文包iTextAsian.jar加入iReport安装路径的lib文件夹下。
在ireport中将中文的属性设置如下:字体:宋体,PDF name:STSong-Light,PDF Encoding:UniGB-UCS2-H (Chinese Simplified);或者"Format" -> "Styles" -> "New" -> "Text properties" -> "Font" -> "Add/modify report font" 定义一种样式,以后直接选择就可以了。
三、数据源设置
将数据库使用的jdbc驱动包复制到iReport安装路径的lib文件夹下。
(1)打开"Data" -> "Connections/DataSources",点击“new”,选择"Database JDBC connection"。
(2)点击“next”,配置数据源后测试并保存。
(3)设为Default或在报表设计时通过 "Data" -> "Set active connections"来设定当前数据源。
四、各band 的功能
- Title Band:title 段只在整个报表的第一页的最上面部分显示,除了第一页以外,不管报表中共有多少个页面也不会再出现Title band 中的内容。
- pageHeader Band:pageHeader 段中的内容将会在整个报表中的每一个页面中都
- 会出现,显示在位置在页面的上部,如果是报表的第一页,pageHeader 中的内容将显示在
- Title Band 下面,除了第一页以外的其他所有页面中pageHeader 中的内容将在显示在页面的最上端。
- pageFooter Band:显示在所在页面的最下端。
- Detail Band: 报表内容段,在这个Band 中设计报表中需要重复出现的内容,Detail 段中的内容每页都会出现。
- columnHeader Band:针对Detail Band 的表头段,一般情况下在这个段中画报表的表头。
- columnFooter Band:针对Detail Band 的表尾段。
- Summary Band:表格的合计段,出现在整个报表的最后一页中的Detail band 的后面,一般用来统计报表中某一个或某几个字段的合计值。
五、Expressions 表达式
1.表达式语法
(1)$F{FIELD} 引用名为FIELD的字段;
(2)$V{VAR} 引用名为VAR的变量;
(3)$P{PARAM} 引用名为PARAM的参数;
(4)$P!{PARAM} 引用名为PARAM的参数;这个特殊的语法仅能用于report的查询中。它允许插入参数的内容到查询字符串中。例如,它能被用于创建一个带通过参数来指定WHERE条件的动态查询。
$R{keyName} 在resource bundle中检索带keyName关键字的字符串。
2.表达式
(1)new Integer(Math.max($V{Price1},$V{Price2}))
(2)(new SimpleDateFormat("dd/MM/yyyy")).format($F{OrderDate})
(3)$F{SpecialOffer}.booleanValue()? $F{SpecialPrice} : $F{Price}
3.内建函数
msg("Total cost is {0}", $F{TOTAL})
msg("Matched {0} products out of {1}", $F{MATCHED}, $P{TOTAL})
六、定义与使用参数
参数用来在报表运行时动态传递某些数据,如SQL 查询中的条件,报表中需要动态显示的数据等,定义参数的方法为:选择“View”主菜单,选择“Report Parameters”项,打开当前报表中的参数列表窗口,点击“New”来新增参数,在新增参数对话框中输入参数的名称、数据类型、缺省值以及参数的描述信息等。
需要注意的是,根据不同的参数类型,在设置参数的缺省值时要使值能与参数类型匹配,即字符型的参数在设置缺省值时要用””把值括起来,如果是数据值型的则不能加””。
参数在iReport 设计器中的使用也很简单,参数数据的表达格式为$P{参数名称},同时注意参数名称是大小写敏感的。
七、定义与使用变量
对于一些可以由报表系统自己产生而不必需要从外界传入的数据,如报表的打印时间等,我们可以通过定义一个变量来解决这类小问题。
定义过程如下:选择“View”菜单,选择“Report Variables”项,点击“New”按钮, 在变量名称处输入您要定义的变量名称,如:PrintDate,选择变量类型,设置变量的初始值,设置合适的变量计算类型。
八、动态SQL 的示例
在大多数的情况下,报表中要打印的数据不是固定的内容,我们常常需要通过SQL 语句来指定特定的某些记录出现在报表中。
要使用动态的SQL,我们可以定义一个String 类型的参数,如“SQLSTR”。在SQL 查询器中使用$P!{SQLSTR}这个参数。
注意:这里使用的是$P!{SQLSTR},与所有其他例子不同的是,这里使用$P!而不是$P,在程序中应用时只需要像传递其他参数一样应用就可以了。
九、使某个字段中的数据在特定条件下才打印出来
通过设置字段的PrintWhenExpression,我们可以限定只有在某些特定的条件下字段值才会被打印出来,在PrintWhenExpression 中需要设置Boolean 型的表达式,如:new
java.lang.Boolean($F{type}.trim().equals("mod_cook"))
iReport制作图表:
http://ireport.cubebi.com/teach/14.php
附:Flash教程
1.Setup a new datasource:
http://ireport.sourceforge.net/swf/Datasource_viewlet_swf.htm
2.The report wizard:
http://ireport.sourceforge.net/swf/Report_Wizard_viewlet_swf.htm
3.iReport / Jasperreports files:
http://ireport.sourceforge.net/swf/Files_viewlet_swf.htm
4.Formatting fields:
http://ireport.sourceforge.net/swf/Formatting_viewlet_swf.htm
5.Groups:
http://ireport.sourceforge.net/swf/Groups_viewlet_swf.htm
6.Parameters:
http://ireport.sourceforge.net/swf/Parameters_viewlet_swf.htm
7.Subreports:
http://ireport.sourceforge.net/swf/Subreport_viewlet_swf.htm