用iReport and jasperReports 生成一个简单的report.
对于初学的人来说,做一个ireport不是很容易的事情,但现在很少有比较简单的例子。我在这里就举例一个简单的,一个教你上手的ireport例子。 网上很多例子都是和WEB 或者 database相关的,没有一个独立的例子,对于刚学的人,那不算是个好事情。那我就来填补这个空白,我做的这个例子,只有ireport和javaBean 实现,所以省去了很多东西,但对于刚接触的人来说,是件好事情,只需要关心ireport,不用去做很多的无用的事情。当学会了ireport的时候,再去做相关的也不迟。
新建一个报表:取名 teach1
建成后,我们可以看到: ireport模板分为几块: title,pageHeader,columnHeader,detail,columnFooter,pageFooter
lastPageFooter,summary. 每个模块的都能从名字看出来它的作用。title是放标题的,pageHeader是每页的头,columnHeader 是每列的开头,detail是细节的意思,打个比方哈,比如我要显示一个list,那么我们的数据就应该放在detail里面。columnFooter ,pageFooter,LastPageFooter我都不说了,和对于的Header差不多。 summary就是放在最后面的,就和我们接报告的总结部分,闲话不多说了,我们进入正题。
如图:我建了一个title,表头和数据的列,这个例子我只用了3列,分别是 No.,name,age.先在左边添加3 个field,让后拖到模块里面去。还有属性,可以点右键,具体的就自己去摸索了,很简单。
这样,我们这个例子的ireport的模板就做好了。
让后我写了一个java Class 和一个 javaBean.
package test.com.******.operator.taxi.service;
publicclass TestIreport {
publicstaticvoid main(String args[]){
JasperPrint print = null;
try {
InputStream is = new FileInputStream("/home/developer/apps/iReport-2.0.0/teach1.jasper");
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(is);
HashMap<String, Object> parameters1 = new HashMap<String, Object>();
List<TestJavaBean> list = new ArrayList<TestJavaBean>();
for(int i = 0; i < 10; i++){
TestJavaBean bean = new TestJavaBean();
bean.setNo(""+i);bean.setName("test"+i);bean.setAge(i+18);
list.add(bean);
}
// chatListsub.add(chat10); chatListsub.add(chat11); chatListsub.add(chat12); chatListsub.add(chats1);
// chatListsub.add(chat20); chatListsub.add(chat21); chatListsub.add(chat22); chatListsub.add(chats2);
parameters1.put("SUBREPORT_DIR", "/home/developer/apps/iReport-2.0.0/");
//parameters1.put("MyDatasource", new JRBeanCollectionDataSource(chatListsub));
print = JasperFillManager.fillReport(jasperReport, parameters1,
new JRBeanCollectionDataSource(list));
JasperViewer.viewReport(print, false);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
package test.com.***.operator.taxi.service;
publicclass TestJavaBean {
private String No;
private String name;
privateintage;
public String getNo() {
returnNo;
}
publicvoid setNo(String no) {
No = no;
}
public String getName() {
returnname;
}
publicvoid setName(String name) {
this.name = name;
}
publicint getAge() {
returnage;
}
publicvoid setAge(int age) {
this.age = age;
}
}