用了4年,终于发现了这款国产报表工具的魅力

news2024/11/25 2:34:13

第一次接触FineReport应该是在2018年,当时刚从美团出来进了现在的国企IT部门。一晃用了快4年了。4年前,我觉得FineReport是一款万能的企业级系统,4年后,我的这个想法依旧没有改变。先别开喷,看完我为什么这么想再说。

这4年里我几乎每天都在用这个工具,也跟同行推荐过很多次。也是因为推荐了太多次,又恰逢软件国产化趋势,来找我咨询工具的朋友有点多,我一时回复不过来。所以想着有必要总结一下我这4年的使用经验,为正在使用和想要使用FineReport的朋友们解解惑。

首先:我以下说的,全都是个人体验,不一定正确。

一、什么情况下用FineReport?

FineReport帮助文档里面大大小小罗列了几十个功能,但归根结底,还是数据收集处理和数据展示。在以下几种情形下,建议优先甚至只能使用FineReport:

先说数据收集处理,第一种情况是有数据,第二种是没数据。

1、业务系统多,数据大多是多源异构,又按不同存储形式存在不同数据库中,数据不互通,质量极低。直接用这些低质量数据,不说展示的时候10分钟都加载不完,做表的时候速度也很慢。

FineReport能够关联多个数据源,从不同的数据库、数据表里面取数。比如下面这张中国式复杂报表,数据来自不同数据表,最后展示在一张表中。在这里插入图片描述

这样取数的逻辑是没问题的,但在实际操作的过程中,会发现大量数据错误、重复、不合理等问题,这也是我用FineReport一直想吐槽的地方,一直到去年发布的FineReport11.0,才增加了具有「ETL 作业」功能的FineDataLink。

具体能够实现的功能,看下面这张图你们就应该清晰了。不同数据库和系统中的数据统一进入FDL进行处理,之后存储在数据仓库中。如果原始数据库数据更新,那这些增加的数据也会实时进行处理。用上ETL之后,数据质量会有显著提升,与之而来的处理速度也会明显加快。在这里插入图片描述

2、很多企业特别是国企,数据治理和数据操作水平仍旧停留在十年前的水平,不说数据质量低的问题,有的甚至停留在纸质版本时代。把数据按照固定格式收集起来是利用数据的前提。

在这里,FineReport承担起了收集数据的工作,把纸质版数据、Excel里面的数据全都搬到了线上,一来解决了没有数据的问题,二来也从源头规范了数据。

有个印象很深的例子,系统本身很不起眼,但其他子公司老大来参观之后直接联系了帆软的销售。在制造业干过的应该都知道,仓库管理是最难的,特别是库存积压的时候,货物很多时候都是哪里有了空位置就放哪里,记录也全靠库存管理员填写纸质单据。一旦管理员请假,那根本找不到货在哪里,别说规范填写出货单了。

后来我们用帆软开发了个库存管理系统,通过扫描货物外箱二维码自动上传入库、挪动、出库记录,再根据这些数据生成仓库简约平面图,这样只要有手机就能直接扫码操作,管理员也不用担心货物堆放混乱了。在这里插入图片描述

表面上只是解决了管理员管理问题,实际上仓库吞吐量上去之后利用率大幅度提升。

3、为了更清晰地查看中国式复杂报表,最好能冻结行表头和鼠标悬浮处高亮。

中国式复杂报表本身就是国人做表不规范产生的恶果,就像是有了信号灯和斑马线依旧堵车的“中国式过马路”一样,是有着强烈中国本土特色的企业问题。

报表软件和企业主更应该想办法规划报表格式,让报表变得更加简洁,而不是一味地增加所谓的报表模板、报表样式,就像是把信号灯做得越来越好看、但交通问题仍然无法解决一样。

但好在FineReport在使用上也下了功夫,增加了冻结行表头和鼠标悬浮处高亮的功能,前者只需要在报表设计器中更改「重复与冻结设置」。后者需要添加JS事件,具体怎么操作可以自己去看他们的帮助文档。这两个功能设置好之后,才能在眼花缭乱的数据中定位到自己想看的内容。在这里插入图片描述

4、不想花大量时间在大屏可视化设计上,但驾驶舱和数字化大屏的需求量上升。

就跟写“流水账日报、周报”一样,这年头可视化大屏和管理驾驶舱几乎是每个公司的必备项目,有的只是为了秀一秀公司“科技实力”,做做“面子工程”;有的确实有些“指点江山”的需要。

但我还是觉得,数据可视化纯属是锦上添花的工作,不该把大量时间人力投入在此。FineReport里面也内置了不少可视化大屏模板,之前我花10分钟,更换数据拉了一张人力资源分析大屏,人力部门开会的时候直接就用了起来,说是虽然简洁但也很贴近业务,不纯粹是花里胡哨。在这里插入图片描述

给大家提个醒,不要看到某个软件可视化大屏多就去用,比如某S,自适应做的很差,电脑上看着挺正常的,平板上打开给领导看的时候,全是变形图表,太尴尬了。

二、怎么更好地用FineReport?

几乎每天都会用到FineReport,这里给大家一些使用小建议,希望对你们来说有用。

1、用之前记得调整设计器内存,防止出现卡死的状况。

FineReport的报表设计器默认设置的内存很小,最大才512M,动不动就占满了。虽然帆软市场里面有设计器内存监控插件,但卡死的情况仍然存在。况且对于现在的电脑来说,调大点内存不算什么。只要准备一个记事本,把下面图中的文件下下来,保存到报表安装目录下的bin目录下,重启设计器,明显丝滑多了。在这里插入图片描述

2、用填报功能的时候,提前设置好「填报自动暂存」,不然一刷新数据就没了。

填报数据时,很容易填了一半忙别的事情或者填完忘了提交,再次刷新后,之前填报的内容就消失了,这时只能无奈地再填一遍,字段多的时候就特别烦。提前在「填报页面设置」菜单栏里面勾选自动暂存,数据只要填写了就不会丢失。

3、上面说填报没有自动保存很困扰,但填错了一个空一个空删除也很困扰,这里也可以用JS来实现一键清除填报内容。

特别用在填报物料单的时候,货号、颜色、尺寸、数量等等项目都需要录入填写,一次可能有几十个空格要填,有一个填错就容易弄混,想要重新填写还要一个一个空删除,很浪费时间。这也可以用JS实现,具体代码你们可以自己去FineReport的帮助文档复制。在这里插入图片描述

4、想要分sheet导出Excel的时候,也可以用JS来实现。

我们公司在导出Excel表格的时候,经常需要根据地区分Sheet展示,之前不会用,导出的时候总是导在一张表上,还要手动复制放到不同的sheet里面,有一回帆软的人来公司拜访的时候,教了我们用JS实现,具体代码怎么写可以去看FineReport的帮助文档。在这里插入图片描述

四年前刚接触FineReport,我基本上都是用写代码的方式实现各个功能。但四年后的今天,我逐步摸索出了不用写代码就能实现功能的方式,可能是一个按钮,可能是一个配置。反正,FineReport功能真的很多,经常用就能感知到便捷性。

记得点点关注。

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

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

相关文章

计算化学:如何在云平台上计算声子谱

内容摘自北鲲云五月份直播内容【声子谱的计算、后处理与分析实例】 另有文章【不同压强下ZnO的声子谱计算及其收敛性测试】可在发布的内容中查阅。 所有计算皆在北鲲云超算平台上完成。 计算声子谱所需软件: 1 VASP(Vienna Ab-initio Simulation Package) 结构计…

护理床控制板开发,帮您解决卧床护理难题

多功能护理床是一款针对术后康复、老年人、下肢瘫痪等行动不便人群设计的一款高科技产品,帮助他们解决日常生活问题,减轻护理压力。相对于国外成熟的护理床产品,中国的护理床市场尚处于初期发展阶段。护理床控制板通过按键控制,完…

BOSS直聘新财报:用户、技术两手抓

与传统招聘模式相比,网络招聘具有信息传播速度快、时效性强、沟通效率高等特点,再加上受疫情这一外界因素影响,线上面试频率增高,广大求职者们对网络招聘的接受度开始日益提升。随着线上招聘市场规模的逐渐扩大,行业内…

一文学会Canal怎么用

文章目录一.概念1.什么是Canal2.Canal的基本原理二.Mysql配置1. 安装2. 开启mysql的binlog3.mysql创建cannl用户并授权三.安装配置ES,kibana四.安装canal-server五.安装canal-admin六.安装canal-adapter七.通过canal和RabbitMQ将mysql数据同步ES一.概念 1.什么是Ca…

java EE初阶 — synchronized 关键字 - 监视器锁 monitor lock

文章目录1.synchronized 的特性1.1 互斥1.2 可重入2.synchronized 使用示例3.Java 标准库中的线程安全类1.synchronized 的特性 1.1 互斥 synchronized 会起到互斥效果, 某个线程执行到某个对象的 synchronized 中时, 其他线程如果也执行到同一个对象 synchronized 就会阻塞等…

大数据培训之Hadoop序列化

序列化概述 1.1什么是序列化 序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便 于存储到磁盘(持久化)和网络传输。 反序列化就是将收到字节序列(或其他数据传输协议)或者是磁盘的持久化 数据,转换成内存中的对象。 1.2为什么要序列化 一般来说&am…

【leetcode】2259. 移除指定数字得到的最大结果(js实现)

1. 题目 2259. 移除指定数字得到的最大结果 2. 思路 根据题意进行模拟,每次找到与digit相同的元素就将其移除,将剩余的字符串与存储最大值的字符串进行比较,一直保持max中保存的是最大值,最终将max返回。 3. 代码 /*** para…

用强化学习玩《超级马里奥》

Pytorch的一个强化的学习教程( Train a Mario-playing RL Agent)使用超级玛丽游戏来学习双Q网络(强化学习的一种类型),官网的文章只有代码, 所以本文将配合官网网站的教程详细介绍它是如何工作的,以及如何将它们应用到…

[附源码]Python计算机毕业设计SSM科技类产品众筹系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

[附源码]计算机毕业设计JAVA乡村振兴惠农推介系统

[附源码]计算机毕业设计JAVA乡村振兴惠农推介系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM myb…

项目ERP与传统ERP的区别是什么?

许多不认为传统 ERP 有用的企业正在寻找项目 ERP。对于企业软件来说,这是一种利用项目管理实践和功能的相对新颖的方法。与传统 ERP 相比,项目 ERP 旨在提供对公司流程更全面的概述。这种类型的解决方案对于建筑公司或项目制造商等项目公司来说是一个很好…

聚类基本概念及常见聚类算法和EM算法

1. 基本概念 1.1 定义 聚类:发现数据中分组聚集的结构,根据数据中样本与样本之间的距离或相似度,依据类内样本距离小(相似度大)、类间样本距离大(相似度小)将样本划分为若干组/类/簇。 基于划分…

【毕业设计】1-基于单片机的城市轨道交通列车超速防护系统_里程表设计(原理图+PCB+源码+仿真工程+答辩论文)

typora-root-url: ./ 【毕业设计】1-基于单片机的城市轨道交通列车超速防护系统_里程表设计(原理图PCB源码仿真工程答辩论文) 文章目录typora-root-url: ./【毕业设计】1-基于单片机的城市轨道交通列车超速防护系统_里程表设计(原理图PCB源码…

postgres源码解析39 表创建执行全流程梳理--3

本文结合实例讲解表创建执行流程 [CREATE TABLE wp_shy(id int primary key, name carchar(20))],相关知识回顾见: postgres源码解析38 表创建执行全流程梳理–1 postgres源码解析38 表创建执行全流程梳理–2 执行流程图 transformCreateStmt函数是表创建真正的入口…

系统封装制作

工具网址: 镜像下载: Windows 10 22H2 - MSDN - 山己几子木 (sjjzm.com)pe工具:【新提醒】优启通 v3.7.2022.0910(2022.10.14 发布)_IT天空原创软件_IT天空 (itsk.com)万能驱动:万能驱动 v7.22.0912.2&…

国产全志T3+Logos FPGA开发板(4核ARM Cortex-A7)规格书

评估板简介 创龙科技TLT3F-EVM是一款基于全志科技T3四核ARM Cortex-A7 + 紫光同创Logos PGL25G/PGL50G FPGA设计的异构多核国产工业评估板,ARM Cortex-A7处理器单元主频高达1.2GHz。评估板由核心板和评估底板组成,核心板CPU、FPGA、ROM、RAM、电源、晶振、连接器等所有器件均…

[附源码]计算机毕业设计springboot企业售后服务管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

如何学习运放实战设计?学这些精髓

一、同相放大电路虚短:运放理想放大倍数10万倍,一般输出都是3V或5V较多,运放放大的是输入信号的压差,放大10万倍的话,只能说明输入信号的压差非常非常接近,近似相等,我们称之为虚短(…

多功能便携式吸尘器设计

目 录 摘 要 i Abstract ii 1 引言 1 2 多功能便携式吸尘器的历史及发展 2 2.1 多功能便携式吸尘器的历史 2 2.2 业界的发展情况 3 3 多功能便携式吸尘器的分类 5 3.1 卧式(Canister) 5 3.2 立式(Upright) 5 3.3 手持式 &#xff…

[附源码]SSM计算机毕业设计学校失物招领系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…