报表工具之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 -> 选择 -> ... -> OK7)在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。