Ireport的安装及使用
一、 安装ireport
1.点击安装包,可以一直点击下一步,安装完成。
2.安装完成后,要在如下安装目录下添加ojdbc14.jar。
3.数据源的添加和修改
(1)进入ireport,点击如下位置,可以添加数据源。
(2)选择JDBC数据连接方式。选择第一个,点击下一步。
(3)在如下界面中,编辑所要连接的数据库。在填写password时,右侧的save password要勾选上,这样你在以后每次需要连接数据库时,不用每次都要输入数据库密码了。
**(注意)**在选择oracle的JDBC连接驱动:Oracle (oracle.jdbc.driver.OracleDriver)。如果这个驱动是红色不可用的,还需要添加驱动。
如果你已在前面的步骤中在安装目录下添加了ojdbc14.jar,oracle驱动还是红色不可用,则执行如下步骤:
点击 工具→选项→Classpath
如上图所示,如果没有如上图位置所示的ojdbc14.jar,则点击Add JAR按钮,选择放在项目libs下的ojdbc14.jar。
这样在选择Oracle (oracle.jdbc.driver.OracleDriver)这个驱动就不是红色的了。
(4)数据库信息添加好后,可以点击Test按钮,进行测试数据库是否连接成功。如果出现如下图所示,则表示测试通过,点击Save按钮保存,这样数据源就添加完成了。
(5)点击如下位置,可以进行数据源的添加、修改和删除。
二、 ireport的使用
点击如下图位置,创建一个新的报表。
可以选择报表的模板,头两个是纵向和横向的空白模板。选择一个纵向的空白模板,点击Open this Template, (也可以选择点击Launch Report Wizard,不过Launch Report Wizard需要提前编写sql语句,而Open this Template不需要。)
我们以Open this Template为例,我们选择一个纵向的空白模板,点击Open this Template。在如下图中,编写报表的名称,点击下一步。
点击完成,这样就创建了一个报表。
在报表中,需要编写查询sql语句,来提供变量。点击如下位置。
在如下图中,编写查询sql语句。可以点击Preview data查看sql语句查询的结果。如果没有问题可以点击OK按钮保存。
如果查询sql的where条件需要项目系统传值,则需要在如下图位置,点击右键新添加一个变量。
然后在sql语句编写界面,将变量拖到sql语句的where条件处生成一个$P{ }的变量就行了。
在编辑空白的报表时,常需要用到组件面板和属性。
(注意)这两界面不一定显示。如果不显示时,可以在如下位置将它打开。
Static Text可以提供一个常量,Text Field可以提供一个变量,变量的名称必须是sql语句的查询的字段。使用他们只需要点击拖拽到需要的地方即可。
Crosstab 可以提供一个交叉表,生成一个不定列,不定行的表格。我们把crosstab放在报表的底部:summary。
在第一步里我们需要选择一个dataset来填充crosstab,我们这里使用主报表里提供的dataset,点击下一步继续。
在第二步里我们需要定义至少一个行分组。
和定义行分组一样,从这里我们需要定义至少一个列分组。
定义data数据,当我们要显示我们自己查询的数据、计算每列的数据的合计时,function我们选择sum。
如下图所示,Add row group totals为添加行合计;Add column group totals为添加列合计;show grid lines(adding cell border)为显示合计的网格线。
点击完成,交叉表就做好了。查看我们做的报表是否是我们想要的样子,我们可以点击编译按钮(右侧),再点击预览按钮(左侧),进行查看。
完成报表后,我们需要把生成的.jasper文件粘贴到项目中就可以了。
在项目中使用报表,首先要导入相应的jar包。
然后在jsp界面,编写如下代码,引用.jasper文件,为.jasper文件传所需要的值。
(注意)IreportByDatabaseHelper需要查询数据库配置的文件名称为:jdbc.properties
如果没有这个文件,需要添加一个。
(注意)在项目中使用报表显示时,可能不显示汉字。我们要对需要显示的地方进行属性设置。如下设置:
首先点击需要修改的地方,如下图:
在右侧的属性中,设置这三个属性如下图一样:
(注意)在设置汉字的字体时,要注意window系统和Linux系统的区别。Linux系统不支持“宋体”格式。
到此这篇关于Ireport的安装与使用教程的文章就介绍到这了,更多相关Ireport安装内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!