对于一款软件或产品,尤其是一些企业级应用的IT软件,是不可能满足所有需求的。尤其是针对业务化的产品需求,某些个性化的需求就要进行二次开发。二次开发需要API接口,无论是什么样的开发,开发人员都需要对开发的产品大内部结构有所了解。在应用广泛的企业报表领域,开发在所难免,下图展示了我在工作中开发的FineReport的内核示意图。
这款类似于Excel的报表软件,成为设计器。在设计器中新建一个工作薄就是建了一个WorkBook,WorkBook相当于一个容器,里面可以放任意个WorkSheet,就相当于在设计器的一个工作薄中新建了多个sheet。每个WorkSheet是由任意个单元格CellElement组成,因此CellElement是一个模板的最小元素。获得WorkBook后,必须取得其中的某个WorkSheet才能对这个报表中的CellElement进行操作,这对于模板还是结果都是一样的,如果以模板为例,最基本的内核结构就是如下面这张图
由于每个部分各自包含了很多属性,比如可以设置单元格的前景、背景、边框、字体、字号等;又比如每个WorkSheet中可以添加,删除单元格、可以设置每个sheet的页面属性、可以给每个sheet中添加图表悬浮元素等;再比如可以对WorkBook进行执行获得结果并导出成各种格式、可以进行打印、添加工具栏等等。
正是基于这样,再开发时会有丰富的API接口可供调用。以下是FineReport包含的所有开放的API。
由图可有看出,对于这样的开发可以从以下几个功能点进行开发。
报表数据源
设计器本身已经提供了数据库数据源、文本数据源、xml数据源等多种数据来源方式,同时还可以通过java程序自行生成数据来源,只需要实现TableData接口便可以了。
输入输出报表
在程序中新建一个报表对象同时也可以直接读取一个cpt模板来生成,经过处理的报表最终可以导出成多种形式,可以保存为程序网络报表在web端直接访问,也可以导出为excel、pdf、word、cpt等多种格式文件。
设置单元格属性及报表属性编辑
可以对报表对象的单元格属性、web属性、参数、页面设置等多个属性进行控制,可以自由控制单元格的显示样式、工具栏的按钮、参数面板的展示、参数的赋值等等。
自定义填报
开放的填报api接口能够根据自己的需要来定义填报入库方式,通过填报接口,可以往数据库中保存用户操作日志、在填报成功与失败时进行各种处理等等。
开发的工作虽枯燥也有意思,闲来无事时也会开发一些有趣的应用,比如下图把天气集成到报表页面。
相关推荐
FineReport报表软件API源代码之程序数据集、自定义函数和导出API.docx
本代码主要开源了java报表工具中报表调用部分的代码,通过该开源代码,你可以了解报表工具的内部原理,掌握国内主流java报表工具的各类...另有报表程序数据集、自定义函数和导出API的相关代码,如有需要可以另行下载。
对于finereport报表使用者很有帮助,离线帮助文档
本代码主要开源了java报表...内容涵盖了简单程序数据集、带参程序数据集、SubSection函数-Oracle查询参数个数限制、自定义函数生产UPC条形码、导出api共六大部分。 另有报表调用的相关代码,如有需要可以另行下载。
在实际的应用中会经常需要将数据导出成excel,导出的方式除原样导出还有分页导出、分页分sheet导出和大数据量导出,这些导出方式在JAVA程序中分别有不同的接口来实现。
finereport.jar结合 finereport.jar结合 finereport.jar结合
fineReport集成到java项目中,从依赖文件到写模板,然后到动态合成数据完整过程
FineReport自学习题 V2 包括试题以及每一题对应的制作图表,可以对照制作相应报表。
很多报表软件可以利用JS接口来实现更多更复杂的功能,这需要开放大量的JS API给用户,根据执行JS的主体不同可以将分为三大类:FR、FS和contentWindow。
FineReport V7.0.2产品介绍
Web报表工具FineReport完整教程
Spring Boot2.6.13集成FineReport11.0教程
在报表开发工具FineReport中,报表的执行过程大体可分为两步:1、报表计算;2、页面转换。
FineReport填报全选及批量打印模板; FineReport填报全选及批量打印模板; FineReport填报全选及批量打印模板; FineReport填报全选及批量打印模板;
1. FineReport 1 1.1. 简介 1 1.2. 应用范围 2 1.3. 制作流程 3 2. 数据准备 4 2.1. Oracle数据连接 5 2.2. SQL Server数据连接 6 3. 制作报表 8 3.1. 报表分类 8 3.1.1. 普通报表 9 3.1.2. 填报报表 9 3.2. 报表...
包含的文档中,讲解了如何进行finereport和spring boot的整合,包含需要用的jar包,已经整合成功
FineReport报表软件功能编辑 自推出市场以来,FineReport得到多方用户的认可,同时也在不断的改良与升级中变得更加易用,功能更 加强大,也将会给用户带来更新更好的体验。 FineReport报表工具提供了易用且高效率的...
finereport的jar包,maven编译需要,可与springboot使用
FineReport模板设计器