用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;
}
}