前言
今天主要介绍如何运用iReport产生的报表template,我们的目标是在Servlet上简单的运用JDBC连接DB,查询我们事先建置好的Person Table,表格内纪录ID、Name、Age、Phone、Email、Birthday这六个栏位,并在前端JSP有DatePicker可以选择查询某生日区间的Person资料,并产生PDF或Excel报表。
环境介绍
开发电脑:MAC
开发工具:Eclipse
开发环境:Java 1.7
工具软体:iReport v5.6.0
下载与安装
Step 1.首先我们先去JasperReport官网下载iReport并安装到MAC上,我们选择的版本是v5.6.0
Step 2.安装完成后,如果有MAC使用者有打不开的情况,我们需要到iReport的config档里面去修改jdkhome的设定,把jdkhome的注解打开,并填入自己jdk1.7的路径
路径:/Applications/Jaspersoft iReport Designer.app/Contents/Resources/ireport/etc/ireport.conf)
製作报表template
Step1.接着我们便可以开始用iReport製作报表的template
首先我们先将调色盘的Static Text拖曳到报表上,为报表新增标题
Step 2.接着我们要为报表设定dataSource对应的attribute,所以我们在Eclipse中新增一个Dynamic Web Project,并将此专案设定为Java 1.7,如果没有设为1.7,iReport可能会读不到编译出来的class档,并新增一个Person的VO
package com.example.model;public class Person {private int id;private String name;private String age;private String phone;private String email;private String birthday;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getBirthday() {return birthday;}public void setBirthday(String birthday) {this.birthday = birthday;}}
Step 3.接着我们回到iReport,点选左上角iReport > Preferences,为报表设定classPath,这样我们等等设定DataSource就可以读取到我们刚刚新增的Person VO的calss档
Step 4.点选报表上方这个新增Fields的按钮,并在classPath的页籤里输入我们刚刚新增Person VO的class档路径,按下Read attributes的按钮后,便可以看到我们Person VO里的attributes出现在视窗中,接着选取并新增想要在报表中呈现的attributes,再点选OK储存。
Step 5.就可以看到我们所选取的attributes出现在iReport左边的Fields中,接着我们就可以开始为报表新增栏位了。
Step 6.我们可以直接拖曳Fields里的attributes到报表中的Detail 1里,iReport便会自动在Column Header中新增我们的栏位名称,我们可以对其进行排版及修改,或是点选右键在Padding And Borders选项中为栏位设定框线,下图便是我排版后的样子。
Step 7.我们再为这个报表加入一个查询起讫日的栏位,这样我们就可以清楚的知道这个报表内容的查询区间是什么时候。
我们在Parameters点选右键加入Parameter,并把这个新增的Parameter Name改为searchDate,并拖曳到报表Page Header的区块中。
Step 8.接着我们对报表上的这个$P{searchDate}点选右键 > Edit Expression,为这个parameter加入前缀文字。
Step 9.到目前爲止,我们的报表样式大概完成了,但因为我们的报表中有中文字,所以还需要在iReport中加入我们想要的字型,不然会发生产出来的报表无法显示中文字的状况。因为是Mac的关係,所以我请Windows的朋友传windows/font底下的kaiu.tff给我,接着我们点选左上角iReport > Preferences,在Fonts页籤中新增字型。
Step 10.新增完成后,我们选取刚刚新增的kaiu字型,并点选Export as extension按钮,这里会汇出该字型的jar档,之后我们在做Servlet需要把这个jar档import进来。
Step 11.接着还要记得把所有的栏位字型都设定成我们刚刚新增的kaiu。
Step 12.最后我们就点选Compile Report的图示,就可以在同一个路径下产生JasperReportExample.jasper的档案,这就是我们刚刚运用iReport产生出来的报表template,在下一篇文章使用iReport+JasperReport产生PDF及Excel报表(2)中将介绍如何运用JasperReport的jar档在Servlet中产生我们想要的报表。