当前位置:   article > 正文

SpringBoot 集成积木报表_springboot集成积木报表

springboot集成积木报表

前言

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

干货

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

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

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

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

  1. 配置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>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  1. 配置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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  1. 启动类添加扫包注解
@SpringBootApplication(scanBasePackages = {"org.jeecg.modules.jmreport", "com.report.customize"})
  • 1

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

  1. 报表设计器自定义修改
    打开本地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)

  1. 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;
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

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

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

本文项目源代码:
https://gitee.com/bigearchart_admin/customize.git

如果对您有帮助 请点个关注,万分感谢

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/735132
推荐阅读
相关标签
  

闽ICP备14008679号