报表设计调研分享

公司结算系统要做一个内部报表,想自己开发,调研了市面上一圈报表,快把github翻烂了,也没找到一个合适的。
之前给做过一个自定义sql查询的,但最终是因为系统太过复杂,导致最终sql复杂到没法写了,而且超级大的sql,特别不好维护。
现在把之前的调研结果分享出来,希望后人少走弯路。

收费的:

  1. 帆软报表目前市场占有率好像最高,功能较为齐全,适应大多数行业的功能,
    价格较贵,基础版价格:80000元/服务器,高级版价格:500000/服务器
    软件下载地址:http://www.finereport.com/products/trial
    集成文档:https://www.cnblogs.com/liubo68/p/10212517.html
  2. 润乾报表传统报表的代表,功能也比较强大,展示方面略显不足,整体美观度差一些
    也有初级免费版:http://c.raqsoft.com.cn/article/1543913283529 商用最便宜
    软件下载地址:http://www.runqian.com.cn/
    demo演示:http://report5.raqsoft.com.cn/
    帆软简单易用,无需开发也可以制作出报表,页面美观,API丰富,但价格较贵,适合现场运维人员根据需求直接制作报表;
    润乾门槛高,页面没那么美观,性能更优,性价比高,适合有专业报表团队处理复杂报表。

免费的:

  1. iReport +JasperReports是一个开源报表,功能较单一,使用略微繁琐,展现美观度较差。唯一优势可以自己改造。
    软件下载地址:http://www.open-open.com/ JasperReport官方页:
    http://community.jaspersoft.com iReport
    官方页:http://community.jaspersoft.com/project/ireport-designer
    JasperReports是一个基于Java的开源报表工具,它可以在Java环境下像其它IDE报表工具一样来制作报表。JasperReports支持PDF、HTML、XLS、CSV和XML文件输出格式。
    iReport是为JasperReports设计的强大的,直观的,易于使用的可视化报表设计器采用纯Java开发。这个工具允许用户可视化编辑包含charts,图片,子报表等的复杂报表。
    但资料较少,出了问题难查找,设计器调整报表格式麻烦。
  2. JFreeChart 是一款易于扩展的纯Java编写绘图图库,
    使用它可以生成线图、柱状图、饼图、曲线图、面积图、甘特图、仪表盘、混合图等多种图表,并可将图表输出为PNG、JPEG图片。
    JFreeChart官方页:http://www.jfree.org 英文的,社区不稳定
  3. BIRT 是基于 Eclipse 的一款开源报表,创建数据的可视化和报表,可以嵌入到富客户和Web应用程序。
    BIRT主要由两部分组成:一个用于创建BIRT设计的可视化报表设计器,以及可以部署到任何java环境运行时组件。BIRT项目还包括一个图表引擎,可集成到BIRT的一个应用程序图表。
    BIRT官方页:http://www.eclipse.org/birt 开源免费 英文的,汉化包不稳定,pass
  4. RDP报表工具是一款基于java web实现的报表工具,是唯一一款通过web页面设计报表的工具,感觉挺新颖的,功能性和报表
    的展现美观度还不错。商用免费的一款报表工具。 软件下载地址:http://product.mftcc.cn/rdp/
    excel既视感,pass
  5. EasyReport 项目简介:EasyReport 是一个简单易用的 Web 报表工具,它的主要功能是把 SQL
    语句查询出的行列结构转换成 HTML 表格(Table),并支持表格的跨行(RowSpan)与跨列(ColSpan)。
    同时它还支持报表 Excel 导出、图表显示及固定表头与左边列的功能。
    项目地址:https://gitee.com/xianrendzw/EasyReport 只有表格,没有图表,pass
  6. UReport2项目简介:UReport2 是一款高性能的架构在 Spring 之上纯 Java
    报表引擎,通过迭代单元格可以实现任意复杂的中国式报表。 在 UReport2 中,提供了全新的基于网页的报表设计器,可以在
    Chrome、Firefox、Edge 等各种主流浏览器运行(IE浏览器除外),打开浏览器即可完成各种复杂报表的设计制作。
    项目地址:https://gitee.com/youseries/ureport 纯表格,pass
  7. CBoard项目简介:CBoard 由上海楚果信息技术有限公司主导开源, 它不仅仅是一款自助BI数据分析产品,
    还是开放的BI产品开发平台: 用户只需简单妥妥拽拽就能自助完成数据多维分析与报表设计
    开发者能够简单扩展连接所有你的Java程序能够触及的数据 项目地址:https://gitee.com/tuiqiao/CBoard
    纯java,tomcat启动,没有前后端分离,pass
  8. Reportico项目简介:Reportico
    是一个报表设计工具,可用来设计报表、创建报表菜单和配置,支持图形、分组、下钻、表达式处理和数据转换,可导出 HTML、PDF 和 CSV
    格式,可通过 CSS 修改报表外观。 项目地址:https://gitee.com/luob/reportico
    php搞的,pass
  9. 用 Vue 撸的数据可视化后台(前台根据选项,拼成查询sql,数据权限可以通过重写后端实现,包括功能权限)
    https://www.v2ex.com/t/575324 https://vislib.best/
    https://docs.vislib.best/
    https://github.com/dongsuo/vue-data-board
  10. http://boot.jeecg.com Jeecg-boot
    一个全新的版本,采用前后端分离方案,提供强大代码生成器的快速开发平台
    前端页面代码和后端功能代码一键生成,不需要写任何代码,保持jeecg一贯的强大!!
  11. granafa
    https://grafana.com/docs/grafana/latest/features/navigation-links/
    带参数链接
  12. sqlpad npm install sqlpad -g sqlpad --dbPath
    D:\Users\curry.zhang\others\db --port 3010 --debug --baseUrl
    /sqlpad
  13. https://github.com/lycodestore/dbhelper mysql图形管理工具,采用Springboot
    2.1.6和Vue 2.6.10开发,以可视化的方式完成mysql的增删改查等操作 采用Springboot + Vue开发的mysql可视化管理工具,使用它可以用图形界面完成增删查改等常用的数据库操作。
    看看源码,其实很简单,后台就是一个jdbc的查询,把数据库连接放在cookie中,前端vue

方案

方案1:

https://vislib.best/
前端嵌入源码(也是vue),后端重写接口

方案2:

搭一个granafa服务
系统使用granafa外链,数据权限用链接参数

方案3:

http://boot.jeecg.com/online/cgform
系统相对复杂,所以提炼报表功能,相对会复杂

方案4:

纯手写,精简版
前端:	创建图表(图表name,执行sql模板,表头信息,排序等),只有管理员可配置查询条件,配置数据存后端一个表中查看图表,调后端sql执行接口,获取数据,根据图表配置信息渲染。
后端:图表增删改查接口。执行接口:入参sql,出参dataList。

参考:

  1. 总结5个比较好用的JAVA报表工具:https://blog.csdn.net/n15642656987/article/details/80833233
  2. BIRT报表VS润乾报表之初体验:https://blog.csdn.net/rqlyc/article/details/85048072
  3. Java 报表工具选择:https://blog.csdn.net/meism5/article/details/89684487
  4. 6款实用开源报表工具:https://blog.csdn.net/weixin_34303897/article/details/89618117
  5. 推荐几款流行的开源报表工具:http://www.anyrt.com/blog/sourcereport.html
  6. 报表开发专题:https://www.evget.com/topic/13
  7. 人人都在找的一款免费JavaWeb报表工具(RDP报表):https://blog.csdn.net/weixin_44829859/article/details/88795037

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

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

相关文章

java 调用groovy脚本,实现多个sql按指定逻辑运行,可做报表预聚合

java 调用groovy脚本&#xff0c;实现多个sql按指定逻辑运行&#xff0c;可做报表预聚合 1、引入pom <dependency><groupId>org.codehaus.groovy</groupId><artifactId>groovy</artifactId><version>2.1.6</version></dependenc…

互联网技术部门该如何管理

互联网技术部门该如何管理 一、敏捷开发 1.快速开发、快速迭代。 2.组件式开发&#xff0c;避免重复造轮子。 3.制定代码标准。 4.并行开发&#xff0c;高效配合。 5.单元测试必须覆盖所有核心业务。 二、DevOps流程建立起来 1.建立三套环境&#xff1a;测试、SandBox、…

分布式基础

四大基础理论 拜占庭将军问题 CAP 理论 为什么CAP不能同时满足的简单理解 ACID 理论 BASE 理论 八大分布式协议和算法 Paxos 算法 Raft 算法 [分布式一致性协议] ------ raft协议的解释与理解 一致性 Hash 算法 hash和一致性hash Gossip 协议算法 Quorum NWR 算法…

java file.renameTo返回false的原因记录

需要对文件夹下的文件重命名&#xff0c;发现返回false了&#xff0c;先用main方法测试&#xff0c;发现没问题&#xff0c;如下 public static void main(String[] args) throws IOException {File file1 new File("D:\\aabb.xml");File file2 new File("D:\…

若依前后分离项目,发布在阿里云效中

后端服务 配置代码源 配置构建信息 mvn -B clean package -pl ruoyi-admin -am -Dmaven.test.skip=true -Dautoconfig.skip 项目名称和pom文件中保持一致,都叫ruoyi-admin

mysql 使用id in(‘1,2‘) 的时候,只能查到id=1的数据的解决方法

mysql 使用id in(‘1,2’) 的时候&#xff0c;只能查到id1的数据的解决方法 前提&#xff1a; t_user表有两条数据&#xff0c;id分别是1和2 场景1 查询&#xff1a;select * from t_user where id in(1,2) 结果&#xff1a;两条数据 正常 场景2 查询&#xff1a;select …

JVM基础知识汇总

1.jvm是什么 Java Virtual Machine&#xff08;Java虚拟机&#xff09;,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的. 本文jvm是基于jdk7写的,关于jdk8的jvm,和jdk7的稍有不同,详见文章末尾链接 2.jvm能做什么 java语言之所以可以跨平台,就…

java程序员常用查询和学习的网站

常用的一些程序员相关网站,在这里记录下,大家一起学习 置顶&#xff1a; 唯品会java开发手册&#xff08;基于阿里巴巴java开发手册&#xff09; pdf转word&#xff08;推荐用这个&#xff0c;国外的&#xff09; pdf转word&#xff08;国内的这个有大小限制&#xff09; 1.生成…

Longest Palindromic Substring Part II

Longest Palindromic Substring Part II 给定一个字符串 S, 找出字符串S中的最长回文子字符串. 注意: 这是关于:Longest Palindromic Substring.的第二篇文章了.在这里,我们讨论一种可以再线性时间内找到字符串中最长回文子字符串的一种算法(Manacher’s algorithm).请先阅读第…

Java反射基础(一)--Class对象获取

Classes Java中,任何一个对象要么是一个引用类型要么是基本数据类型.引用类型指的是那些直接或间接 Java.lang.Object的类.Classse,enum,和接口都是应用类型.基本类型是一个固定的集合,它包括: boolean, byte,short, int, long,char,float, double. java.lang.String和所有的基…

Java反射基础(二)--Fileds对象的使用

在说Filed之前,我们先来了解一下Member接口. 反射中定义了一个接口 java.lang.reflect.Member . java.lang.reflect.Field, java.lang.reflect.Method, 和java.lang.reflect.Constructor 都实现了该接口.我们将在接下来的部分介绍这些类.对于每个Member, 我们都会介绍相关的API…

Java反射基础(三)--Methods对象的使用

Method 原文地址:http://docs.oracle.com/javase/tutorial/reflect/member/method.html 1.获得方法类型信息 一个方法的声明包括方法名,修饰符, 参数, 和返回类型,同时还有一些方法可能抛出的异常. 类 java.lang.reflect.Method 提供了一种方式让我们可以得到方法的这些信息. …

Guice基本用法

本文适合对依赖注入有相对了解的读者&#xff0c;文章中对于部分名词未作详细解释。对于没有恰当的中文与之对应的英文内容&#xff0c;遂未翻译 Guice简介 Guice 简介&#xff0c;本文中的内容也是参考该文档完成&#xff0c;如有不一致&#xff0c;以该文为准。 快速上手 …

Guice之Servlet基础

如果读者对于Guice没有大体的了解&#xff0c;可以参考本人的另一篇Guice基础文章 Guice 提供了一个完整的体系使得我们在web应用中也可以使用它作为依赖注入的工具. 为什么使用 Guice : 使用Guice的好处: 构造函数注入类型安全的, 方便的配置方式(只需要在web.xml中进行很…

矩阵 I : 矩阵基础

学习机器学习, 基础的线性代数知识是必备的基础功, 对于线性代数的探索, 矩阵是线性代数的主要研究对象. 今天我们就开始学习一下矩阵的基础知识. 这是本人关于线性代数矩阵的第一篇分享. 章节目录 矩阵及其基本运算 1.1 矩阵定义 1.2 矩阵基本运算(,-,*) 1.3 转置矩阵 1…

矩阵 II : 线性组的线性相关性

学习机器学习, 基础的线性代数知识是必备的基础功, 对于线性代数的探索, 向量组也是线性代数的重要基础. 今天我们就开始学习一下线性代数中重要的向量组知识. 这是本人关于线性组的线性相关性的学习分享. 章节目录 相关性基本概念 1.1 相性相关和线性无关 1.2 相性相关性的…

汇编语言笔记(一):基础

章节目录 简单程序 使用段简单字符串处理程序使用 bx, si, di, bp 寄存器寻址寻址方法指明数据长度div指令 作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢! 本文中所有程序均在DOSBox下使用MASM, LINK编译运…

汇编学习笔记(二):转移指令

章节目录 转移指令原理 jmp 指令 jcxz 指令 loop 指令 ret 和 retf 指令 call 指令 callret 作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢! 本文中所有程序均在DOSBox下使用MASM, LINK编译运行 转移指令…

汇编语言笔记(三): 标志寄存器

章节目录 简介 ZF 标志寄存器PF 标志寄存器SF 标志寄存器CF 标志寄存器OF 标志寄存器几条相关指令DF 标志寄存器PUSHF and POPF 标志寄存器 作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢! 简介 8086 CPU…

汇编语言笔记(四):内中断

汇编语言笔记:内中断 章节目录 概念 中断过程示例: 0 号中断处理 作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢! 概念 中断信息: 任何一个通用 CPU 都具备一种能力, 可以在执行完当前正在执行的指令之…