如何使用报表工具JasperReports+iReport?
报表工具之JasperReports+iReport(2)
三、iReport介绍 1)iReport是为JasperReports设计的强大的,直观的,易于使用的可视化报表设计器,为win32平台编写。允许用户可视化地编辑XML JasperDesign文件,可以和其它数据库进行JDBC通信。 再设计模板时可以以HTML,PDF,XML方式预览,用它生成的文件有.jrxml和.jasper两种文件。 .jrxml:是可视化编辑的xml文件; .jasper:经编译后生成的类文件,即报表模板文件。 2)iReport的输出格式 其预览输出格式有:PDF,HTML,CSV。JAVA2D,EXCEL,纯文本,JRView。 注意:JRViewer是直接以C/S方式作为报表的输出格式,在JFrame框架下输出。 3)报表的动态对象变量、参数、字段 字段Fields:是从数据库抽取出来的,在报表中出现的数据库内容。$F 参数Parameters:你写的应用需要提供给报表的入口。 $P 变量Variables:报表中一些逻辑运算的表现。 $V 每个对象的定义格式如下: $V{variablesName} 4)运行时需要.jasper文件;编译:把.jrxml->.jasper文件。 静态运行:静态文本来运行,和数据源无关; 动态运行:带数据源运行。 5)报表的结构 title、pageHeader、columnHeader、detail、columnFooter、pageFooter、summary、groupHeader、groupfooter。 6)在iReport中创建数据库连接 (1)菜单DourceSource -> Connections/DataSources -> ...new -> (2)菜单Build -> Set active connection -> 选择 -> ... -> OK 7)在iReport中创建文件 iReport工具是一个可视编辑器帮助创建JasperReports文件。JasperReports是一个基于Java报表的引擎。 当你在iReport中创建一个报表,你实际上是对配置文件进行操作,告诉JasperReports应该怎样建立Report。 三种文件: .jasper文件:编译的二进制文件; .jrxml文件:报表的配置文件; .pdf文件:生成的pdf文件。 8)报表格式化 在iReport上选择报表的一个区域,将呈现蓝色高亮显示; 可用鼠标拖曳来改变区域的尺寸,当误操作时,用undo来恢复; 如选择框变红,则有错误,report将不能编译; 改变字体或调整尺寸,菜单“View”->“Element properties”->分三个选择: (1)Common选择:尺寸,前景色/背景色,透明度,打印条件,位置属性等; (2)Font选择:字体、大孝类型,PDF字体,加粗,斜体,下划线,水平位置,垂直位置,PDF编码。 注意:两种字体: Font Name:将显示在iReport设计器和JasperReports运行中; PDF font Name:将显示在编译后的PDF文件中。 (3)Static Text:静态文本。 想浏览元素时,看“View”->“Elements browser”; 一次选择多个域,按“shift”键再用鼠标点击; 菜单“View”->“Report Properties”报表属性: 报表尺寸,单位,页边距,报表名,纵向Portrait/横向Landscape,列宽,Spacing,标题作为新页,Summary作为新页,XML编码(UTF-8)。 9)使用Groups 菜单“View”->“Report query” 可以查询和修改SQL语句。 10)为report增加参数 (1)菜单“View”->“Report Query”,修改SQL语句,如:加上 WHERE LAST_NAME=$P{LAST_NAME} 注意:参数用$P{}来封装。 (2)定义参数 菜单“View”->“Reports Parameters” 新建参数,如参数名为“LAST_NAME”,再指定参数的类型(如:String) 还可设定“缺省值”和参数的“描述” 运行报表(缺省),还可以传递参数方式:http://server/showReport?LAST_NAME=smith 菜单“Build”->“Execute report(using active conn.)” 11)创建子报表 例子:一个报表包含另一个报表 (1)建立两个报表; (2)扩展master报表,增加一个subreport元素; (3)双击subreport元素,设置其属性。在Subreport(other)栏中, Subreport Expression填入“c:/test2.jasper”(第二个表即子表的文件名),点击“Add”,增加/修改:“Subreport parameter name”和Default value expression值;(COUNTRY $F{COUNTRY}) (4)对子表“Report query”->添加'where COUNTRY=${COUNTRY}' (5)增加“Report parameters”,(COUNTRY,java.lang.String) (6)编译detail report; (7)运行master report。 iReport支持Groovy脚本语言,可无需懂Java。