怎样在应用中实现自助报表功能

news2025/2/23 0:33:04

前言:大家好,我是小威,24届毕业生,在一家满意的公司实习。本篇将记录几次面试中经常被问到的知识点以及对学习的知识点总结。
本篇文章记录的基础知识,适合在学Java的小白,也适合复习中,面试中的大佬🤩🤩。
如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。
小威在此先感谢各位大佬啦~~🤞🤞
在这里插入图片描述

🏠个人主页:小威要向诸佬学习呀
🧑个人简介:大家好,我是小威,一个想要与大家共同进步的男人😉😉
目前状况🎉:24届毕业生,在一家满意的公司实习👏👏

🎁如果大佬在准备面试,可以使用我找实习前用的刷题神器哦刷题神器点这里哟
💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,我亲爱的大佬😘

以下正文开始
在这里插入图片描述
自助报表需求已经是越来越普遍,各行业的应用软件中,不管是主动还是被动,都在思考并在努力实现自助报表功能

这样做对于用户来说,可以自由灵活的去分析了解数据,不再拘泥于固定格式的数据报表,方便灵活、体验更好的同时,也能盘活更多数据的价值

对于应用软件厂商来说,则能省去很多开发和维护成本,还同时拓宽了自己的业务范围,增强了自身的竞争力

那怎么实现呢

BI 系统中通常都有这个功能,但并不在应用系统中,使用时,还得两个系统来回切换,很不方便,还是得应用系统中自己有用起来才更顺手

找一个可以被集成的自助报表组件

完全自己做还是比较困难的,工作量非常大。所以,第一步是找个现成的组件

但这一步其实挺难的,市面上有自助报表功能的产品挺多,但基本都是前面说到的完整的 BI 平台解决方案,把一个系统平台集成到另一个应用系统中,难度非常大而且还不流畅,而这些平台也没有把自助报表当成一个中间件独立的拆出来供用户来集成,所以挺难

方便被集成的,以中间件形式提供产品的,目前貌似也就润乾报表了

获取方法:

1 下载安装包并安装:http://www.raqsoft.com.cn/download/download-jsbb

2 下载开源依赖文件并替换:

http://c.raqsoft.com.cn/article/1619664848326

润乾自助报表模块是开源的,在普通安装包里替换这个文件后就可以免费使用了

集成过程

我们以方便集成的润乾报表为例来看一下集成过程

当前大部分数据信息化项目都是 java 的,润乾的自助报表是标准的 j2ee 应用,只需要把 jar 包,xml 和 tag 描述文件放到应用下就可以了,并没有什么难度

imagepng

第一步:复制jar包

imagepng

把自助报表jar包和相关文件复制到到自己应用对应的目录中

如果还有一些其他的需求,比如导出EXCEL等,再把需要的包复制一下就可以了,具体操作时可以参考文档进行

第二步:应用配置

1 把润乾web.xml中的内容抄进应用的 web.xml 文件中并按要求的顺序合并

2 在raqsoftConfig.xml配置要分析的数据源等信息

第三步:准备数据集

准备一个要用来做自助报表的数据集,我们用来自如下订单表的一句SQL作为数据集

select * from 订单

imagepng

第四步:发布自助报表

在jsp中用tag标签配置这个数据集,并把jsp发布到服务器

imagepng

然后就可以通过url访问了,并进行自助操作

imagepng

imagepng

就这么简单,在jsp中加入tag标签,自助报表功能就集成到自己的应用中了

更完整详细的集成过程可以参考:

怎样在应用中集成自助报表功能

另外,润乾自助报表不仅可以被集成,而且还是开源的,集成以后,还可以对页面进行更深层次的改造,让页面和功能可以更好的适配自己的系统

功能漫游

基本功能集成后,我们再来看一下自助报表能做到什么效果

报表样式

常规的列表、分组、交叉等样式是所有组件的基本功

imagepng

imagepng

imagepng

复杂程度高一些的,比如下面这个多层分组交叉,能力强一些的制作也都没有问题

imagepng

这些报表也都可以导出、打印,功能完整

还可以利用现成的模板生成各类统计图

imagepng

imagepng

imagepng

计算能力

大处看样式,细节看计算。相同的样式背后,涉及的计算可能大有不同,有些只需要做简单的统计汇总,有些则需要做复杂的的排名,占比,同比环比等

工具的自助能力各有不同,有的制作起来简单,有的繁琐,有的也可能做不了

排名

imagepng

占比

imagepng

同比环比

imagepng

imagepng

累积

imagepng

复杂条件过滤

imagepng

数据来源

自助报表的作用是为了分析数据,是为了把各类抽象的数据变成具象易懂的图表,应用系统集成自助报表后,自然会希望它可以处理各中类型的数据,应对各类的场景,这就需要工具可以支持各类不同的数据来源才可以,临时来一个文件数据可以分析,只给一句SQL也能做表,遇到复杂多库表关联的没问题,方便多次复用的语义层工具也有,想控制权限还能控制权限,各种场景都能应付自如才行

文件数据源分析

数据来源是EXCEL文件,data.xls

imagepng

在jsp中通过tag标签配置这个EXCEL,然后发布页面

imagepng

发布后业务人员就可以看到EXCEL中的数据,并可以对其进行报表制作了

imagepng

SQL数据源分析

“集成过程”章节中用到的示例,就是用的来自SQL的数据源,这里就不重复说明了,有需要的可以翻到上面再看一下

语义层

临时的,简单的分析直接基于SQL来做会比较方便。重复的,频繁的分析如果每次写SQL,每次都得as中文名称,join,增加指标就会挺麻烦

通过语义层来解决这些问题效果就会好很多

定义好语义层:

imagepng

raqsoftConfig.xml中添加物理数据源和语义层(DQL)数据源

imagepng

Jsp中通过标签调用定义好的语义层文件数据来源,页面展现时候就可以看到中文字段了

imagepng

自助数据源

前面的三种数据来源是技术人员定义好数据集以后给业务用户直接用的,如果业务用户想自己定义数据集,自己来设置要分析哪些字段,也是可以的,当然前期还得技术人员协助设置一下元数据,因为如果直接让用户面对数据库的数据去操作,用户是理解不了这些复杂的表名和之间的关系的,也无从下手的

imagepng

imagepng

技术人员设置好基础的元数据字典文件后,在jsp中通过tag标签设置对应文件,发布后用户就可以看到如下界面了,左面已经是可以轻松理解的中文名称了

imagepng

imagepng

业务人员自助选择自己要分析的字段,拖拽后生成新的数据集,然后进入自助报表页面就可以看到新的数据集并进行报表制作了

imagepng

权限控制

有了语义层后也可以控制数据权限了

imagepng

上图中“员工分析”这个分类只能看到勾选的表和字段里的数据

也可以单独针对某个表进行权限控制,还可以控制同一个表,不同的人看到不同的数据,比如每个销售只能看到自己的订单

imagepng

到这里,主要的功能就基本都罗列到了,如果一个自助报表工具以上能力都具备,那功能方面就可以过关了

总结

应用中怎么实现自助报表功能,最难的地方其实是:怎么找一个功能全面且能集成的工具,这个难题解决后,剩下的具体集成对于工程师来说就不算什么难事了,现在难题也被解决了,站在别人的肩膀上不说看的更高走的更远吧,起码能省很多事了,接下来要做的,就是实际集成一次,亲自验证一下看看到底能不能满足自己的需求了

润乾报表资料

  • 润乾报表官网
  • 润乾报表下载

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

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

相关文章

后台管理系统前端模板(html + CSS + JavaScript)

这是为大家准备的资源链接🤐🤐🤐: 提取码:0000 bootstrap_htmb.zip_免费高速下载|百度网盘-分享无限制百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速&#…

实现Vue按钮(button)绑定回车(enter)事件

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、页面展示二、实现步骤1.在删除对话框的取消与确定按钮之间添加input输入框2.写个监听器,监听弹窗打开时,给input框自动聚焦&#xff…

AI引领技术变革,自动化云平台所带来的测试工程师进阶危机~

推荐: Python全栈白宝书专栏,免费阶段订阅数量4300,购买任意白宝书体系化专栏可加入TFS-CLUB 私域社区。福利:加入社区的小伙伴们,除了可以获取博主所有付费专栏的阅读权限之外,还有机会加入 星荐官共赢计划…

微信小程序设计规范

一、宏观角度 微信小程序设计的基本原则是微信设计中心针对在微信类上线的小程序页面总结的设计指南及建议。以下设计原则都是基于对用户的尊重的基础上的,旨在微信生态类建立有号、高效、一致的用户体验的同时,最大程度顺应和支持各业务需求设计…

PHP+MySQL制作简单的用户注册登录界面(注释超详细~附源代码)

成果 网站能实现判断账户信息是否合法,同时附带验证码验证登录。在用户输入正确的用户名与密码后会有登录成功的弹窗,若输入的账户不存在,则会跳转至注册页面。 实现过程 项目文件分配: 1.首先创建login.html 实现的是用户登录…

vue-element-admin--使用体验

原文网址:vue-element-admin--使用体验_IT利刃出鞘的博客-CSDN博客 简介 说明 本文用示例介绍vue-element-admin的用法。 vue-element-admin 是一个后台前端解决方案,它基于 vue 和 element-ui实现。它使用了最新的前端技术栈,内置了 i18 国…

小满Vue3第三十九章(Vue开发桌面程序Electron)

建议视频教程小满Vue3(第三十九章 electron桌面程序)_哔哩哔哩_bilibili Electron官网Electron | Build cross-platform desktop apps with JavaScript, HTML, and CSS. 我们用的VsCode 也是 electron 开发的 electron 内置了 Chromium 和 nodeJS 其中…

【最简便方法】element-plus/element-ui走马灯配置图片以及图片自适应

首先展示官网给的模板 <template><el-carousel :interval"4000" type"card" height"200px"><el-carousel-item v-for"item in 6" :key"item"><h3 text"2xl" justify"center">…

前端实现文件下载的方法

前端实现文件下载 前端下载一般分为两种情况&#xff0c;一种是后端直接给一个文件地址&#xff0c;通过浏览器打开就可以下载&#xff0c;另外一种则需要发送请求&#xff0c;后端返回二进制流数据&#xff0c;前端解析流数据&#xff0c;生成URL&#xff0c;实现下载。 一、…

css添加边框阴影

css边框阴影如何设置&#xff1f; 语法&#xff1a; <style> box-shadow: h-shadow v-shadow blur spread color inset; </style> 取值&#xff1a; h-shadow&#xff1a;必需设置的值&#xff0c;定义水平阴影的位置。允许负值。 v-shadow&#xff1a;必需设置…

微信小程序web-view与H5 通信方式探索

本文作者为奇舞团前端开发工程师小程序简介小程序是一种全新的连接用户与服务的方式&#xff0c;它可以在微信内被便捷地获取和传播&#xff0c;同时具有出色的使用体验。需求微信小程序 H5 混合开发就是 在一个小程序中&#xff0c;采用部分小程序原生页面&#xff0c;部分通过…

Vue组件通信——父子组件通信的四种方法

引入组件 全局引入 在main.js文件中引入并注册 import ChildrenDemo from /views/components/ChildrenDemo Vue.component(ChildrenDemo,ChildrenDemo)// 第一个参数 全局组件的名字(字符串类型)&#xff0c;第二个参数&#xff1a;引入的组件名&#xff08;一般都与组件名保持…

【前端开发环境安装、配置、项目搭建全教程】

前端开发环境安装、配置、项目搭建全教程 1.Node环境安装 简单的说 Node.js 就是运行在服务端的 JavaScrip&#xff0c;基于 Chrome JavaScript 运行时建立的一个平台&#xff0c;Node.js 是一个事件驱动 I/O 服务端 JavaScript 环境&#xff0c;基于 Google 的 V8 引擎&…

uniapp页面跳转的几种方式

uniapp页面跳转的几种方式 一、uni.navigateTo 定义&#xff1a;保留当前页面&#xff0c;跳转到应用内的某个页面&#xff0c;使用uni.navigateBack可以返回到原页面。使用&#xff1a; // 1.不传参 uni.navigateTo({url:./home/index }); // 2.传参字符串 uni.navigateTo(…

Vue后台管理系统模板

推荐一些 Vue 常用后台管理系统模板 前言 Vue.js 是一个目前比较流行的前端框架&#xff0c;已经到了前端人人都会的地步&#xff0c;今天这里为大家罗列一下基于 Vue 的后端管理的框架。目前比较流行和 Vue 搭配的 UI组件 有Element-UI、iview、Bootstrap-Vue、Ant-Design-V…

项目中报错 Uncaught (in promise)

项目中报错 Uncaught (in promise) 一、问题&#xff1a;当你调用 Promise.reject() 回调的时候&#xff0c;Chrome 控制台中出现一条警告消息“Uncaught (in promise)”。 例如你简单封装axios的响应拦截器的时候&#xff1a; // 响应拦截 service.interceptors.response.u…

VUE 富文本编辑器 tinymce - - - - 对懒人 非常友好 一看就懂

首先个人觉得 tinymce这个富文本编辑器是最好用 最编辑的 &#xff0c;对懒人非常友好 的一款编辑器&#xff0c;刚 有哟个项目 &#xff0c;就遇到了 使用富文本编辑的坑 &#xff0c;因为赶项目进度自己在网上随便找了一个富文本编器&#xff0c;就是 quill 这个 坑 实在太多…

【个人网站】零基础个人网站搭建完整教程(附免费源码)

零基础个人网站搭建完整教程&#xff08;一&#xff09; 内容包括&#xff1a;前端搭建后端搭建源码网盘链接搭建服务器网站上线&#xff08;完整教程&#xff09; 从0到1搭建网站零基础个人网站搭建完整教程&#xff08;一&#xff09;前言一、前端搭建一、副页设计1.显示文字…

最新Eclipse安装教程(2022-09)

前言 现在是在校大学生&#xff0c;未来想从事大数据相关的工作&#xff0c;目前在b站学习大数据&#xff0c;写这些的目的是为了整理、巩固学过的知识&#xff0c;以后自己工作了也可以回头看看&#xff0c;如果还能够帮助到大家&#xff0c;就再好不过了&#xff01; 一、Ec…

Python Flask框架-开发简单博客-项目布局、应用设置

作者&#xff1a;Eason_LYC 悲观者预言失败&#xff0c;十言九中。 乐观者创造奇迹&#xff0c;一次即可。 一个人的价值&#xff0c;只在于他所拥有的。所以可以不学无术&#xff0c;但不能一无所有&#xff01; 技术领域&#xff1a;WEB安全、网络攻防 关注WEB安全、网络攻防…