iReport连接数据库报表开发一
1.下载iReport 官网下载地址 http://community.jaspersoft.com/download
2.新建一个窗口:
安装完iReport后进入Welcome Window界面 ,点击文件、new、Blank A4、Open this Template后填写名字和磁盘地址 完成就创建了一个新的report:
3.连接Oracle:
点击数据库、new一个新的Oracle
点击Database JDBC Connection、next进入Connection连接界面:给连接起个Name,
JDBC Driver :选择连接的数据库类型,这里是Oracle;
JDBC URL:连接的数据库地址;
Username和Password是数据库的连接名和密码;
保存密码后点击Test测试是否连接上,连接上后Save
4.连接上数据库后 点击数据库在Report query中写上要查询的SQL语句点击OK,在Fields中就会显示出查询的字段:
5.查询出字段后就可编辑报表了:
iReport报表页面介绍:
title:只在报表的第一页显示,后面的就不在显示。
page header :相当于页眉,在第一页位于title的下面,而后的页中是位于最上部。
page footer :相当于页脚,和page header是想对应的。
detail :报表内容显示的部分,这部分内容是重复的,相当于迭代的过程。
column header :针对Detail Band 的表头段,一般情况下在这个段中画报表的表头
column footer :和column header 相对的。
summary :出现在整个报表的最后一页的detail的下面,统计总值结果。
左边和上边意思大致相同;
右边为窗口编辑框:如果没有可以选择页面有 窗口 、属性或组合面板等就可出现编辑框;
组合面板主要控件介绍:
Static Text:静态文本框,可以直接拖到页面上,给每个字段编辑名称用的(如图上的标题、单证号等);Text Field:字段文本框,可以在里面编辑 $F{字段},一定要按规范来 加$F{};
Line:线条、矩形框;
Image:图片框;
Table:表格;
Current data:时间框,从数据库获取的时间字段值 可能格式不一 ,拖出后可以选择显示时间的Type,
同时从Fields中拖出的时间格式不一,可以点击此字段框选择右边属性中的 Pattern 选择自己需要的格式;
6 . 在画好页面后 选择Preview预览页面是时 ,对于 选择PDF格式预览 会出现中文不显示的问题解决:
6.1 .报表对象有关字体属性的设置如下:
Font name: 宋体 (中文字体)
PDF font name: STSong-Light ;
PDF Encoding: UniGB-UCS2-H(Chinese Siplified) ;
PDF Embeded: true (打钩);
6.2 . 官网下载JAR包iText-2.1.7.jar,iTextAsian.jar,在工具、选项、iReport、ClassPath、ADD
JAR,将下载的JAR包加进去;
或者复制字体安装包在电脑上安装,同时在工具、选项、iReport、Fonts、Install Font将字体包加进去;
另外可以在iReport的安装目录如:E:\itext\iReport-5.6.0\ireport\modules\ext,
加入下面的JAR包:
iText-2.1.7.jar
iTextAsian.jar
将模板设置好中文后,编译后,重启项目,运行即可。
7. 附iReport其他操作属性:
7.1 . iReport函数:
例sum总计求和函数 ,在页面左边的Report Inspector中选中Variables添加一个重命名,选中其右侧属性,:Variable Class选择 java.math.BigDecimal等数据属性;然后选择Calculation:选择iReport自带的函数如SUM;
Reset type:Report; Increment type:None;Variable Expression :选择想要操作(相加)的字段;
7.2 Text Field 属性框介绍:
7.2.1 属性之pattern : iReport时间字段 想要显示时间类型,可选择其属性pattern (可进去选择类型 ,也可在外面输入想要的类型)
如 yyyy/MM/dd hh:mm:ss 类型
7.2.1 属性之Blank When Null : 当某个字段为空时 报表上会显示Null,选择Blank When Null 当字段值为Null是就显示空;