SpringBoot 集成积木报表

news2024/11/15 8:24:35

SpringBoot 集成积 

前言

积木报表是jeecg的一款开源但代码不开源的一款自定义报表,可以基于网页灵活 调整报表的布局、样式等内容,无需编程,专为企业数据分析、报表制作而设计; 降低管理人员汇总制作报表的门槛,解决各类日常管理和汇报的难题。但是因为 代码不开源所以,很多公司商用时会因为积木报表logo、tilte、路由等陷入尴尬局 面,本文基于SpringBoot实现整合积木报表,实现自有化报表项目集成。 文章末尾附带源码。因为有代码展示,所以建议PC端打开浏览。

干货

  1. 搭建SpringBoot项目
    idea中选择File-New-Project
    选择Spring Initializr、选择对应的JDK版本、点击Next

输入项目名称,包名等 点击Next

跳过选择默认依赖这一步,直接Next

选择项目存放路径,然后点击Finish 至此SpringBoot项目创建结束。

2. 配置Maven依赖 删除多余配置依赖,只保留项目配置依赖

添加报表所需配置依赖

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.4.5</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <java.version>1.8</java.version>
    <!-- DB驱动 -->
    <postgresql.version>42.2.6</postgresql.version>
    <ojdbc6.version>11.2.0.3</ojdbc6.version>
    <sqljdbc4.version>4.0</sqljdbc4.version>
    <mysql-connector-java.version>8.0.20</mysql-connector-java.version>
    <minio.version>8.0.3</minio.version>
</properties>

<dependencies>
    <!-- JimuReport -->
    <dependency>
        <groupId>org.jeecgframework.jimureport</groupId>
        <artifactId>spring-boot-starter-jimureport</artifactId>
        <version>1.3.1-beta4</version>
    </dependency>

    <!-- SpringBoot-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-freemarker</artifactId>
    </dependency>

    <!-- minio oss-->
    <dependency>
        <groupId>io.minio</groupId>
        <artifactId>minio</artifactId>
        <version>${minio.version}</version>
        <optional>true</optional>
    </dependency>

    <!-- 数据库驱动 -->
    <!--mysql-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${mysql-connector-java.version}</version>
        <scope>runtime</scope>
    </dependency>

    <!--Spring-Data-JPA依赖-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.6</version>
        </plugin>
    </plugins>
</build>


3. 配置yml文件

server:
  port: 8080
spring:
  #配置静态资源
  mvc:
    static-path-pattern: /**
  resource:
    static-locations: classpath:/static/
  #数据库连接
  datasource:
    username: root
    password: 1234
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://${MYSQL-HOST:ip}:${MYSQL-PORT:port}/${MYSQL-DB:db}?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true
#JimuReport[minidao配置]
minidao :
  base-package: org.jeecg.modules.jmreport.desreport.dao*
  db-type: mysql
#JimuReport[上传配置]
jeecg :
  # local|minio|alioss
  uploadType: local
  # local
  path :
    #文件路径
    upload: /opt/upload
  # alioss
  oss:
    endpoint: oss-cn-beijing.aliyuncs.com
    accessKey: ??
    secretKey: ??
    staticDomain: ??
    bucketName: ??
  # minio
  minio:
    minio_url: http://minio.jeecg.com
    minio_name: ??
    minio_pass: ??
    bucketName: ??
#输出sql日志
logging:
  level:
    org.jeecg.modules.jmreport : debug


4. 启动类添加扫包注解

@SpringBootApplication(scanBasePackages = {"org.jeecg.modules.jmreport", "com.report.customize"})

5. 启动项目 访问打印的链接,即可访问报表设计页面

6. 报表设计器自定义修改
打开本地Maven仓库
找到
org\jeecgframework\jimureport\spring-boot-starter-jimureport\1.3.1-beta4
积木jar包

使用2345好压打开jar
打开templates目录下jmreport目录下desreport
编辑demo、index、list 三个ftl文件(右键内部编辑器打开)

替换原积木title为需要的title名称(例如:XXX报表设计器)

编辑后保存,关闭内部编辑器 压缩软件提示修改保存,点击确定,保存修改,后续操作同 理

三个文件(共4处)都修改好以后,返回idea重启项目,再次访问列表页,即发现title已修改为自定义。

tile的logo与报表icon资源在 static目录下jmreport目录下desreport_目录下的corelib目录中
jiade.jpg 是报表icon、logo.png为title的logo
有需求可以自己替换

打开static目录下jmreport目录下desreport_目录下js目录下core目录

打开api.js

将对应的jmreport改为你需要展示的路由名称(例如:report)

7. nginx配置代理

 
server {
  # 需要被监听的端口号,前提是此端口号没有被占用,否则在重启 Nginx 时会报错
  listen       9102;
  # 服务名称,无所谓
  server_name  report;
  #监听report请求
  location /report {
    # 后端的真实接口
    proxy_pass http://ip:port/jmreport;
    #proxy_redirect off;
    proxy_set_header Host $proxy_host;
    #proxy_set_header X-Real-IP $remote_addr;
    #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    #proxy_set_header   Cookie $http_cookie;
  }
  #给静态资源(js、css等)请求配置实际路由
  location /jmreport {
    proxy_pass http://ip:port/jmreport;
    #proxy_redirect off;
    proxy_set_header Host $proxy_host;
    #proxy_set_header X-Real-IP $remote_addr;
    #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    #proxy_set_header   Cookie $http_cookie;
  }
}

访问nginx配置的端口与路由,即可自动转发自定义报表内容

至此自定义报表修改配置工作结束,就可以愉快的使用了

本项目地址:

customize: 基于springboot项目,集成开源自定义报表,积木报表,封装魔改实现自有化,有兴趣的小伙伴可以了解下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2067763.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在表格上,按照单元格数值显示单元格背景进度条

想要实现的效果如下&#xff1a; 单元格背景进度条的大小取决于当前单元格里的数值 TreeList和GridControl的设置方法都是相同的&#xff1a;都是通过给列设置FormatRule来实现的。 相关代码及设置如下&#xff1a; 1、给控件绑定数据源&#xff0c;我的数据源是一个DataTab…

25届网安秋招,信息泄露常问之配置信息泄露

吉祥知识星球http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247485367&idx1&sn837891059c360ad60db7e9ac980a3321&chksmc0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330#rd 《网安面试指南》http://mp.weixin.qq.com/s?…

基于STM32开发的智能花园灌溉系统

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 系统初始化土壤湿度监测与处理灌溉控制与状态指示Wi-Fi通信与远程监控应用场景 家庭花园智能灌溉农业田地的智能灌溉管理常见问题及解决方案 常见问题解决方案结论 1. 引言 随着智能家居技术…

录屏神器!一键搞定视频录制,小白也能轻松上手

在工作当中录制会议内容或者看电影录制精彩瞬间、学习时录制网课的重点部分等等都是需要借助可以实现屏幕录制的工具&#xff0c;让我们的日常更加精彩并且有回忆的记录&#xff0c;今天就来给大家整理了四款好用的录屏工具&#xff0c;实现保存高清、流畅的电脑屏幕的精彩记录…

重定向

重定向原理 #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdlib.h> int main() { close(1); int fd open("myfile", O_WRONLY|O_CREAT, 00644); if(fd < 0){ perror("o…

V-ASSISTANT软件无法设置V90伺服软限位

使用V-ASSISTANT软件配置V90伺服参数时&#xff0c;软限位功能是灰色且未勾选&#xff0c;无法设置软限位&#xff0c;如下图所示&#xff1a; 原因&#xff1a;设置零点位置之后需要在PLC中激活软限位&#xff08;如FB284中ConfigEPOS管脚的Bit2&#xff09; FB284中的Confi…

python学习之路 - pyecharts快速入门

目录 一、pyecharts入门1、pyecharts模块介绍a、概况 2、pyecharts基础入门&#xff08;以折线图为例&#xff09;a、安装依赖b、创建折线图c、常用配置项 3、pyecharts创建柱状图a、创建基本柱状图b、创建反转柱状图c、创建含有时间线的柱状图 4、pyecharts地图可视化a、生成中…

WSL-ubuntu下载安装配置cudnn

下载 安装cuDnn的话需要和CUDA版本对应&#xff0c;可参考官网&#xff1a; cuDNN Archive | NVIDIA Developer 我的cuda是11.8 这个cuDNN8.9.7_Linux直接下载&#xff1a; https://developer.nvidia.com/downloads/compute/cudnn/secure/8.9.7/local_installers/11.x/cudn…

无人机技术的最新进展及未来趋势

一、飞行控制技术的提升 复杂环境下的稳定性&#xff1a;现代无人机在飞行控制系统方面的升级&#xff0c;使其能在复杂环境中稳定飞行&#xff0c;例如强风条件下或狭窄空间内。 智能避障系统&#xff1a;新型无人机配备有高精度的传感器和先进的算法&#xff0c;能够实现自…

vue3快速入门(一)新建项目与安装插件

步骤很详细&#xff0c;直接上教程 在对应路径下&#xff0c;cmd输入npm create vuelatest,然后按图所示进行选择&#xff08;仅供新手参考&#xff09; 安装以下插件 3.重启vscode&#xff08;为了确保插件生效&#xff09; 4.在vscode启动内置终端 输入npm i或pnpm i安装依赖…

浅谈 mysql 单、双引号的3种用法

mysql 单引号和双引号的使用&#xff0c;主要有以下3种情形 1、在引用字符型或日期类型的值时使用。 2、使用 as 创建别名时使用&#xff0c;别名如含特殊字符&#xff0c;则必须使用单引号或双引号。 3、解决数据原文中存在的单双引号问题。 注&#xff1a;本文所指的单、…

【Docker】Docker学习01 | 什么是docker?

本文首发于 ❄️慕雪的寒舍 因为本人没有学习过docker&#xff0c;虽然部署过很多镜像&#xff0c;但是对于docker底层的实现一概不知。趁学习一个新项目的契机&#xff0c;将docker的相关概念了解清楚。 安装docker的教程请查看 Linux主机安装docker。 如果你想和我一起学习do…

内存管理篇-02内存硬件电路和接口

1. 内存硬件实现机制 通过D触发器构建寄存器和内存的结构对比,这里主要先表达sram复杂&#xff0c;dram简单。 2. sram和ddr sdram结构图对比 主要是想对比sram和dram在和CPU连接过程的差异。sram需要的地址线较多&#xff0c;dram需要的较少&#xff0c;但是需要多次发送&…

如何用Python进行民宿数据分析?可视化工具应用教程

&#x1f393; 作者&#xff1a;计算机毕设小月哥 | 软件开发专家 &#x1f5a5;️ 简介&#xff1a;8年计算机软件程序开发经验。精通Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等技术栈。 &#x1f6e0;️ 专业服务 &#x1f6e0;️ 需求定制化开发源码提…

微信小游戏授权问题

微信小程序获取用户相关信息的接口&#xff0c;如wx.getUserCloudStorage&#xff0c;报错&#xff1a;please go to mp to announce your privacy usage。 需要在微信公众平台设置用户隐私保护。

CentoOS 7下配置并部署 DataX 3.0与DataX-web

数据同步框架 DataX DataX本身作为离线数据同步框架,采用 Framework plugin架构构建。将数据源读取和写入抽象成为Reader/ Writer插件,纳入到整个同步框架中。 Reader: Reader为数据采集模块,负责采集数据源的数据,将数据发送给 Framework。 Writer: Writer为数据写入模块,负责…

一种间距可调式在线测宽仪!

关键词&#xff1a;在线测宽仪,测宽仪,板材测宽仪,板材 我们都知道&#xff0c;在板材生产线中&#xff0c;为了应对多方市场需求&#xff0c;生产的板材规格众多&#xff0c;甚至宽度范围相差甚大。而现在应用于产线的在线测宽仪多为光学测量方式&#xff0c;这也就意味着&…

Nginx: 配置项之access模块、auth_basic模块、auth_request模块

access模块 用于限定特定IP或者是网段进行访问的&#xff0c;从而实现Nginx的一个访问权限控制这个模块&#xff0c;它仅能够针对IP或者网段的一个访问 1 &#xff09;指令集 1.1 allow 语法结构: allow address | CIDR | UNIX | all all 是放行所有address 可以是 ip 地址…

TCP的连接建立及报文段首部格式

粘包问题&#xff1a; 原因&#xff1a;TCP流式套接字&#xff1b;数据与数据之间没有边界&#xff1b;导致可能多次的数据粘到一起。 解决办法&#xff1a; 规定一些数据与数据之间的间隔符&#xff0c;如&#xff1a;"\aa\", "\r\n"。指定要发送的数据…

如何使用ssm实现游戏攻略网站的设计与实现+vue

TOC ssm052游戏攻略网站的设计与实现vue 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进行科学化&#xff0c;规范…