历史版本11 :EJB程序数据源 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 描述编辑

应用场景:数据连接不需要直接访问数据库,而是使用 EJB 做为数据源。

功能介绍:FR 通过定义程序数据集使用 EJB 的相关类获取到EJB数据源,然后转为我们里面的二维表作为报表数据源使用,进行展示。例如如下获取到 EJB 数据所做的模板。

2. 实现原理编辑

FineReport 报表的数据来源可以是任何类型的数据,因为 FineReport 是通过 AbstractTableData 抽象类来读取数据源的,因此用户只要实现了 AbstractTableData 抽象类,也就可以用自定义类型的程序数据集,FineReport 报表引擎就能够读取定义的数据源作为报表数据源使用。

  • AbstractTableData 抽象类主要有5个方法,具体使用请参见 简单程序数据集 实现原理文档。

  • EJB 程序数据源准备数据使用方法 init(),获取到 EJB 的 javaBean,从而保存数据到 ArrayList 中。

3. 实现步骤编辑

3.1 定义程序数据源

注:使用之前需要先导入 EJB 的jar包

定义 DataModelDemo 这个类,详细的代码请参见:https://git.fanruan.com/demo/example/src/release/10.0/src/main/java/com/fr/data/DataModelDemo.java

3.2 编译程序数据源

将 DataModelDemo.java 编译生成 DataModelDemo.class 类。

将生成的类文件拷贝到报表工程%FR_HOME%\webapps\webroot\WEB-INF\classes目录下。由于该类是在com.fr.data包中的,因此最终应该将该 DataModelDemo.class 放在%FR_HOME%\webapps\webroot\WEB-INF\classes\com\fr\data下面。

3.3 配置程序数据源

新建报表,在报表数据集中新建程序数据源,选择我们定义好的程序数据集,如下图,名字可以自定义,如 Pro。

222

3.4 使用程序数据源

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


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