BIRT的“Scripted数据源”
BIRT的“Scripted数据源”开发与部署
BIRT的“Scripted数据源”
- BIRT是用于制作和生成excel、word、pdf、网页等报表的开源项目。
开发环境
- 报表编辑器:birt-report-designer-all-in-one
- WEB服务器:Tomcat
- 报表引擎:birt-runtime
开发实例
- 使用JavaBean数据源
Java源码
在Java工程中创建复合JavaBean类Contact.java
在集成了BIRT的Eclipse中建立Java工程:birtJavaProject,并建立amigo.report包,并在该包下建立复合JavaBean的类:Contact.java,该类的代码如下所示:
package amigo.report;
public class Contact {
private String firstName;
private String lastName;
public Contact(
String firstName, String lastName){
this.firstName = firstName;
this.lastName = lastName;
}
public String getFirstName(){
return this.firstName;
}
public String getLastName(){
return this.LastName;
}
}
在Java工程中创建数据工厂类ContactListFactory.java
在Java工程中还需要创建制造数据的工程类:ContactListFactory.java,该类的代码如下所示:
package amigo.report;
public class ContactListFactory {
public Contact[] createContactList(){
Contact[] c = new Contact[2];
c[0] = new Contact("stavros", "kounis", "2310886269", address1);
c[1] = new Contact("dimitris", "kounis", "2310888270", address2);
return c;
}
}
报表编程
准备步骤
- 创建报表工程:birtreport工程
- 创建报表:helloBirt.rptdesign
- 创建Scripted数据源:Data Source
- 创建数据集:Data Set,并且在outputColumn编辑
详细步骤:Eclipse BIRT Script Data Source示例
编写数据访问脚
打开“helloBirt.rptdesign”,切换到“Script”,在“Data Explorer”视图中选择刚才创建的数据集
- open对应的脚本如下所示:
count = 0;
cf = new Packages.amigo.report.ContactListFactory();
c = cf.createContactList();
如下图:
- 在“Script”的下拉框中选择“fetch”,对应的脚本如下所示:
if (count <= c.length - 1){
row["firstName"] = c[count].getFirstName();
row["lastName"] = c[count].getLastName();
count ++;
return true;
}
设计报表视图
视图中选择layout,简单地将我们建立的data set 拖到报表视图中即可,在preview中可能报错。
部署与浏览
- 部署birt报表引擎:将birt-runtime的目录下的 WebViewerExample 工程的文件都拷贝到Tomcat的 webapps 下面。
- 部署报表xml文件:将helloBirt.rptdesign报表文件拷贝到Tomcat根目录 /webapps/WebViewerExample 工程下。
- 部署Java源码:Tomcat根目录 /webapps/WebViewerExample/WEB-INF 目录下建立classes子目录,存放Java工程中的三个类文件对应的class文件,将 birtJavaProject/bin 下的amigo目录 整个拷贝到 Tomcat根目录 /webapps/WebViewerExample/WEB-INF/classes 目录,完成报表文件的部署。
访问地址为:
http://localhost:8080/WebViewerExample/frameset?__report=helloBirt.rptdesign
在浏览器的运行效果图如下所示:
参考
- BIRT接口的一些参数:birt的部署
- 详细步骤和分组示例:Eclipse BIRT Script Data Source示例