反馈已提交

网络繁忙

EJB程序数据源

  • 文档创建者:lu123
  • 历史版本:16
  • 最近更新:RosieY 于 2022-01-20
  • 1. 描述

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

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

    2. 实现原理

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

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

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

    3. 实现步骤

    注:使用此示例之前需要先搭建一个EJB 环境,实现一个EJB 数据源。

    3.1 定义程序数据源

    在 Java 编辑器中实现 DataModelDemo 这个类,便器前先导入 FineReport 工程 JAR 包和 EJB 的 JAR 包。如何导入可参考:编译Java程序

    点击可下载 EJB 的 JAR 包:ejb.zip

    DataModelDemo 类代码请参见:https://code.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下面。

    注:远程设计时,本地设计器和远程服务器的工程下都需要放置程序数据集对应的 class 文件。

    3.3 配置程序数据源

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

    222


    3.4 使用程序数据源

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

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

    附件列表


    主题: 二次开发
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持