在AgilePLM项目中使用积木报表

文章介绍了积木报表作为一款开源、免费且功能强大的报表工具,其功能接近FineReport,适用于SQL配置生成报表。适合在SpringBoot和Oracle环境下使用,并提供了数据库初始化、依赖引入的步骤。尽管在某些功能上仍有局限,但考虑其价格优势,能有效缩短项目开发周期和降低成本。文章还提到了一些使用中的注意事项和问题,如大数据量打印的性能问题。

前言

目前市面上有很多报表工具,很多都收费昂贵。这次找到一个开源免费而且功能也很强大的报表工具-积木报表。推荐给大家!

积木报表和FineReport功能比较类似,基本可以做到,只要准备好SQL,通过配置就能完成一个功能全面的报表了。虽然还不能完全媲美FineReport,但是考虑到FineReport的价格,还是有他的优势的。也可以缩短项目开发周期节约开发成本的。

注意:积木报表的开源协议是LGPL v2.1,如果要商业使用,最好确认一下是否需要收费。 积木报表商业授权

目前根据笔者的了解,如果是在自己项目的pom中引入积木报表的依赖,使用它的功能来开发业务报表,不包含收费功能,是不收费的,也不需要将自己项目开源。以上信息如有错误,欢迎留言告知。

项目环境

若依框架单体架构-Oracle版

SpringBoot 2.5.6,JDK8

安全框架为Shiro 1.9

问题记录

  1. 打印功能在数据量大的情况,会比较卡,介意的可以在设置中屏蔽。
  2. 导出图片功能,导出的图片背景和字体都是透明的。目前没找到功能屏蔽办法,只能关闭全部导出

以下内容也可以参考,积木报表官方文档

安装

数据库初始化

如果数据库是MySQL,可以直接使用官网的初始化脚本:

在 **积木报表(JimuReport)** 中使用 **子报表(SubReport)** 是一种非常灵活的方式,可以实现主报表中嵌套其他报表,适用于展示多个独立数据源的数据、分页展示、复用已有报表模板等场景。 --- ## 🧩 什么是子报表(SubReport)? 子报表是指嵌套在主报表中的另一个独立报表。主报表负责整体布局,子报表负责局部数据展示。 --- ## ✅ 使用报表的步骤 ### 步骤1:创建子报表模板 1. 打开积木报表设计器。 2. 新建一个空白报表,命名为 `subreport_table1`。 3. 添加一个数据集,比如查询 `table1`: ```sql SELECT * FROM table1 WHERE keyword = '${keyword}' ``` 4. 设计表格,绑定字段,保存为子报表模板。 > 重复此步骤创建另一个子报表 `subreport_table2`,用于查询 `table2`。 --- ### 步骤2:创建主报表并添加子报表控件 1. 新建一个主报表模板,命名为 `main_report`。 2. 添加一个参数 `keyword`,用于接收用户输入。 3. 在主报表设计区域拖入一个 **子报表控件(SubReport)**。 4. 配置子报表控件属性: - **子报表名称**:选择你之前创建的 `subreport_table1` - **参数映射**:将主报表的 `keyword` 参数传递给子报表 5. 再添加一个子报表控件,绑定 `subreport_table2`,同样传入 `keyword` --- ### 步骤3:预览主报表 1. 保存主报表。 2. 点击“预览”按钮。 3. 输入 `keyword`,系统会同时加载两个子报表的数据。 --- ## 📌 子报表传参配置说明 在子报表控件属性中,可以配置参数映射,例如: | 主报表参数名 | 子报表参数名 | |-------------|--------------| | keyword | keyword | 这样,主报表中输入的参数值会自动传递给子报表。 --- ## 🧪 示例:子报表调用示意图 ``` 主报表(main_report) │ ├── 参数:keyword │ ├── 子报表1(subreport_table1) │ └── 查询 table1 WHERE keyword = '${keyword}' │ └── 子报表2(subreport_table2) └── 查询 table2 WHERE keyword = '${keyword}' ``` --- ## ✅ 子报表的优点 - 可以复用已有的报表模板 - 分离关注点,主报表只负责布局和参数传递 - 支持不同数据源、不同结构的数据展示 --- ## ❗ 注意事项 - 子报表必须先保存为独立模板 - 参数名必须一致且已定义 - 子报表不支持直接动态 SQL(除非使用脚本) - 子报表性能取决于数据量和复杂度 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值