三个Java报表工具
报表是非常复杂的程序,手工开发报表的难度非常大,几乎是不可能的一件事情
报表工具有很多,这里只列举三个
①水晶报表。。最早它是面向于Windows系统的最有名的一个报表工具,现在它也有了针对Java方面的相应实现
②BIRT。。即Business Intelligence and Reporting Tools商业智能和报表工具,官方站点http://www.eclipse.org/birt
③JasperReport。。一个非常强大的报表工具,Struts2提供了与该报表工具的整合策略
JasperReport项目以前是依托于SourceForge,现在实际上也是依托于SourceForge
它以前没有自己的独立站点,现在已经有了,即http://www.jasperforge.org
其中JasperReport是出现最早的,而BIRT出现最晚,但是BIRT依托于Eclipse开源组织得到了迅猛的发展
JasperReport和iReport简介
JasperReport本身是一个格式非常复杂的XML文件,并且真实中项目的需求是千变万化的,不可能完全写Java代码去开发它
事实上,如果不使用可视化工具的话,根本就无法开发它。所以JasperReport为我们提供了一个可视化的辅助工具,即iReport
二者是同一个开源项目下的两个产品,并且总是结合在一起使用的。因此,开发报表时,都要用到它的可视化设计器iReport
iReport和JasperReport是独立的,故下载时须保证二者的版本是匹配的。以前二者的版本是独立命名的,现在版本号已经统一
首次启动//iReport-2.0.5//ireport.exe时会在C://Documents and Settings//系统登录名//建立名为 .ireport目录
.ireport目录中会生成一个config.xml文件,我们对iReport的修改和配置都会保存在config.xml中,我们也可以直接编辑该文件
iReport-2.0.5中的Fields
三大主力
Fields、Variables、Parameters是iReport中非常重要的三个东西
Fields是指报表上的表达式$F{field},即获取数据表的字段值
Variables和Parameters与Java中的是一样的,分别指的是变量和参数
因为报表不可能是纯静态的,肯定要根据用户输入的数据来动态查询,因此就要接收参数
并且有些时候也要定义变量,让其它地方引用该变量
手工设定Detail中显示的字段
Build--Set Active Connection--选择已配置好的数据库连接--OK
此时该数据库连接就设定到当前报表中了,接下来再把表字段设定到Detail中
Data--Report Query--然后就会打开报表查询窗口,它默认支持多种语言
然后我们再输入SQL语句,比如select * from person,此时下方会自动显示查询结果
然后在Report Query窗口中点OK,就表示当前报表可以使用PERSON表中所有字段
我们在Detail Band中放置一个Text Field按钮,这时报表上就会显示$F{field}字样
于是可以修改$F{field}令其显示具体字段值,比如$F{age}显示表中age字段值
iReport-2.0.5中的Variables
定义变量
View--Variables--点击Variables选项卡
在Variables中会看到5个大写字母的变量,这是iReport内建的,即Built-in
再点击New建立自己的变量,然后在弹出窗口中指定变量名和类型
最下面的Initial Value Expression用来设定初始值的表达式,缺省为null
然后Variable Expression用来设定变量的表达式,我们可以点击它右侧的小按钮
然后会弹出Expression editor...窗口,比如我们输入new java.util.Date()
若输入的表达式错误,则中间会显示红色字体。这种编辑方式很类似于存储过程
建立好变量后,展开iReport左边Document structure透视图中Variables选项
将刚才定义的变量拖动到报表中就可以看到类似$V{variableName}
内置变量
展开Document structure中Variables选项,将PAGE_NUMBER拖动到报表中
预览报表时就会发现每一页都会显示页号,这就是5个内置变量的魅力所在
另外iReport右侧Library透视图中的Page X of Y变量可以显示Page 2 of 7字样
iReport-2.0.5中的Parameters
定义参数
View--Parameters--点击Parameters选项卡,同样iReport也内建了一些参数
我们可以在Default Value Expression中指定参数的默认值,比如"This is a parameter"
注意这里在指定参数默认值时,字符串需要用双引号引上
最下方的Edit parameter properties...用来编辑属性,我们暂时无需理会它
注意Use as a Prompt单选框,即设定parameter作为提示来使用,暂时勾选它
定义好参数后,同样展开Document structure透视图中的Parameters选项
将刚才定义的参数拖动到报表中就可以看到类似$P{paramName}
Parameter prompt
将参数定义为Prompt之后,Execute报表时会弹出Parameter prompt对话框
假设這里输入Jadyer,那么预览的效果就是在$P{myParam}的位置输出了Jadyer
若Parameter prompt中什么都不输入,预览时$P{myParam}的位置就是空白
使用报表时需要根据外面的程序传过来的信息,来动态决定下一步做什么
这里Parameter就是外边传过来的参数,然后就可以把这个参数显示出来了
可以大致的认为Parameter prompt就类似于实际开发中的参数传递