从FineReport看开放式引擎API

简介:

对于一款软件或产品,尤其是一些企业级应用的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接口能够根据自己的需要来定义填报入库方式,通过填报接口,可以往数据库中保存用户操作日志、在填报成功与失败时进行各种处理等等。

开发的工作虽枯燥也有意思,闲来无事时也会开发一些有趣的应用,比如下图把天气集成到报表页面。



本文转自 雄霸天下啦 51CTO博客,原文链接:http://blog.51cto.com/10549520/1827413,如需转载请自行联系原作者

相关文章
|
7月前
|
监控 网络协议 API
阿里云BssOpenAPI是一个基于阿里云开放API的服务
【2月更文挑战第24天】阿里云BssOpenAPI是一个基于阿里云开放API的服务
387 6
|
17天前
|
机器学习/深度学习 人工智能 自然语言处理
GLM-4V-Flash:智谱 AI 免费开放的图像理解大模型 API 接口
智谱AI推出的GLM-4V-Flash是一款专注于图像理解的免费开放大模型,提供API接口支持用户上传图片URL或Base64编码图片获取详细的图像描述。该模型通过深度学习和卷积神经网络技术,简化了图像分析流程,提高了开发效率,适用于内容审核、辅助视障人士、社交媒体、教育和电子商务等多个应用场景。
102 14
GLM-4V-Flash:智谱 AI 免费开放的图像理解大模型 API 接口
|
4月前
|
Java API Spring
打造未来电商新引擎:揭秘Java可扩展API设计,让支付与物流灵活如丝,引领电商时代潮流!
【8月更文挑战第30天】本文通过电商平台案例,探讨了如何设计可扩展的Java API。首先定义支付和物流服务的接口与抽象类,然后实现具体服务,接着引入工厂模式或依赖注入管理服务实例,最后通过配置实现灵活扩展。这种设计确保了应用架构的灵活性和长期稳定性。
69 3
|
24天前
|
网络协议 API
检测指定TCP端口开放状态免费API接口教程
此API用于检测指定TCP端口是否开放,支持POST/GET请求。需提供用户ID、KEY、目标主机,可选指定端口(默认80)和地区(默认国内)。返回状态码、信息提示、检测主机、端口及状态(开放或关闭)。示例中ID和KEY为公共测试用,建议使用个人ID和KEY以享受更高调用频率。
43 14
|
1月前
|
网络协议 API
检测指定TCP端口开放状态免费API接口教程
该API用于检测目标主机指定TCP端口是否开放,适用于检测连通状态等场景。支持指定大陆、美国、香港等检测节点。请求地址为 `https://cn.apihz.cn/api/wangzhan/port.php`,支持POST和GET请求方式。请求参数包括 `id`、`key`、`type`、`host` 和 `port`。返回参数包含检测结果和状态码。示例请求:`https://cn.apihz.cn/api/wangzhan/port.php?id=88888888&key=88888888&type=1&host=49.234.56.78&port=80`。
|
3月前
|
自然语言处理 搜索推荐 数据挖掘
电商 API 接口:电商领域的强大技术引擎
在数字化浪潮中,电商API接口作为连接系统的桥梁,已成为电商市场的核心技术引擎。它通过实时库存信息、多样化支付等功能提升用户体验,支持自动化订单处理,促进数据流通与分析,并允许定制化开发,集成移动应用,从而增强系统灵活性和业务竞争力。
|
4月前
|
Java 数据库连接 缓存
Hibernate性能调优:五大秘籍,让应用效能飙升,告别慢如蜗牛的加载,体验丝滑般流畅!
【8月更文挑战第31天】本文深入探讨了提升Hibernate应用性能的五大技巧,包括选择合适的缓存策略、优化查询语句、合理使用Eager与Lazy加载、批量操作与事务管理以及利用索引和数据库优化。通过正确配置多级缓存、分页查询、延迟加载、批量处理及合理创建索引,能够显著提高应用响应速度与吞吐量,改善用户体验。这些技巧需根据具体应用场景灵活调整,以实现最佳性能优化效果。
219 0
|
5月前
|
人工智能 自然语言处理 算法
开放式API在AI应用开发中的革命性角色
【7月更文第21天】随着人工智能技术的飞速发展,开放式API(Application Programming Interfaces)正逐渐成为连接技术与创新、加速AI应用开发的关键桥梁。这些API允许开发者轻松访问预先训练好的模型和复杂算法,无需从零开始构建基础架构,从而极大地降低了AI应用的开发门槛,促进了技术民主化。本文将探讨开放式API如何在AI领域引发革命性变化,通过实际案例和代码示例展现其强大功能。
140 2
|
4月前
|
人工智能 自然语言处理 API
云栖发布:通义听悟AI能力再进化,开放API接口
云栖发布:通义听悟AI能力再进化,开放API接口
|
5月前
|
数据可视化 安全 API
数据库开放权限风险高,API非唯一选择:DataV为您开启安全高效的数据可视化之旅
良好的用户体验:DataV注重用户体验设计,提供了丰富的交互效果和动画效果,使得数据可视化大屏更加生动、吸引人。这有助于提升用户的参与度和满意度,促进数据的广泛应用