自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(110)
  • 收藏
  • 关注

转载 怎样制作出美观酷炫的可视化大屏报表?

1、 如果有提供 DBD 功能的报表工具,那么可以直接使用该功能, 大屏布局及其组件都能支持页面自适应,同时也能支持一个面板内多个组件的联动效果,具体实现可以参 大屏联动竟如此简单??? ;某个组件的数据过滤实现也很简单,具体可以参考 局部区块多个报表 TAB 页切换及局部区块的参数查询DBD 功能虽然可以让开发人员快速完成大屏报表的制作,但是报表工具只能管一些类似布局自适应、联动等技术问题。而对于每个组件的美观酷炫性还是需要美工和开发人员共同参与完成的,这一点和报表工具本身关系不大。2、 如果采用

2020-06-30 20:49:20 272

转载 web 端可填写报表怎么控制某些人能填某些格,而另一些人不可以

1. 填报表权限控制即控制哪些用户可以看到哪些填报表,哪些用户看不到。处理方式:做不同的表格给不同的人用,简单粗暴,但是如果用户及报表较多,那工作量就很大了。除此之外,还有一种情况,就是同一个报表对不同的用户可见。具体可参考润乾报表权限管理机制 之 资源树权限控制。后者相较前者,大大减少了报表开发的工作量,只需对用户做报表可见控制即可。2. 填报编辑控件权限控制指对同一个报表,不同的用户可编辑的数据格或可做的操作不同,多用于流程填报审核。比如:报表 A, 用户甲登录后不可

2020-06-30 20:45:29 246

转载 怎样快速做个 BI 系统

自己从头零开始开发必定是最慢的。要快,更好的方式是直接买 BI 软件。这就涉及选什么样的产品,不能随便买,得根据自己的需求想清楚。1、BI 系统需独立部署。(1)独立部署独立使用使用 BI 离不开用户权限,所以当前 BI 产品的存在形式基本都是整套 BI 系统,有完善的组织组织架构管理、登录验证、权限管理及 BI 功能模块,部署后直接可以使用。(2)独立部署,跨系统调用成套 BI 系统部署后,通过搞单点登录、权限同步可做到与其他系统间的跨系统调用。所以,针对独立部署的情况最快的方式是

2020-06-30 20:41:58 750

转载 BIRT 中如何根据参数动态拼接 SQL

BIRT可以使用sql query来创建数据集,通过在报表中设置参数(Parameter)来传递客户端的用户输入,同时可以设置Dataset参数并且与报表参数关联(这两个参数是不同的),这样可以将客户端的用户输入传递给Dataset的参数供sql query的where语句使用,这是通常的创建sql语句的做法,但是这种方法只适合固定的sql语句,对于拼接动态的sql就不适用了。比如要处理这么个场景:根据传入的用户名、起止日期,分级别查询出不同的订单信息。author存储用户部门信息,account存储账

2020-06-30 20:38:38 299

转载 业务人员怎么做数据采集分析?

数据采集的技术很多也很方便(例如最简单的上传 excel),但是为啥大部分采集的实际工作还是技术人员来做的,这是因为采集的数据需要能做自动化的分析处理,这就要求数据是结构化的,比如需要采集某个城市下超市的具体产品信息,业务人员绘制出来的表格如下图所示:实际数据应该存成如下图所示结构化的数据(数据以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相同的):这个过程如果没有程序员参与的话就很难了。当然业务人员不需要了解要存成什么样,但是程序 / 工具必须得替业务人员处理好这一个过程,否则

2020-06-30 20:33:00 166

转载 BI、OLAP、多维分析、CUBE 这几个词是什么关系?

这些词我们在建设分析型应用时经常会听到,这几个词也经常被弄混,这里来梳理一下。BIBI 是 Business Intelligence(商业智能)的缩写,是指企业利用已有数据进行数据分析从而指导商业决策的过程。BI 有广义和狭义之分,广义上的 BI 是指只要涉及利用数据及其分析结果进行商业决策的行为都属于 BI 的范畴;而狭义上的 BI 则主要多维分析,在实际工作中,狭义 BI 也更流行一些。著名的啤酒和尿布的故事曾一度在 BI 领域广泛传唱,据说沃尔玛通过数据分析发现了在某一时间段啤酒和尿片的销

2020-06-30 20:27:16 201

转载 报表工具都有哪些应用部署方式?

回答这个问题之前,我们先来看看报表工具到目前为止都有哪些形态,虽然国产的大部分都是 java 语言开发的,功能方面也基本相同,但是形态还是有差异的。差异在于,有一些厂商始终把报表定位为一个通用工具类中间件产品,因其特性,使得集成商与自己的产品或项目做集成时比较简便且灵活,这也是大部分集成商希望的一个定位。另外有些厂商,不愿意只挣工具的钱了,想把报表包装成一个通用的平台,既能挣工具的钱,又能挣一部分平台的钱,这个形态的优点是,遇上一些需求简单的终端用户可以直接拿来用;缺点是,很多项目定制程度高,统一平

2020-06-30 20:21:27 126

转载 报表工具能实现怎么的导出效果?

用报表工具开发,核心功能是把各种数据源的数据以表格或图表的形式在线上网页端呈现出来。但是很多场景都是线上和线下结合,既要方便线上在系统中查看到报表,同时还得能和传统的线下业务无缝贴合,比如把结果导出到文件来流转、电子归档呀之类的,这时就需要报表工具具备强有力的所见即所得的导出本领。当前,对报表工具来说,支持导出基本算是标配功能,除了开源报表工具在支持的文件类型上有限制外,对于商业报表工具来说,常用的文件类型,几乎没什么区别,比如都支持导出 word、excel、pdf、txt 等。至于使用的技术细节

2020-06-30 20:16:30 135

转载 国内十大活跃报表 BI 产品深度点评

目前国内市场上的报表 BI 工具琳琅满目,看起来也各有特点,这给选型工作带来了一些困扰,本文就一些较活跃的报表 BI 产品进行点评,对于不太熟悉这些产品和技术的同学,可作为参考资料。这里选了十个产品,分作四类:国内报表类,国内 BI 类,国外 BI 类,国外开源报表类。每类两三种产品,在分类内大体会按面市时间为序来点评。需要强调的是,因为篇幅有限,不可能把市场上所有产品都选入,这并不意味着其它产品不好,看到结论部分时就会理解。这么分类是有意义的,同类产品大体具有相似的特征。其中,国内产品被分为报表和

2020-06-30 20:10:05 535

转载 传说中的中国复杂报表都长什么样?有什么特点?

最开始中国式报表这个术语是针对国外的报表工具来说的,当时国外的报表工具只能做一些格式很规整的报表,到了中国以后发现有很多报表做不出来,或者做起来极不方便,还需要大量的人工编程。这些报表成了国外报表工具的恶梦,于是把复杂难做的报表称为“中国式”的。这些很难做的中国式复杂报表后来被我们的国产厂商(最早是润乾 ) 解决了,让国产报表工具在这个领域内战胜了国外报表工具,成为了报表工具的标准。现在又有一些 BI 产品号称可以让业务人员自己随意做报表,一劳永逸地解决报表问题,不由得让用户产生很多遐想。但这是一句

2020-06-30 20:05:22 204

转载 一句话计算出 TopN 的增长情况

比如,一年中污染最严重三天的 PM2.5 涨幅,了解这个涨幅,就能观察出严重污染是突然出现的,还是逐渐积累起来的。用 SQL 语句找出污染最严重的三天,不算难:select top 3 * from T order by pm25 desc但后面的步骤比较麻烦,要找到这三天的前一天,还要和前一天的数值做计算,如果不是 SQL 高手,还真不能随手把这个 SQL 写正确。如果用集算器 SPL 语言描述这个计算过程,就比较清晰,从数据库得到原始数据:>T=connect(”mysqlD.

2020-06-24 17:31:12 118

转载 像物流跟踪信息那样的时间轴报表怎么做?

这种效果自己可以基于 HTML5 和 CSS3 来实现垂直时间轴,需要循环遍历数据,判时间轴的长度,在做一定的适配,可以响应页面布局,在 PC 和移动手机上做到很好的自适应,但是需要一些对前端知识有一定的了解。其实,通过报表工具实现那种垂直的时间轴记录表是很容易的,设置也很简单,通过带有一个带有时间轴元素的图片和报表的跟随扩展功能就能轻松实现,不涉及到什么前端知识,具体可以参考看下这篇文 报表工具怎么制作带有时间轴的记录表? ;就 PC 和移动端展现来说,润乾报表提供了自适应页面,不需要做过多的适配..

2020-06-24 17:28:51 383

转载 BIRT 如何用 rest api 接口获取 json 做报表

关键词导读:Json数据源 Rest API数据源BIRT中不能构建JSON数据源,虽然一些开源社区提供了解析JSON数据源插件,但几乎所有插件都非常底层,并且使用起来很不方便,因此并不值得推荐。BIRT的常规办法是创建一个“脚本数据源”,在该脚本源上连接到URL并自行解析结果,但脚本写起来非常麻烦,而且工作量很大。比如要处理这么个场景:根据传入参数,调用REST API,返回嵌套的JSON数据,部分数据格式如下: [ { "id": 10...

2020-06-24 17:23:39 304

转载 SQL 如何查询连续上涨 N 次的记录

用SQL如何查询连续上涨N次的记录?这个问题用SQL来做很难!SQL的理论基础是无序集合,早期SQL也没有次序的概念,需要用JOIN造出次序,连续上涨这种问题就非常困难。后来在SQL2003标准中加入了窗口函数,一定程度地缓解了这个问题,但解决连续上涨问题仍然并不轻松。举个例子:查询连续n天上涨的股票,现有数据库表stock数据如下:code stockdate close 000062 2015-01-05 8.91 000062 2015-01-06

2020-06-24 17:18:43 1261

转载 BIRT 异构跨库的动态关联查询怎么做

BIRT自带的Data Sources Join以及用ETL转化为同库等方案都难以解决此类问题。具体可以通过如下示例讨论:交易明细数据(trade表)存储于生产系统的数据库DB2中,另外一部分业务数据(network表、account表)存储于业务系统的Mysql中,它们其中的关联关系如下图所示:所谓“动态关联”,是指用户在前台界面输入参数,报表通过参数来决定trade和哪张表做关联,并在报表中显示关联后的数据,实际运算中可能还要进行数据过滤和汇总。查询流程如下图所示:...

2020-06-24 17:08:01 166

转载 大屏报表中如何实现多图表间的联动?

方法 1: 如果有提供 DBD 功能的报表工具,那么可以直接使用 DBD 中自带的联动设置,简单快捷,例如: 大屏联动竟如此简单???方法 2: 如果采用的报表工具不支持 DBD,那么我们可以把整个大屏报表拆分成多个单报表,在报表工具中实现各个报表组件的绘制,然后通过 iframe 或者其他前端技术整合到一起显示到前端页面,并实现联动设置。例如使用 iframe 挂载报表时,可以通过 iframe 之间的联动设置实现图表间的联动效果。方法 3: 如果没有采用报表工具,那么大屏报表制作以及组件间的联动

2020-06-24 17:03:23 277

转载 查询面板中如何实现两个 select 下拉框的关联查询?

方法 1: 通过码代码实现关联查询功能,思路如下:对第一个 select 下拉框添加 onchange 事件,当用户选择了第一个 select 下拉框的值后,就会进入 onchange 事件,在这个事件中获取选中的 value 值,然后使用 ajax 根据这个值查询关联的第二个 select 下拉框,并将结果返回显示到页面。这种方式在大数据量关联过滤时,容易出现性能问题。方法 2: 使用报表工具提供的关联过滤的功能,通过简单的设置就可以实现下拉数据的关联过滤,例如 编辑风格之下拉数据集关联过滤

2020-06-24 16:56:56 1091

转载 什么是 BI?和报表有什么关系?有了 BI 还要做报表吗?

BI 是商业智能(Business Intelligence)的缩写,是数据分析领域的一个大类,其内容包含多维分析、报表查询、数据可视化、系统管理等方面,属于典型的 OLAP(在线联机分析)业务。构成 BI 系统的各部分关系大概这样:固定报表和多维分析彼此独立,前者用于业务复杂、格式固定的报表查询,后者用于相对简单的用户自助查询;固定报表和多维分析都具备实施部分数据可视化的能力;BI 系统外围是相应管理功能。有时大家狭义地认为 BI 就是多维分析(自助报表),上了多维分析就可以满足所有用户的查询

2020-06-24 16:52:03 4990

转载 BI 和 AI 都有 I,是一回事吗?

BI 和 AI 虽然长得挺像,但实际却没什么关系,完全不是一回事。BI 的主要工作是查询统计,根据企业生产经营过程中产生的数据按照业务部门的查询需求进行统计分析,比如查询 2019 年各地区销售情况,今年和去年的销售额同期比,资产负债表等。BI 主要是由数据仓库技术、报表技术、多维分析技术以及相当一部分可视化技术组成和实现的,其中数据仓库承担了大部分的计算工作,而数据库体系内并不涉及过于复杂的数学运算,因而在 BI 中的计算也很简单,对数学的要求也不高。那 BI 到底智能在哪呢?BI 的 I

2020-06-24 16:20:15 468

转载 报表工具能实现怎么的导出效果?

用报表工具开发,核心功能是把各种数据源的数据以表格或图表的形式在线上网页端呈现出来。但是很多场景都是线上和线下结合,既要方便线上在系统中查看到报表,同时还得能和传统的线下业务无缝贴合,比如把结果导出到文件来流转、电子归档呀之类的,这时就需要报表工具具备强有力的所见即所得的导出本领。当前,对报表工具来说,支持导出基本算是标配功能,除了开源报表工具在支持的文件类型上有限制外,对于商业报表工具来说,常用的文件类型,几乎没什么区别,比如都支持导出 word、excel、pdf、txt 等。至于使用的技术细节

2020-06-24 16:13:07 239

转载 填报表如何生成 UUID 标识

针对这类问题最直接有效的办法就是在数据库端定义字段自动增长,因为不管多少个用户,对数据库来说只是一个更新数据库的命令队列。但数据库主键自增长默认生成的均为固定步长的连续数值,如果要创建 UUID 主键的话,可能需要通过触发器实现。如果选对了报表工具,我们就可以不依赖数据库,在报表端轻松生成 UUID 标识。大致实现步骤:1. 在报表展现的 jsp 页面中定义 UUID 方法如下:functionnewUUID() { varuuid=""; ...

2020-06-19 18:36:20 338

转载 填报表怎么跟踪用户操作,记录日志?

大多数报表工具中填报一般只能做基本的数据增删改操作,不提供记录用户操作的功能,但基本都提供了提交的接口方法,可供二次开发修改。实现思路: 在数据库中新增一张操作日志表,用于保存操作的用户信息。 通过代码自定义方法向数据库插入数据。 其中,自定义方法所做处理如下:首先,获取当前报表数据库链接,并记录被操作填报表的初始状态保存至对象 A 中;然后,在操作提交入库前再次截取 web 页面的数据状态保存至对象 B 中;最后,通过 for 循环对比对象 A、B 找出被操作的记录,并

2020-06-19 18:31:32 261

转载 SQL 如何在时间序列中根据字段变化分组

将排序(一般按时间排)后的数据按某字段变化分组统计,也就是分组字段值与上一行的值比较,如果相同则分到与上一行同组,不同时则创建一个新组。这个问题用SQL来做很难!SQL的集合是无序的,早期SQL没有相邻行引用的方法。SQL2003标准中加入了窗口函数,能引用相邻行,但分组仍然非常困难,需要用子查询人为造出分组序号。举个例子:查询人员某段时间所处城市,并列出起始和结束时间。现有数据库表footmark数据如下:NAME FOOTDATE CITY Tom 2020...

2020-06-19 18:28:23 202

转载 报表工具能否代替 BI?

在一般项目中报表工具是能够代替 BI 的,目前用到 BI 的功能主要是用来做数据的展示,以报表和数据分析为主。在报表需求中,国内的报表格式通常会比较复杂,像一些经常提到的中国式复杂报表,BI 中带的报表功能很难实现,这类报表就需要专业的报表工具来实现,所以即使是一些专业的 BI 项目,也是需要报表工具配合的,比如:有了 BI 还要做报表吗?而 BI 中的数据分析,现在的用户需求比较灵活,通常需要个性化的定制工作,商用的 BI 接口比较封闭,所以如果有修改就需要商用 BI 的厂家进行二次开发工作,

2020-06-19 18:21:56 116

转载 开源 BI 的 实用性怎么样

这个要看具体的使用场景,比如公司内部简单用来分析下数据,那么是可以用的,按照工具中自带的一些例子改改就行,但是如果要做一些商用项目时就不是太适合,开源 BI 一般是免费产品,工具成本低,但是最大的问题是没有支持服务,有问题只能去一些论坛上搜,即使有 bug 基本上也没法处理。所以如果做一些商用的项目,建议采用性价比高的一些半开源的产品,这种产品一般会提供丰富的接口,这样就可以自己在产品基础上做灵活的二次开发来符合自己的项目需要,而且也会有专业的技术支持,有问题也能及时解决。这里介绍了几个比较常用的开

2020-06-19 18:18:34 121

转载 SQL 如何查询每个分组都出现的字段值

数据分组以后,要找出在每个分组中都出现的某个字段值。用SQL来解决这个问题并不容易!SQL缺少单纯的分组操作,只能返回各分组的统计值,而不能对各组的成员再进行更细的交、差、并等集合运算。要解决这种问题就需要多层嵌套子查询来变相地实现。举个例子:查询每周都加班的员工以进行表彰。现有加班数据表OVERTIME_WORK数据如下:WORKDATE NAME 2019-07-01 Tom 2019-07-02 John 2019-07-03 Tom 2019-

2020-06-18 19:03:18 907

转载 一句话实现字段拆分成多行

把表中某字段根据分隔符拆分成N个字符串后,再用这N个字符串把这一行演变成N行。用SQL来解决这个问题非常烦琐!SQL里没有提供集合对象,不能提供根据拆分后的字符串集合把一行变成多行的操作。解决这个问题的思路就是先求出字段拆分后的最大字符串个数M,然后构造一个M行1列的临时表T2,其列名为lv,则各行lv值分别为1,2,……,M,然后用原表与之叉乘,叉乘时取字段拆分后的第T2.lv个字符串。这样写出来的SQL是多个子查询嵌套而成,其语法是比较复杂的。而且各种数据库中拆分字符串的函数并不统一,所以SQL

2020-06-18 18:57:52 323

转载 SQL 如何返回最大值所在的多条记录

SQL 中通过 top 或 limit 子句得到第一条数据不难,再配合排序,就能得到最大的那一行:select top 1 * from T order by f desc如果最大值有多条记录,想全部得到,就需要子查询得到最大值,然后二次遍历数据得到和最大值相同的所有记录:select * from T where f=(select max(f) from T)或用窗口函数 rank() 做一下排名,然后取第 1 名:select * from (select T.*,rank()over(

2020-06-18 18:51:53 960

转载 有没有简单易用的数据挖掘工具?

近年来,随着人工智能的普及,出现许多开源编程类工具,以 Python 和 R 为代表,此类工具操作灵活,支持多种数据挖掘相关拓展库。而且,因为开源而完全免费。但是,无论是图形化操作工具还是开源编程类工具,都要求使用者具备丰富的统计学经验、机器学习算法知识,否则无法建出优质模型。在建模效率上数据预处理、模型选择和调参过程耗费了建模师大量的精力和时间,效率低下。一个数据挖掘项目往往要耗费几周到几个月不等的时间。如果使用易明智能建模工具,这些事就都省了。易明智能建模工具将统计学和机器学习的专家经验融入到产

2020-06-18 18:47:41 139

转载 零编码制作报表可能吗?

要回答这个问题,首先要明确啥程度算“零编码”?以 Excel 为例,如果把写 Excel 公式(包括复杂一些的)看做零编码;而把写 Excel VBA 看做编码的话,报表开发是可以零编码的!但是,这有个前提:在数据(集)准备好的情况下才可以零编码!为什么这么说?我们知道报表开发主要分两个阶段:第一阶段是为报表准备数据,也就是把原始数据通过 SQL/ 存储过程加工成数据集;第二阶段是使用已准备的数据编写表达式做报表呈现。在报表工具提供的 IDE 里可视化地画出报表样式,然后再填入一些把数据

2020-06-18 18:43:05 143

转载 填报需求:页面显示固定行数据,不足时补空记录

需求描述填报表每次固定显示一定的行数。 比如, 数据库有三条数据, 填报表需要显示十行内容, 多余显示出来的 7 行内容留着备用。 如果需要增加数据的时候, 可以直接在多余出的行内添加内容。点击提交, 将新增的内容保存到数据库中。实现原理在来源脚本里进行动态判断处理,判断当前取出来的记录数是否够 10 条,如果够,那么直接按照已有数据展现到页面进行修改,否则将剩余行数用空记录补足。实现过程1、来源脚本A1:=connect(“demo”)// 连接数据源B1:=A1.query

2020-06-17 22:40:35 218

转载 填报需求:行转列填报表的制作

需求描述数据库中表结构如下图所示:填报表需要按照如下格式去展现数据让用户修改:这种填报需求可以归纳为是行转列填报表的制作。实现原理填报制作需要符合来源、界面、去向严格对应原则,那么我们可以拆开来看:界面是行转列之后的效果,所以来源脚本里需要进行行转列处理,保证和界面一致。去向里更新时按照实际数据库物理表结构更新,所以需要再转回来后进行更新。实现示例1、来源脚本A3:=A2.pivot(CLASS,STUDENTID;SUBJECT,SCORE) // 对取出来

2020-06-17 22:38:15 84

转载 报表怎么做“其他”分组

SQL 中分组是很常见的运算,是将一个集合按照某种规则拆分成若干个子集,常常伴随着对子集的进一步汇总计算。报表中我们通常称这种分组为“等值分组”。实现这种等值分组也很容易,只需要按照指定字段做 group(), 再针对分组做聚合运算即可。如下图 1:关于等值分组图中可以看到对应设置的每个表达式,这里不多做说明,重点看下面其他分组举例:有时除了上述等值分组外,我们还希望做到部分分组(又称不完全分组,即不把所有的记录用于分组,只保留用户关心的分组项,其余的组全部归并成一组)。多.

2020-06-17 22:28:24 166

转载 为什么说当前报表开发的工作量主要在数据源环节?又如何解决呢?

我们知道,报表开发主要有两个阶段。第一阶段:数据准备。将原始数据加工成报表需要的结果集(数据源);第二阶段:数据呈现。根据已准备的结果集(数据源)编写表达式将数据以表格或图形方式呈现。这两个阶段虽然处于同一报表开发过程,但实现方式却大不相同。通常原始数据距离报表“能用”还相去甚远,通过 SQL/JAVA/ 存储过程等编码方式准备报表可用的数据源是第一阶段的目标,过程中可能涉及复杂的数据处理过程,因而这个阶段会牵扯较多的精力,占用的工作量也多。数据源准备好后,通过报表工具来解决数据以何种方式(

2020-06-17 22:22:27 204

转载 用存储过程和 JAVA 写报表数据源有什么弊端?

我们在报表开发中经常会使用存储过程准备数据,存储过程支持分步计算,可以实现非常复杂的计算逻辑,为报表开发带来便利。所以,报表开发中这样的存储过程并不少见:3008 行,141KB 的存储过程,会给报表开发带来什么不好的影响?1. 编辑调试性存储过程难以编辑调试,这样几千行存储过程的开发周期往往要以周或月计,这样会严重影响报表的开发效率,而业务提的报表需求似乎都“很急”。2. 维护性相对开发的一次性,维护的工作可能要经常做。实际业务中报表经常会修改,这种现象叫做报表业务的稳定性差。报表的数

2020-06-17 22:15:28 222

转载 什么是报表的多样性数据源问题?如何解决?

在报表开发早期,报表连接的数据源基本只有关系数据库,而且经常只有一种或者只有一个数据库。但今天就不一样了,数据源种类繁多,除了 RDBMS 还有1.MongoDB、Cassandra、HBase、Redis 这些 NoSQL 数据库;2.TXT/CSV、Excel、JSON/XML 等文件;3.HDFS 等分布式文件系统;4.webService;5.ES、Kafka 等其他数据源形式……当这些都成为报表数据源,报表需要从这些数据源分别或混合取数运算进行报表呈现时,报表就出现了多样性

2020-06-16 20:58:41 262

转载 报表的性能问题是怎样产生的?又该如何解决?

报表性能是总也避不开的话题,报表作为 OLAP(在线联机分析)中的主要应用场景,无论从涉及数据的宽度(表数量),还是数据的广度(查询范围)都可能非常巨大;而且在报表中还经常伴随非常复杂的数据处理逻辑,这些都会影响报表的运行速度。而服务器环境、数据库环境、JDBC 效率、网络环境、客户端环境这些也都都跟报表性能密切相关。报表性能可能跟很多因素有关,非常复杂。这里我们试着从报表运行的各个阶段来分析报表性能问题产生的主要原因及其应对方法。未尽之处,欢迎讨论。我们知道报表运行主要分报表解析、数据准备、数据传

2020-06-16 20:50:44 248

转载 什么是大报表?如何解决大报表的问题?

实际业务中有些报表比较“大”,查询出的报表数据行数可以达到几千万甚至上亿,这类行数很多的报表通常被成为“大报表”。大报表大部分情况下是清单明细报表,少量是分组报表。大报表查询通常不会采用一次性取出所有记录再交给前端呈现的方式,因为这样要等很久,用户体验极差;而且报表服务器内存也吃不消。常见的方式是通过分页来呈现大报表,一次只取一小部分数据,取数结束后立刻交给前端呈现,当页码变化时再取出相应页数的数据,这样可以加快报表呈现速度,用户几乎没有等待感。具体如何实现呢?有几种方式。1. 数据库分页

2020-06-16 20:44:05 178

转载 中间表是什么?和报表有什么关系?会带来怎样的问题?又如何解决?

在数据库中有一类用于保存中间计算结果的物理表,通常被称为“中间表”。中间表主要跟 OLAP(在线联机分析)业务有关,产生的原因主要有以下几方面。中间表来源1. 计算逻辑复杂在 OLAP(报表或查询)业务中,有些计算逻辑很复杂,每次都从头写会导致报表开发过于繁琐,而且有的计算用 SQL 很难写出来。这时会采用中间表事先计算好,再基于预计算的中间结果开发报表。计算逻辑复杂常见于报表业务中,以固定报表最为常见;多维分析则比较少见。2. 查询性能差当查询涉及的数据量很大或者计算逻辑很复杂时查

2020-06-16 20:37:23 390

转载 报表工具有哪些打印技术?

在 C/S 时代,报表是由应用程序显示的,可以直接操控打印机来实现打印。进入到 B/S 时代后,报表呈现变成浏览器的事情了,而浏览器中的 JS 编程不能直接控制打印机,只能依靠浏览器本身的打印能力。这种方式下的问题很多,比如不能精确分页,浏览器一般是根据用户设置的页面大小和 web 页面的内容多少来自行决定分页位置,程序员很难控制;再比如不能准确对齐边边距及打印文字,无法实现发票套打等功能。浏览器为弥补这些能力,提供了 ActiveX 控件,这相当于把原来的 C/S 前端程序搬进了浏览器,这样就可以解决

2020-06-16 20:30:25 372

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除