文章目录

  • 前言
  • 简介
  • 官网与源码下载地址
  • 准备工作
    • 1.下载
    • 2. 数据库准备
  • 发行版的配置与启动
    • 1. 修改 bootstrap.yml
    • 2. 修改 start.bat
    • 3. 启动与访问
  • 源码的配置与启动
    • 1. IDEA 导入项目
    • 2. 后端启动
    • 2. 前端启动
  • 我所踩过的坑
    • 1. 除 mysql 之外的驱动问题
    • 2. 请求超时问题
    • 3. 空值导致的空指针异常
    • 4. 表字段长度不够
    • 5. 导出文件失败
  • 总结

前言

项目里面需要用到这个 AJ-Reprot 生成动态的大屏报表,这两天也研究了下,觉得是个挺不错的开源项目,遂即整理一下以作分享。


不多说,初学者最懂初学者


简介


在线体验:https://report.anji-plus.com/index.html

体验账号:guest

密码:guest

官方文档是这么介绍的:

  • AJ-Report是一个完全开源的BI平台,酷炫大屏展示,能随时随地掌控业务动态,让每个决策都有数据支撑。
  • 多数据源支持,内置mysql、elasticsearch、kudu等多种驱动,支持自定义数据集省去数据接口开发,目前已支持20种大屏组件/图表,不会开发,照着设计稿也可以制作大屏。
  • 三步轻松完成大屏设计:配置数据源---->写SQL配置数据集---->拖拽配置大屏---->保存发布。

按我的说法解释就是你可以用这个开源的项目,在这上面配好数据,写好 sql(数据集),就能够直接设计报表,并且能够动态的预览报表,并且支持导出。

以上我就直接 copy 官方文档所介绍的了,文档地址下面我也有提供,建议先看看官方文档,已经很详细了 ~~

官网与源码下载地址

gitee 下载:https://gitee.com/anji-plus/report/releases

官方文档:http://192.168.98.2:14000/

准备工作

1.下载

根据上面提供的 gitee 下载 链接进去下载就完事

呈现在最上面的就是最新版本的,旧版本往下拉就可以找到,这边下载有三个,简单介绍一下:

  1. aj-report-xxxx.zip 这个是发行版,windows 下载之后改下配置可以直接运行 .bat 文件启动
  2. Source code (zip) 如果你想在 windows 下看源码或者启动就下载这个
  3. Source code (tar.gz) 如果你想直接在 linux 下运行就下载这个

linux 上的我就不做示范了,我就下载前两个玩玩

下载发行版和源码之后解压

2. 数据库准备

首先你总得有个数据库对吧,如果你没有数据库的话,以下我也提供一个本地 mysql 数据给大家学习(有的话恭喜你可以跳过这一步)

windows 下 mysql-5.7.17.msi 的安装包下载
链接:百度网盘地址
提取码:5lxo

这个安装步骤就不赘述了,基本上就是傻瓜式安装了

发行版的配置与启动

如果你是作为开发人员,启不动启动这个发行版都没关系,反正学习还得用到源码,它就是能够让你更好更快速的了解 AJ-Report,这里为什么我会加上这个,因为有些大数据的工作者可能没必要看源码,用这个发行版的玩玩,熟悉下。

双击进入该目录

1. 修改 bootstrap.yml

首先需要来到配置文件目录 conf 下修改 bootstrap.yml 文件的配置(建议自己看下该配置文件,开发人员很多配置都很良心的加上了注释)

这里要修改的地方就是数据库的配置了,改成你自己的,保存

注意

  • aj_report库是存放底层基础信息的库,flyway启动时会自动建立,如果你在这里修改了库,将会出错
  • 请确认你的Mysql是否支持远程连接,登陆用户是否有DDL权限

2. 修改 start.bat

再修改 bin 目录下的 start.bat ,以文本的形式开打编辑


把这个 rem 注释给删掉,配上你自己 jdk 的配置


如何查看 JDK 的配置?

此电脑 -> 鼠标右键选择 “属性” -> 高级系统设置 -> 高级-环境变量 -> 系统变量 - java_home


所以我这里就是
rem set JAVA_HOME=D:\App\Java\jdk1.8.0_172
改成 set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_172

注意:如果你JAVA_HOME 的配置存在空格,则还需要将最下面 JAVA_HOME 加上 " "

3. 启动与访问

双击 bin 目录下的 start.bat 文件直接启动即可


并且可以看到启动后会直接往你的数据库中增加 aj_reportaj_report_init 两个 database


启动完之后就可以直接本地访问,至于这里面的功能,自己多点点就明白了,发行版不做详解 ~~

地址:http://localhost:9095

账号:admin
密码:123456

源码的配置与启动

1. IDEA 导入项目

导入之后是这样的



其中 report-core 是后端代码,report-ui 是前端代码

2. 后端启动

这个项目是用 springboot 搭建,所以后可以直接去运行启动类,但是前提是需要配置下 bootstrap.yml 文件


可以把这三个 bootstrap 文件的数据库都改成你所使用的数据库

比如说我本地的数据库,就这样改了:

  datasource:url: jdbc:mysql://localhost:3306/aj_report?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=falseusername: rootpassword: root

运行启动类:


启动成功:


并且可以看到启动后会直接往你的数据库中增加 aj_reportaj_report_init 两个 database

2. 前端启动

前端的启用需要用到 node ,如果你没有下载 node,以下我也提供了我目前正在使用 node,安装也是傻瓜式安装,不做赘述了。

windows 下 node-v14.16.0-x64.msi 的安装包下载
链接:百度网盘地址
提取码:knw5

前端启动不管你用 webstorm 还是 visual studio code 或者是其它前端工具也好,都差不多,我这里就不那么麻烦了,也用 IDEA 启动算了

点击下面的 Terminal


依次输入以下三条命令:
cd report-ui : 刚进入应该是在 report-Vxxx 下,cd 进入 report-ui
npm install : 安装前端所需要的依赖包
npm run dev :运行前端



看到这样子就表示你前端也启动成功了

访问地址:http://localhost:9528

账号:admin
密码:123456

我所踩过的坑

以上的安装启动都是常规,一般看着官方文档都能做到,关键是使用之后所遇到的问题,官方文档中可就没有了,以下我就梳理了我在使用的时候遇见的问题以及处理的方式。

1. 除 mysql 之外的驱动问题

在报表设计中,我们可以配置不同的数据源


不同的数据源有不同的驱动类,比如 mysql 的驱动类是 com.mysql.cj.jdbc.Driver ,mssqlserver 的驱动类是 com.microsoft.sqlserver.jdbc.SQLServerDriver,在后端的 .pom 文件中有些驱动类的依赖是没有的,需要我们自己去添加,要不然运行该数据中的 sql 就会报错,比如我这里有个数据库的类型是 mssqlserver


我这里就新增一个数据集,选用的是 mssqlserver 这个数据库

可以看到点击预览就报错了,后台错误日志信息如下:


大概意思就是 Jdbc 获取连接池时出现问题了,解决方法就是根据 数据库 对应的驱动类添加对应的 依赖,我这里连的数据库是 mssqlserver ,所以我在 .pom 文件添加 mssqlserver 对应的依赖即可

        <!-- mssqlserver 对应的驱动类 --><dependency><groupId>com.microsoft.sqlserver</groupId><artifactId>mssql-jdbc</artifactId><version>8.2.2.jre8</version></dependency>

maven 一下,重启项目即可。

2. 请求超时问题

如果你的 sql 写得比较复杂,或者查询效率比较慢,又或者报表结构过于复杂等等原因导致请求超时,前端会提示 timeout 20000ms exceeded,后端会提示:你的主机中的软件中止了一个已建立的连接,后台错误日志信息如下:

这个错误的出现的原因就是前端限制了 20000 ms,如果在这个时间内后端还没有响应的话,前端就拒绝接收了后端返回的数据了,而后端传着传着,前端把门都给关了,能不报错吗?解决方案就是将前端设置的 请求超时时间 调大一点,修改 report-ui 下 src\utils\request.js 文件中的 timeout,再重启下前端就行

3. 空值导致的空指针异常

数据集中的 sql 语句如果对 空值 没有做处理的话,就可能出现空指针异常,比如点击 预览,前端展示 系统异常



后端就是:java.lang.NullPointerException: null


根据后台错误日志可以看到是 ReportExcelServiceImpl.java:336 这一行代码抛出的,可以点击找到对应的地方,是 fieldLabelnull 导致的,解决方法就是要么 sql 对那些 空值 给个默认的 值,要么就直接改后端的代码,比如:


代码如下(示例):

// 如果 fieldLabel 为 null ,就设置成 " "
if (fieldLabel==null) {fieldLabel = " ";
}
String replace = v.replace("#{".concat(dataSet.getSetCode()).concat(".").concat(dataSet.getFieldLabel()).concat("}"), fieldLabel);

重启后端,即可解决。

4. 表字段长度不够

这个也是比较常见的问题,解决方案很简单,就是找到对应的表扩容字段即可

5. 导出文件失败

这个就是你使用导出功能没有配置路径的原因了,换个你电脑上有的路径

比如说我把 dist-path 改成 dist-path: D:\download,使用导出功能的时候就放到我 D 盘下的 download 目录下了

总结

以上就是我这两天学习 AJ-Ropert 的收获以及解决的问题。

AJ-Report 初学(入门教程)相关推荐

  1. 可见的轮廓线用虚线绘制_CAD制图初学入门教程:CAD软件中如何绘制轴测图?

    在使用浩辰CAD软件绘制图纸的过程中经常会需要绘制轴测图,但是有些CAD制图初学入门者不知道如何在CAD制图软件中绘制轴测图,下面小编就来给大家分享一下浩辰CAD软件绘制轴测图的CAD制图初学入门教程 ...

  2. CAD制图初学入门教程:CAD怎么复制?

    有一些刚开始进行CAD制图初学入门学习的小伙伴不知道CAD怎么复制,其实是很简单的,只需要使用浩辰CAD软件中自由复制功能即可.接下来就和小编一起来看看国产CAD制图软件--浩辰CAD建筑软件中自由复 ...

  3. CAD制图初学入门教程:CAD图纸目录的使用

    很多CAD制图初学入门者在使用国产CAD软件绘制图纸的过程中,不知道该如何使用图纸目录.为了让大家能更深入的了解浩辰CAD建筑软件的使用.下面就来以国产CAD软件--浩辰CAD建筑软件为例来给大家详细 ...

  4. CAD制图初学入门教程:CAD机械软件中如何自定义参数栏?

    很多人CAD制图初学入门者不知道如何使用浩辰CAD机械软件来自定义参数栏,今天小编就来给大家分享一下在浩辰CAD机械软件中自定义参数栏的CAD制图初学入门教程吧! 在浩辰机械CAD软件中自定义参数栏首 ...

  5. CAD制图初学入门教程之立剖网格

    很多刚开始CAD制图初学入门学习的小伙伴不知道浩辰CAD建筑软件中的立剖网格功能该如何使用,所以接下来小编来给CAD制图初学入门的小伙伴介绍一下立剖网格的应用,小编使用的是非常好用的CAD软件--浩辰 ...

  6. cad怎么向下位移_CAD制图初学入门教程:阵列功能的使用技巧

    阵列在浩辰CAD软件中也是比较常用的功能之一,但是有些CAD制图初学入门者对此并不是很了解.那么在浩辰CAD软件中阵列功能怎么用呢?接下来就给大家分享一些关于阵列功能的CAD制图初学入门技巧吧! 首先 ...

  7. cad制图初学入门_CAD自学不要怕,这里有你需要的CAD制图初学入门教程!

    使用CAD软件绘制CAD图纸的过程中,每位设计师都有自己操作习惯.那么作为一个CAD制图初学入门者该如何绘图呢?下面给大家汇总一些CAD制图初学入门必备的关于CAD复制粘贴功能使用技巧! 一.复制CO ...

  8. cad旋转命令_CAD制图初学入门教程:CAD软件中旋转命令的使用技巧

    在CAD软件中,旋转是最基础的编辑命令,基本操作也没有什么难度,但相对比移动就复杂一些,而且有更多的技巧,对于很多CAD制图初学入门者来说,这个命令也是需要掌握的,下面就给大家介绍一下CAD制图入门学 ...

  9. CAD中 OLE不能旋转_CAD制图初学入门教程:阵列功能的使用技巧

    阵列在浩辰CAD软件中也是比较常用的功能之一,但是有些CAD制图初学入门者对此并不是很了解.那么在浩辰CAD软件中阵列功能怎么用呢?接下来就给大家分享一些关于阵列功能的CAD制图初学入门技巧吧! 首先 ...

  10. CAD自学不要怕,这里有你需要的CAD制图初学入门教程!

    使用浩辰CAD软件绘制CAD图纸的过程中,每位设计师都有自己操作习惯.那么作为一个CAD制图初学入门者该如何绘图呢?下面给大家汇总一些CAD制图初学入门必备的关于CAD复制粘贴功能使用技巧! 一.复制 ...

最新文章

  1. IE7下元素的 'padding-top' 遇到 'clear' 特性在某些情况下复制到 'padding-bottom'
  2. C#的简单不安全双向“混淆”
  3. 开发日记-20190402
  4. poj 1797(最短路变形)
  5. ASP.NET生成验证码
  6. Windows10 任务栏图标如何居中
  7. Active Directory 灾难恢复
  8. 一键导出所有微信联系人的小工具,搞私域、搞网销客户交接时可能可以用到,【微信通讯录抽水机】
  9. 【SQL基础】SQL查询语句实例
  10. matlab如何泰勒公式用求近似值_泰勒公式在生活中的应用.doc
  11. VBA批量标色删除两列重复值
  12. 轻音乐-Bandari(班得瑞)
  13. PC 网易云音乐桌面歌词原版天际蓝配色方案
  14. 计算机ppt放映方式怎么改,ppt打开方式设置怎么设置
  15. 2022淘宝天猫京东头部主播消失后的618没有头部主播怎么领618红包?
  16. 特殊符号,emoji表情,四字节去除问题
  17. 多传感器融合定位 第四章 点云地图构建及基于点云地图定位
  18. php许愿墙mysql_基于Apache+php+mysql的许愿墙网站的搭建
  19. win7瘦身,关闭虚拟内存,页面文件,休眠
  20. Java开发者XML基础(一)

热门文章

  1. 异构网络-元图、知识图谱
  2. html涟漪效果,涟漪效果.html
  3. 奖励来了!四川省中央引导地方科技发展资金认定条件范围及申报奖励补贴
  4. 微信公众号运营,如何有效的推广
  5. 科学革命——承认自己无知的革命
  6. 如何从GitHub上面下载Java项目,并用IDEA导入该项目跑起来?
  7. outlook 签名_Outlook 2007中的电子邮件签名礼节-适当的Flair
  8. 芯片设计五部曲之二 | 图灵艺术家——数字IC
  9. 聚观早报 | 百度文心一言被用户挤爆;贝莱德准备竞购瑞信
  10. Entrust Datacard新一代再转印证卡打印机系列喜获蓝盾杯创新奖