新建报表:菜单栏的File---New Document--Reprot Name中设定报表名--OK
编译报表:菜单栏的Build--Compile
运行报表:菜单栏的Build--Execute
iReport的国际化
启动iReport之后,有时候它的窗口菜单栏呈现的是繁体汉字
这是由于其国际化没有做好,我们可以修改iReport,使其显示英文或简体中文
Options--选项--General--语言--选择英文即可
若想显示中文的话,那么选择第3个中文(中国)即可
添加静态文本
点击上方工具栏中的Static Text按钮,然后在报表中拖动出一个矩形框即可
点中报表里的Statci Text框,右键选择Properties可以详细的编辑静态文本
预览报表的底层实现所应用的技术
选择完预览方式之后,在预览时,实际上都是由相应的组件来帮助我们完成的
比如转换PDF格式,它使用的是iText组件,这是一个很有名的使用Java操纵PDF的工具
比如转换Office格式,它是使用Apache--POI组件来转化的
预览报表
iReport支持多种方式的预览,也就是说它可以转化为多种格式
我们预览时所看到的就是以最终呈现出来的报表的方式进行查看的
它默认的为JRViewer Preview预览,我们也可以选择其它的预览方式
编辑报表之后,需要先Compile报表,然后再Execute报表
另外,其中的Java 2D Preview预览是非常炫的,预览时可以实现鼠标翻书的效果
通过报表向导新建报表
File--Report Wizard--接下来我们一一说明
Query:在Connections/Data Sources中选择定义好的数据源
在SQL query输入SQL语句,比如select * from person
Fields selection:左框会自动呈现表字段,右框就是用来指定显示在报表里面的字段
Group by...:指定按照哪个字段进行分组
Layout:指定报表模板,比如说我们选择classicC.xml经典的模板
Finish:此时会弹出compatibility warning兼容警告框,无需理会,直接点击确定即可
按照预览方式关联到程序
运行报表时会在下方Output Console中输出提示信息。如果提示如下信息的话
No external viewer is specified for this type of print.Set it in the Options pane.
指的是当前预览方式并没有关联到具体打开程序上,需要在选项面板中设置它
点击菜单栏的Options--Settings...--External Programs--配置打开方式
新建数据源
Data--Connections/Data Sources--New--Database JDBC connection
在//iReport-2.0.5//lib//中已经自动为我们提供了连接数据库需要用到的JAR包了
若要连接其它数据库,而恰巧//iReport-2.0.5//lib没有提供相应的数据库驱动的话
我们可以自己将该数据库驱动拷贝到//iReport-2.0.5//lib中,然后重启iReport即可
此时iReport会自动将数据库驱动,也就是把连接数据库用到的JAR包加载进来了
Name:自定义数据源名字,比如mysql_connection
JDBC URL:输入Database后,点击后面Wizard按钮,按项会自动添充
Server Address:数据库服务器地址,比如localhost
Database:所连接的数据库名
User Name:连接数据库的用户名
Password:连接数据库的密码,我们可以点击下面的Test按钮测试连接
报表上的表达式
点中报表上$F{age}右键Properties--Text Field--Text Field Expression
在它的右侧的Open the expression editor按钮可以打开表达式编辑器
在Text Field Expression中显示的就是绿色的$F{age}
这里 F 指的就是数据库里面的字段, {} 中表示的就是字段名,不用加引号
表达式为绿色的则表示该信息是正确的,如果是蓝色的则表示该信息错误
PDF Preview的中文问题
若报表中含有中文,那么在以PDF Preview预览时,就可能会出现乱码或空白
这是由于iReport使用的是iText生成PDF的,而iText默认的是不支持中文的
所以要到http://itextpdf.sourceforge.net下载iText的支持亚洲文字的iTextAsian插件
然后把下载到的iTextAsian.jar拷贝到//iReport-2.0.5//lib中,再重启iReport
此时不要急着预览,还要修改一些参数,点中报表上含有中文的Static Text框
右键Properties--Font--将PDF Font Name改为STSong-Light字体
接着将最下方PDF Encoding改为UniGB-UCS2-H(Chinese Simplified)即可
并且这个弹出的Properties对话框,没有确定按钮,修改完参数后即立刻生效
另外:关于iText的学习,大家不用去买书,直接在网上搜些资料就可以了
此外:Manning出版社出版的《iText IN ACTION》的也是唯一的一本iText方面的书
定制$F{field}的显示
默认$F{field}会显示所有字段的值,我们也可以决定它显示某一个字段值
选中$F{field}右键Properties--Common--Print when expression框
可以在该框中输入一个返回布尔值的表达式,即返回true时,才打印字段值
比如说我们想让报表打印username的值不是zhangsan的所有人的名字
则可以输入new java.lang.Boolean(!"zhangsan".equals($F{username}))
真正开发时建立报表的方式
在真正开发中建立报表时,报表向导用的并不是很多
这是因为报表向导存在一些局限性,我们只能按照它的一些模板去定制报表
实际上报表是根据客户的要求去定制的,而模板通常是不符合要求的
所以,我们通常会从新建普通报表开始:选择File--New Document
普通报表的主窗体的Band释义
Title Band:仅仅显示在整个报表的第一页的最上面。类似于一本书的书名
除第一页外的所有其它页面中都不会出现Title band中的内容
pageHeader Band:显示在整个报表的所有页面的最上端。类似于Word的页眉
但是在报表第一页中,它的内容将显示在Title Band的下面
pageFooter Band:显示在所在页面的最下端。类似于Word的页脚
lastPageFooter Band:即尾页的页脚,仅仅显示在最后一页脚处
此时最后一页将不再显示pageFooter band
Detail Band:即报表内容段,在Detail Band中设计报表中需要重复出现的内容
并且Detail band中的内容会显示在每一页中。类似于Word的正文
columnHeader Band:针对Detail Band的表头段。一般在该段中画报表的表头
columnFooter Band:针对Detail Band的表尾段
Summary Band:表格的合计段。出现在整个报表最后一页的Detail band后面
一般用来统计报表中某一个或某几个字段的合计值