BIRT and POJOs as datasources example
今天我们来用POJOS作为BIRT报表的数据源来做一个演示。
所用到的java类
Contact.java
String fname;
String lname;
String phone;
public Contact(String fname, String lname, String phone)...{
this.fname = fname;
this.lname = lname;
this.phone = phone;
}
...
setter & getter
...
}
ContactListFactory.java
public Contact[] createContactList()...{
Contact[] c = new Contact[4];
c[0] = new Contact("stavros", "kounis", "2310886269");
c[1] = new Contact("dimitris", "kounis", "2310888270");
c[2] = new Contact("dimitris", "adamos", "2310998417");
c[3] = new Contact("nikos", "koufotolis", "2321013770");
return c;
}
}
报表
创建一个新的报表(.rptdesign) ,我们把它命名为contactscript.rptdesign.
数据源
1、现在我们切换到"Report Design"Data Explorer。创建我们的数据源(Data Source),然后我们把它命名为srcScript。
2、我们再来创建Data Sets 我们可以命名为setScript
DataSource: srcScript (we have allready create it )
3、创建列(Set up columns)
右键点击你刚才建立的Data Set(setScript)。并选择编辑,在编辑窗口我们选择"Output Columns"节点。然后我们添加三列。
--------------
columnFirstName / Any
columnLastName / Any
columnPhoneNumber / Any
如图:
4、Script Code
在报表编辑窗口打开我们刚才创建的Data Set(setScript) ,并且在窗口的下放选择Code标签。
A - 选择DataSet的open方法,然后写入一下代码。
cf = new Packages.gr.osmosis.report.data.ContactListFactory();
c = cf.createContactList();
now we have an array of Contacts stored in "c" variable
如图:
B - 然后再选择Data Set 的 fetch方法,然后再写入一下代码。
count ++;
row["columnFirstName"] = c[count].getFname();
row["columnLastName"] = c[count].getLname();
row["columnPhoneNumber"] = c[count].getPhone();
return true;
}
return false ;
如图:
设计报表
在报表设计窗口我们切换到"Layout"标签。
在Data Explorer view 你的Data Set已经有三个子结点了(我们刚才创建的列)。然后我们将这写列都拖拽到报表设计器中。
预览
在预览的时候我们会有一个小小的问题,Report's script 必须要找到我们的java classes(Contact.java, ContactListFactory.java). Report designer使用BIRT's web-app viewer 来预览。但是WEB-APP viewer 并不知道去那里找到我们的java classes。 而 web-app viewer 是以插件的形式存在的。
例如:
C:/JProgramFiles/eclipse-SDK-3.0.2-win32/eclipse/plugins/org.eclipse.birt.report.viewer_1.0.0
然后把我们的java classes 复制到C:/JProgramFiles/eclipse-SDK-3.0.2-win32/eclipse/plugins/org.eclipse.birt.report.viewer_1.0.0/birt/WEB-INF/classes/gr/osmosis/report/data目录。
现在我们就可以选择"Preview" 标签来查看了