`

报表引擎API开发入门— EJB程序数据源

阅读更多

我们前面讲了几个数据源,今天我们来讲一下EJB数据源,这篇讲完我们数据源这部分就讲完了。数据连接不需要直接访问数据库,而是使用EJB做为数据源。FR通过定义程序数据集使用EJB的相关类获取到EJB数据源,然后转为我们里面的二维表作为报表数据源使用,进行展示。例如如下获取到ejb数据所做的模板。

一、 实现原理

FineReport报表的数据来源可以是任何类型的数据,因为FineReport是通过AbstractTableData抽象类来读取数据源的,因此用户只要实现了AbstractTableData抽象类,也就可以用自定义类型的程序数据集,FineReport报表引擎就能够读取定义的数据源作为报表数据源使用。AbstractTableData抽象类主要有5个方法,具体使用可参考报表引擎API开发入门—简单程序数据集。EJB程序数据源准备数据使用方法init(),获取到ejb的javaBean,从而保存数据到ArrayList中。

二、 实现步骤

2.1 定义程序数据源
定义DataModelDemo这个类代码如下:

package com.fr.data;
import javax.naming.*;
import javax.ejb.*;
import java.rmi.*;
import java.util.*;
import com.fr.data.AbstractTableData;
import examples.ejb.ejb20.basic.beanManaged.*;
public class DataModelDemo extends AbstractTableData {
    private String[] columnNames;
    private ArrayList valueList = null;
    public DataModelDemo() {
        String[] columnNames = { "Name", "Score" };
        this.columnNames = columnNames;
    }
    // 实现其他四个方法
    public int getColumnCount() {
        return columnNames.length;
    }
    public String getColumnName(int columnIndex) {
        return columnNames[columnIndex];
    }
    public int getRowCount() {
        init();
        return valueList.size();
    }
    public Object getValueAt(int rowIndex, int columnIndex) {
        init();
        return ((Object[]) valueList.get(rowIndex))[columnIndex];
    }
    // 准备数据
    public void init() {
        // 确保只被执行一次
        if (valueList != null) {
            return;
        }
        // 保存得到的结果集
        valueList = new ArrayList();
        Context ctx = null;
        Account ac = null;
        AccountHome home = null;
        try {
            // Contact the AccountBean container (the "AccountHome") through
            // JNDI.
            ctx = new InitialContext();
            home = (AccountHome) ctx
                    .lookup("java:/comp/env/BeanManagedAccountEJB");
            double balanceGreaterThan = 100;
            Collection col = home.findBigAccounts(balanceGreaterThan);
            if (col != null) {
                // 用对象保存数据
                Object[] objArray = null;
                Iterator iter = col.iterator();
                while (iter.hasNext()) {
                    Account bigAccount = (Account) iter.next();
                    objArray = new Object[2];
                    objArray[0] = bigAccount.getPrimaryKey();
                    objArray[1] = new Double(bigAccount.balance());
                    // 在valueList中加入这一行数据
                    valueList.add(objArray);
                }
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

 

 

 

注:使用之前需要先导入ejb的jar包
2.2 编译程序数据源
将编译后的DataModelDemo.class放到项目的WEB-INF下面的classes目录下,因为DataModelDemo.java属于包com.fr.data,所以DataModelDemo.class需要放到classes\com\fr\data目录下。
2.3 配置程序数据源
新建报表,在报表数据集中新建程序数据源,选择我们定义好的程序数据集,如下图,名字可以自定义,如Pro。

2.4 使用程序数据源
配置好程序数据源后便可以使用定义的Pro程序数据集了,与其他类型的数据集使用方法是相同的,可以通过拖拽方法实现单元格数据列绑定。如下图

保存模板到ejb项目环境下,启动Examples Server服务器,预览模板就可以成功访问到模板了!

0
1
分享到:
评论

相关推荐

    ejb数据源配置文件

    ejb数据源配置文件 包括mysql, sqlserver, oracle还有持久化配置文件,EJB开发必备。

    EJB api(EJB英文的API)非常好用

    EJB api(EJB英文的API) EJB api(EJB英文的API) EJB api(EJB英文的API)

    EJB API中文版

    EJB API中文版,很详细的ejb api的中文版本,就像是jdk api一样

    ejb_API 帮助文档

    ejb_API 帮助文档 ejb_API 帮助文档

    EJB入门程序

    EJB入门程序,包括远程、本地的比较,有状态、无状态的比较,以及会话Bean周期、拦截器、以来注入的学习。还有消息驱动Bean和实体Bean的学习。在使用之前有学会配置,否则程序不能运行。下载使用的人不...

    EJB3.0入门经典源代码.part1

    本书是关于EJB 3.0的专业技术教程,从实用的角度出发,理论联系实际,用9章的篇幅详细讲解了EJB 3.0开发的方法和技巧。  本书内容丰富,讲解由浅入深,全面系统,在讲解EJB 3.0最新开发技术的同时,精心设计了与...

    EJB3.0开发入门 Step by Step (图文讲解)

    EJB3.0开发入门(图文讲解), EJB3开发实体Bean,会话Bean,消息Bean。

    EJB 3.0从入门到精通

    本书面向EJB 3.0的实际应用开发,通过大量的实例,循序渐进地为读者介绍了有关EJB 3.0开发所涉及的...本书非常适合EJB 3.0初学者和从事EJB项目开发的人员使用,对于开发大型的企业分布式程序是一本非常好的参考书。

    EJB3.0快速入门项目开发步骤

    快速入门EJB的实例和介绍,通过环境安装配置介绍,特定的EJB实例以及容易出现问题的解决,可以快速入门使用EJB。

    EJB-api.rar

    EJB-api.rar

    EJB 3.0入门经典 源码

    本书是关于EJB 3.0的专业技术教程,从实用的角度出发,理论联系实际,用9章的篇幅详细讲解了EJB 3.0开发的方法和技巧。  本书内容丰富,讲解由浅入深,全面系统,在讲解EJB 3.0最新开发技术的同时,精心设计了与...

    EJB3.0入门经典(PDF)

    《EJB3.0入门经典》是关于EJB 3.0的专业技术教程,从实用的角度出发,理论联系实际,用9章的篇幅详细讲解了EJB 3.0开发的方法和技巧。《EJB3.0入门经典》内容丰富,讲解由浅入深,全面系统,在讲解EJB 3.0最新开发...

    ejb3实例源代码

    ejb3实例源代码,包含ejb3开发技术

    ejb3.0入门图文教程

    ejb3.0入门图文教程,包括EJB3.0开发Entity.pdf、EJB3.0开发Message Driven Bean.pdf、EJB3.0开发Session Bean.pdf

    EJB3.0API.rar_ejb_ejb3.0a_ejb3.0api

    EJB开发文档 EJB开发文档

    制作简单EJB应用程序全过程

    使用oracle的jdeveloper开发的一个EJB应用程序的截图和简述的完整全过程

    ejb-api-3.0-sources

    ejb-api-3.0-sources ejb3.0资源文件,源代码文件

    EJB入门技术使用手册

    ejb入门手册ejb入门手册ejb入门手册ejb入门手册ejb入门手册ejb入门手册ejb入门手册ejb入门手册ejb入门手册ejb入门手册ejb入门手册ejb入门手册

    EJB3入门例子

    EJB3入门例子,jboss5+EJB3+myEclipse

Global site tag (gtag.js) - Google Analytics