当前位置: 首页 > 编程日记 > 正文

企业可视化报表工具选型经验分享

选型背景
我们是一家面向金融行业的系统集成商,每年要做十几个项目(看得出来我们并不大/笑哭),项目分大小、做事分先后,可不管怎样都绕不开数据,数据处理经常占项目的大头,所以经常会选择一些市场上成熟的数据相关产品以便在能控制成本的前提下快速交付。这里我来介绍一下我选择报表工具的一些经验,希望对大家有用。
开始选型的大原则:首选开源(毕竟免费),其次商用(并不排斥)。
当然,不管怎样选型一定要从自己的实际情况和具体需求出发,所谓适合的才是最好的。
选型原则
关于选型原则,前面提到开源和商用了,其实还有很多,下面分享一下我的选型原则(按重要程度从大到小排列)。
成熟度
选择一个诞生时间比较长、有一定用户规模,该填的坑都已经填了,不需要我再当小白鼠测试,从而节省项目的人天成本,避免浪费;降低应用开发超期风险;从而有效保证开发应用的可靠性,稳定性。
设计方式
设计简单,开发人员上手快,不需要编码或者少量编码,就可以做出报表。
开放性
提供接口,支持二次开发
数据来源
因为业务数据分散在多个不同的应用系统中,所以要求选择的报表产品支持多样性数据源,并且能进行多源混算,除常用的关系型数据库 Oracle、mysql,非关系型数据库MongoDB ,sqlite,还需要支持文件性的数据如EXCEL、txt、json等。
性能
月末统计数据规模较大,并发较高,对性能要求较高
复杂报表能力
可以实现复杂格式的报表,我们的报表需求有不同维度的多层分组,以及同期比计算
图表能力
美观性,除了表格,还有图形,最好支持驾驶舱和大屏。
页面交互性
条件查询,钻取,联动,固定表头,可伸缩报表,多TAB页展现等动态效果。
导出结果文件
支持导出EXCEL,word,txt,CSV等文件
成本
社区与支持
技术社区,社区情况;技术支持,支持形式
工具比较

开源or商用
使用现在市面上的开源报表产品在报表设计上并不那么容易,虽说可以满足一些功能需求,但如果遇到bug,因为没有售后服务,就需要自己查找文档自己找解决办法,不过不需要花钱采购,如果项目周期比较长,表样不复杂,表样不复杂,有4,5个开发人员应该没问题,如果想快速交付,降低人力成本那商用的更省心靠谱,起码花了钱,有保障,不至于出现问题没有人协助解决。
选择建议
发现报表工具比较特殊,国产产品占主导,在实现中国式的复杂报表来说,本土化的报表工具更易于开发设计,产品文档更易读阅,国内的报表工具在功能上都大同小异的情况下,那比较的就是价格,综合比较后大多数情况选择润乾报表性价最高,特别是项目比较多的时候使用项目买断就比较合适。如果报表需求非常简单,且量不大时可以选择BIRT或JasperReport+iReport就行。
--------------------- 
作者:doingendlessly_saint 
来源:CSDN 
原文:https://blog.csdn.net/doingendlessly_saint/article/details/83745360 
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://www.cnblogs.com/shiGuangShiYi/p/10117482.html

相关文章:

1003 Emergency(Dijkstra,Bellman-Ford,SPFA三种解法)

目录 1. Dijkstra解法 2. Bellman-Ford解法 3. SPFA解法 4. Dijkstra解法AC代码 5. Bellman-Ford解法AC代码 6. SPFA解法AC代码 1. Dijkstra解法 这题不仅涉及到基础的解法,还涉及到第二标准(累计军队数量),以及还要记录最短路径条数。这些都是在…

存储过程4-前台

代码 ALTERproc[dbo].[P_CheckCode](retintoutput,nIdint,tagnvarchar(50),cCodenvarchar(50),nHotelIdint)asbeginifUpper(tag)B_AREAbeginifexists(select1fromB_Area wherecCodecCodeandnHotelIdnHotelIdandnId<>nId) setret1elsesetret-1endelseifUpper(t…

安卓学习-其他-文件读写

在android中的文件放在不同位置&#xff0c;它们的读取方式也有一些不同。 本文对android中对资源文件的读取、数据区文件的读取、SD卡文件的读取及RandomAccessFile的方式和方法进行了整理。供参考。 一、资源文件的读取&#xff1a; 1) 从resource的raw中读取文件数据&#x…

X5同层播放器应用实践

移动端浏览器中的video元素是比较特别的&#xff0c;早期无论是在iOS还是Android的浏览器中&#xff0c;它都位于页面的最顶层&#xff0c;无法被遮挡。后来&#xff0c;这个问题在iOS下得到了解决。但是对Android的大部分浏览器来说&#xff0c;问题仍然存在。X5是腾讯基于Web…

1007 Maximum Subsequence Sum(两种思路)

1.解法1 思路 对于动态规划来说&#xff0c;最关键的就是找到状态转移方程&#xff0c;本题设置一个前向数组&#xff0c;元素predp[i]表示的是以元素i结尾的连续数列和的最大值&#xff0c;转移方程是predp[i] max(predp[i-1]a[i],a[i])。要做的事就是完成这个dp数组&#x…

C#学习-EF在三层中使用

1.搭建普通三层 DAL层&#xff0c;BLL层&#xff0c;Model层&#xff0c;Web层&#xff1b; DAL层引用Model层 BLL层引用DAL层和Model层 Web层引用BLL层和Model层 2.实现EF三层的搭建&#xff08;添加引用&#xff0c;修改配置信息&#xff09; 2.1添加EF对象 在Model中添加一个…

各大IT公司笔试真题汇总开发人员一定要加入收藏夹的网站(收藏)

巨人网络java笔试基础题分享 http://www.coderarea.net/bbs/read.php?tid834 百度笔试题 http://www.coderarea.net/bbs/read.php?tid811 百度2010校招运维部门笔试 http://www.coderarea.net/bbs/read.php?tid779 百度2010年校园招聘软件测试笔试题 http://www.coderarea.n…

Python编写Hive UDF

2019独角兽企业重金招聘Python工程师标准>>> 1. 目的 从string类型的字段中解析并汇总每种category类型的总amount 2. 素材 表名&#xff1a;test_table order_no hotel_seq discount_detail D8662EF4E 10212527 NULL 45C024849 …

1045 Favorite Color Stripe(LIS解法)

解题思路 本题属于Longest Increasing Sequence最长不下降子序列&#xff0c;但是要注意&#xff0c;LIS当中不会有无效的元素&#xff0c;而本题是有的&#xff0c;所以先要把无效元素过滤掉&#xff0c;才能转化成为LIS问题。 这里用到了hashTable(用map更慢)&#xff0c;初…

5.8fork父子进程

实验4-2&#xff1a;fork父子进程 实验目的&#xff1a; 理解fork创建子进程的本质 实验要求&#xff1a; 1、按如下要求编写程序: &#xff08;1&#xff09;、打开一个有内容的文件; &#xff08;2&#xff09;、调用fork创建子进程; &#xff08;3&#xff09;、读文件…

word表格自动编号

选中全部内容--右键--项目符号和编号--自定义--编号样式--选01,02样式.则生成所有编号选中第二批编号,--重新编号,就又从01开始了转载于:https://www.cnblogs.com/wzshhynk/archive/2009/12/30/1635805.html

Vue API(directives) 自定义指令

前言&#xff1a;除了vue的内置指令以外&#xff0c;我们可以定义自定义指令。内置指令表相见&#xff1a;https://www.cnblogs.com/ilovexiaoming/p/6840383.html 我们定义一个最简单的 <script> export default {name: App,data(){return{yanse:red}},// 所有自定义指令…

1045 Favorite Color Stripe(LCS解法) 需再理解

解题思路 使用LCS方法解这一题&#xff0c;首先要把现有的颜色和Eva的颜色看成即将取材的序列s和e。 而且注意2个序列都要从1开始读入&#xff0c;因为递归边界&#xff08;待后叙&#xff09;。 dp[i][j]代表的是e[1]-e[i]和s[1]-s[j]的范围内&#xff0c;公共子序列的长度…

C++ primer第五版随笔--2015年1月6日

记录自己看这本书时的一些内容。 一、引用&#xff08;reference&#xff09; 引用为对象起了另外一个名字。例如&#xff1a; int ival1024&#xff1b; int &relVal1ival;//对&#xff0c;注意尽量不要用这方式&#xff1a;int& relvalival&#xff1b; int &rel…

Python性能分析指南——中

程序使用了多少内存&#xff1f;现在我们对计时有了较好的理解&#xff0c;那么让我们继续弄清楚程序使用了多少内存。我们很幸运&#xff0c;Fabian Pedregosa模仿Robert Kern的line_profiler实现了一个不错的内存分析器。首先使用pip安装:这里建议安装psutil包&#xff0c;因…

1040 Longest Symmetric String 需再做

解题思路 本题属于最长回文子串专题下。与之前的LIS和LCS的动规有两个较大的不同 1. 虽然最后也是要求长度&#xff0c;但是长度信息不再蕴含在dp数组当中&#xff0c;dp[i][j]表示的仅仅是从s[i]起s[j]止这一段是否是回文&#xff0c;所以为了提醒自己&#xff0c;我设置成了…

回顾2009,展望2010。

回顾2009&#xff0c;展望2010。 2009即将过去&#xff0c;总结2009年&#xff0c;计划2010年。 2009年12月31日。转载于:https://www.cnblogs.com/finehappy/archive/2009/12/31/1654975.html

Linux Mint 19 安装Gnome Boxes 新建失败

之前在Ubuntu论坛提出&#xff0c;一直没有解决.http://forum.ubuntu.org.cn/viewtopic.php?f65&t488821 后参照&#xff1a; https://askubuntu.com/questions/836703/ ... sue/836715对方报错&#xff1a; (gnome-boxes:15984): Boxes-WARNING **: wizard.vala:463: Fai…

1057 Stack

目录 解题思路 AC代码 解题思路 虽然题目的名字是栈&#xff0c;但是这题和栈的关系很小&#xff0c;甚至我都没有用到stack这个数据结构&#xff0c;而是用vector<int>的pop_back()来模拟栈的弹出。 主要考察的是&#xff1a;在线查询&#xff0c;也就是查询过程中…

【译】使用自定义ViewHelper来简化Asp.net MVC view的开发------part1

从开发者的角度来看&#xff0c;创建Asp.net MVC的View是一件很爽的事&#xff0c;因为你可以精确控制最终生成的HTML。具有讽刺意味的是不得不写出每一行HTML代码同时也是Asp.net MVC的View中让人不爽的地方。让我用我的一个经历来告诉我创建ASP.Net MVC view Helpers背后灵感…

看书挑剔,只看经典

如何选择经典&#xff0c;可以到网上做做功课&#xff0c;看看评价&#xff0c;综合分析一下。书籍是我们知识的主要来源。在选择书籍的时候做足功课是对我们自己时间的负责&#xff1b;这和在超市里买东西时对比各个品牌是一个道理&#xff1b;只不过奇怪的是&#xff0c;我很…

0-1背包使用一维dp数组时为何v要从大到小枚举

样例数据 5 8 3 5 1 2 2 4 5 2 1 3 如若不然&#xff0c;也就是让v按照从小到大的顺序枚举&#xff0c;就会出现 注意高亮的那一行&#xff0c;第一件物品的重量只有3&#xff0c;怎么会得到6呢&#xff1f; 代码如下 #include<cstdio> #include<cmath> #inclu…

异步编程模型--使用 IAsyncResult 对象

先推荐阅读下面的资料&#xff1a;MSDN&#xff1a;异步编程设计模式IBM developerworks&#xff1a; 使用异步 I/O 大大提高应用程序的性能参考博文&#xff1a;1、正确使用异步操作 2、Lab&#xff1a;体会ASP.NET异步处理请求的效果 3、WCF中的异步调用 4、WCF从理论到实践(…

对XX证券报关于物联网操作系统的几个问题的答复

XX证券报提问了几个关于物联网和物联网操作系统的问题&#xff0c;个人表达了一些粗陋的观点&#xff0c;在这里发表出来&#xff0c;与行业朋友交流和探讨。物联网行业最需要解决的问题是什么&#xff1f;虽然物联网这个行业被炒得比较热&#xff0c;但是截至目前&#xff0c;…

Java基础 - 面向对象 - 构造方法

在类中除了成员方法之外&#xff0c;还存在一种特殊类型的方法&#xff0c;那就是构造方法。构造方法是一个与类同名的方法&#xff0c;对象的创建就是通过构造方法完成的。每当类实例化一个对象时&#xff0c;类都会自动调用构造方法。 构造方法的特点&#xff1a; 构造方法没…

1105 Spiral Matrix 给定数组向螺旋矩阵中填入数据

两个测试用例超时&#xff0c;可直接跳转到 目录 超时点1 超时点2 ​​​​​​​ 要做的事情是&#xff0c;将数组按照非升序/降序&#xff0c;顺时针从外围到内部一圈一圈地把数据填到矩阵中&#xff0c;并打印出来。也就是将数组排好序后&#xff0c;将矩阵的坐标和数组…

一晚上就能让你小腹变小的方法 - 健康程序员,至尚生活!

仅一晚上针对小腹的锻炼就会让它明显收紧&#xff0c;很不可思议吧&#xff1f;但它确实发生了。形体教练向我们推荐&#xff1a;做30次转身运动(双手抱在脑后站立&#xff0c;迅速分别向左右两侧依次扭转上肢&#xff0c;注意不要以膝盖为轴&#xff0c;使运动轴心保持在骨盆以…

Alpha 冲刺 (2/10)

前言 队名&#xff1a;拖鞋旅游队组长博客&#xff1a;https://www.cnblogs.com/Sulumer/p/9960487.html作业博客&#xff1a;https://edu.cnblogs.com/campus/fzu/Grade2016SE/homework/2365组内情况 燃尽图任务分布github签入记录苏路明&#xff08;组长&#xff09;过去两天…

互联网对erp行业到底有什么影响

1 财务管理的影响 总账、 应收应付、资金计划&#xff0c;支付管理。 生产计划的影响。 重大的疑惑。 转载于:https://www.cnblogs.com/sdgxbooy/p/8892655.html

PAT甲级排队问题合集 (持续更新中)

已加入的习题 A1014,A1017 问题1和2共性 1. 都是排队问题 2. 都有一条黄线 3. 都需要找到最先离开人的队伍 4. 都有着服务时间段限制(迟于某个时间点来不予受理) 问题1&#xff1a;1014 Waiting in Line 问题链接&#xff1a;1014 Waiting in Line 这一题&#xff0c;…