前言
目前市面上有很多比较好的报表工具,但很多收费都比较昂贵,这次找到一个开源免费的报表工具。推荐企业内部开发使用
积木报表虽然没有FineReport那么功能强大,但是目前测试下来也可以满足大部分报表功能。也是能缩短开发周期降低开发成本的。
积木报表的开源协议是LGPL v2.1,如果要商业使用,最好确认一下协议细节,是否存在法律风险。大家也可以直接参考积木报表的官方文档。
项目环境
若依框架单体架构-Oracle版
SpringBoot 2.5.6,JDK8
安全框架为Shiro 1.9
安装
数据库初始化
如果数据库是MySQL,可以直接使用官网的初始化脚本:jimureport.mysql5.7.create.sql
如果不是MySQL,需要使用数据库转换工具。例如:Navicat
我的项目是Oracle的,我使用的是Jeecg-boot的Oracle脚本,里面也有积木报表的脚本。
数据库初始化成功之后,应该会有如下表。
依赖引入
项目pom.xml
<!-- 积木报表 -->
<dependency>
<groupId>org.jeecgframework.jimureport</groupId>
<artifactId>jimureport-spring-boot-starter</artifactId>
<version>1.5.8</version>
</dependency>
<!-- oracle驱动 -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.3</version>
<scope>runtime</scope>
</dependency>
启动类修改
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@EnableAsync(proxyTargetClass = true)
@EnableTransactionManagement
@ComponentScan(value = {"com.ruoyi", "org.jeecg.modules.jmreport"})
public class AgileExtApplication {
public static void main(String[] args) {
// System.setProperty("spring.devtools.restart.enabled", "false");
SpringApplication.run(AgileExtApplication.class, args);
System.out.println("(♥◠‿◠)ノ゙ Ext-启动成功! ლ(´ڡ`ლ)゙ \n");
}
}
ShiroConfig加入url过滤
filterChainDefinitionMap.put("/jmreport/**", "anon");
启动项目之后访问:http://项目ip:端口号/jmreport/list。会看到如下界面:
报表使用
新建报表
点击“新建报表”,然后在左侧数据集管理的“+”号,填入准备好的sql。点解析。
系统会自动解析sql语句中包含的字段,并出现在报表数据字段明细中。
报表字段配置
查询栏位打勾的代表这个字段将做为报表查询条件。
如果是下拉框型的查询条件,还可以配置字典code。
- 字典code如果是一个普通字符串,那代表这是一个积木的字典项code。
- 字典code也可以是一个SQL语句,但查询结果必须包含value和text两列。例如:select id as value,description as text from lifecycle
另外对于配置了字典code的字段,在报表结果展示时,系统也会将字段值去字典中匹配text来显示。例如:class如果等于10000,就会到字典中将其转换成部件显示在界面中。
报表设置
在中间的表格中编辑好报表的样式,然后将左侧sql的字段一个个拉到报表对应的字段中。
都配置好后,点保存,然后可以预览报表效果。
报表预览
点开查询栏,可以看到:生命周期,分类,子分类为下拉框,里面的值根据配置的SQL读出
自带分页,导出pdf,Excel功能,无序额外开发。这个工具栏显示哪些按钮也是可配置的。