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

在浏览器的运行效果图如下所示:
在这里插入图片描述

参考

猜你喜欢

转载自blog.csdn.net/weixin_42359693/article/details/86693835