对于一款软件或产品,尤其是一些企业级应用的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 FineReport报表软件API源代码提供了三个主要的知识点:程序数据集、自定义函数和导出API。下面我们将详细介绍每个知识点。 程序数据集 程序数据集...
Java报表API源代码主要涵盖了FineReport工具的程序数据集、自定义函数和导出API的实现,旨在帮助开发者深入了解报表工具的内部工作原理,掌握二次开发技能,以应对各种个性化的业务需求。FineReport是一款强大的Java...
9. **API与插件开发**:对于开发者,FineReport提供了API接口和插件开发框架,允许自定义功能扩展。这部分内容将引导用户进行二次开发,提升报表系统的灵活性。 10. **问题解决与技巧**:文档最后通常会包含一个...
FineReport作为一款专业的报表工具,提供了多种导出Excel的API,以适应不同的业务场景和需求。本文将详细介绍FineReport导出Excel的四种API,包括原样导出、分页导出、分页分sheet导出和大数据量导出。 首先,原样...
使用Finereport提供的API来交互,如`ReportDesignModel`和`ReportRuntimeModel`。 5. **集成图表插件**:对于涉及到图表的报表,需要确保引入了相应的插件,例如`plugin-com.fr.plugin.chart.vancharts-0.jar`。...
总的来说,通过《FineReport自学习题 V2》这个压缩包,用户可以从理论到实践全面掌握FineReport的使用技巧,提升数据分析和报表制作能力,无论是在日常工作中还是在项目开发中,都能发挥出FineReport的强大效能。
文档介绍了定时任务导出文件的功能,以及权限相关的开放API,这些是构建复杂应用场景时不可或缺的部分。还涉及到消息推送、登入登出、管理菜单、系统管理扩展等高级功能的实现。 9. 插件开发的细节 FineReport开发...
3. API集成:通过FineReport提供的API,可以将报表嵌入到其他业务系统中,实现数据的无缝对接。 五、相关说明 本教程中可能包含的其他细节可能涉及错误处理、日志查看、性能优化等方面。在学习过程中,建议结合官方...
对于高级用户,FineReport提供了丰富的API接口,支持与其他系统集成,进行二次开发,实现更复杂的应用场景。 通过阅读《Web报表工具FineReport完整教程.pdf》这份资料,用户将深入理解FineReport的功能与应用,...
在这个例子中,`FineReportService`是自定义的服务类,它封装了FineReport的API调用,如加载报表、渲染数据等。`viewReport`方法则会根据指定的报表名称,调用FineReport服务来展示报表。 至于压缩包中的"fr"文件,...
5. **交互式功能**:FineReport支持交互式报表,如钻取、过滤、下拉列表等。学习题可能包括如何设置这些交互功能,以增强报表的用户体验。 6. **定时任务与邮件发送**:FineReport的定时调度功能可以自动在指定时间...
FineReport提供了丰富的API接口,可以无缝集成到企业现有的IT系统中,如ERP、CRM等。它支持Java、.NET等多种开发平台,方便开发者进行二次开发和定制化需求。此外,FineReport还支持Web服务调用,可以与其他Web应用...
这一步骤通常是在Java项目中通过调用fineReport提供的API来实现的。具体来说,可以通过设置报表参数、执行查询等方式获取数据,并将这些数据填入模板中。 #### 三、总结 通过以上步骤,可以将fineReport顺利集成到...
《FineReport帮助文档Word版》是为了解决官方FineReport帮助文档在查看时可能存在不便的问题而制作的。原版文档的左侧导航树未完全展开,用户需要逐个点击才能查看具体内容,这无疑增加了查找和理解信息的时间成本。...
Spring Boot 2.6.13 集成 FineReport 11.0 教程 本教程旨在指导用户如何将 Spring Boot 2.6.13 集成 FineReport 11.0,实现报表生成和数据可视化。该教程涵盖了环境配置、数据库设置、FineReport 安装、报表设计和...
总的来说,这个压缩包提供的答案涵盖了FineReport从基础到进阶的多个方面,通过学习和实践,你将能够独立完成各类报表的设计和应用。记住,尽管答案可以帮助你解决问题,但更重要的是亲自尝试和理解每一个步骤,只有...
【Finereport跨域打印文档】是指在使用帆软报表工具Finereport时,涉及到的在不同源(即跨域)环境下进行文档打印的技术说明。跨域打印是Web开发中的一个重要概念,通常涉及到浏览器的同源策略限制。由于安全原因,...