通过EJB相关类获取程序数据集FR中的数据源,并将其转换为内部二维表,用作报表的数据来源。
1、 运作机制
2、 FineReport报表支持多种类型的数据源,其数据读取机制基于AbstractTableData抽象类。只要用户按照规范实现该抽象类,即可将自定义的数据集类型接入报表系统,使FineReport引擎能够识别并使用这些数据作为报表的来源。AbstractTableData包含五个核心方法,开发者可依据这些方法构建符合自身需求的数据处理逻辑。通过实现这些接口,可以灵活地从不同系统或结构中提取数据。例如,在集成EJB时,可通过重写init()方法完成数据初始化,从中获取所需的JavaBean对象,并将提取的数据存储至ArrayList等集合中,为后续报表展示提供支持。这种方式极大增强了数据源的扩展性与灵活性,适用于复杂的企业级应用环境。具体实现细节可参考简单程序数据集的技术说明文档。
3、 设定程序数据来源
4、 定义名为DataModelDemo的类,代码实现如下所示。
5、 使用前需导入EJB的JAR包。
6、 最新代码地址已更新
7、 编译程序数据来源
8、 将编译生成的DataModelDemo.class文件放置于项目WEB-INF目录下的classes文件夹中。由于DataModelDemo.java属于com.fr.data包,因此该class文件需存放在classes目录下的com/fr/data对应路径中,确保包结构与目录层级一致,以保证程序正常加载类文件。
9、 设置程序数据源
10、 创建新报表后,在报表数据集中添加程序数据源,选择已定义的程序数据集,名称可自行设定,例如Pro。
11、 采用程序数据源
12、 配置完程序数据源后,即可使用定义的Pro程序数据集,其使用方式与其他数据集一致,支持通过拖拽操作完成单元格数据列的绑定,具体效果所示。
13、 将模板保存至EJB项目,启动Examples Server服务后,即可顺利预览并访问该模板内容。
