报表性能优化
文章平均质量分 69
刨坑数据
这个作者很懒,什么都没留下…
展开
-
主子报表数据源来自异构数据库的解决方法(Jasper report为例)
主报表和子报表(或Table表)使用不同的数据库时。JasperReport/Birt等报表工具从功能上可以处理,但在子报表中无法直接使用数据源名,需要使用显式的数据库账号、口令。可以看到这种方式存在一定的安全隐患,而且实施过程比较复杂。集算器具有结构化强计算引擎,支持多样性数据源,集成简单,可以协助报表工具方便地实现此类需求,下面通过一个例子来说明主子报表多数据源的实现过程。原创 2015-02-13 16:35:16 · 1091 阅读 · 0 评论 -
BIRT实现组内跨行计算
问题来源:http://developer.actuate.com/community/forum/index.php?/topic/36160-dealing-with-previous-rows-groups-sorts-and-subtotals/ 组内跨行计算一般要用SQL窗口函数或报表脚本去实现,但代码比较复杂,这种情况下可以用集算器来辅助报表工具,下面用例子来说明。原创 2015-06-26 10:49:31 · 1509 阅读 · 0 评论 -
报表系统结构优化之中间数据外置
绝大多数报表项目的数据库中,除了支撑系统运行的业务数据表之外,还有很多中间表。业务数据表是报表系统必须的基础数据表,是支持报表系统运行的持久化数据层,例如:销售报表系统中的订单、客户、产品等等。报表中间表则是计算和生成报表的中间计算过程,中间表的名字经常是五花八门。 按道理说,业务数据表应该是大部分,报表中间表只是小部分。但是,实际情况却恰恰相反。有些运行了较长时间的报表系统中,报原创 2015-06-05 09:24:21 · 1574 阅读 · 0 评论 -
报表数据源之多结果集
多样性数据源在报表开发中越来越常见,润乾集算报表对多样性数据源的有效支持使得这类报表开发变得非常简单,目前集算报表除了支持不同类型的数据源(RDB、TXT文本、Excel、JSON、HTTP、Hadoop、mongodb)外,还支持在一个数据集中为报表返回多个结果集使用,这样可以有效避免重复运算,提升报表开发效率和运算性能。下面通过一个实例说明多结果集的使用过程。报表说明根据学生成绩表查询原创 2015-04-17 13:34:54 · 1419 阅读 · 0 评论 -
报表多样性数据源之MongoDB
MongoDB等nosql数据库具有易扩展和高性能等优势,但计算能力比传统SQL要弱,例如MongoDB的分组结果不能太大,且不直接支持join运算等,而集算报表内置的计算引擎再正好可以补充这一点,在获得MongoDB的优势的同时还拥有较强的计算能力。 我们通过一个分组实例来了解一下集算报表使用MongoDB数据源开发报表的过程。报表说明 学生成绩信原创 2015-04-21 08:49:49 · 2717 阅读 · 0 评论 -
用脚本实现报表的动态数据源
报表系统中有一些报表往往要根据条件连接不同的数据源,从而完成报表展现。这种需要在不同数据源间切换的情况我们称为动态数据源。一般报表工具实现动态数据源往往要依靠第三方程序(JAVA等)实现,润乾集算报表则可以通过内置的脚本完成,本文将通过一个例子来了解实现过程。 报表说明 学生信息中通过参数控制报表连接的数据源,参数status为1时连接数据源一(dev_1),否则连接数据原创 2015-04-14 08:24:13 · 1458 阅读 · 0 评论 -
润乾集算报表用脚本实现混合数据源报表
润乾集算报表支持在同一报表内使用不同类型的数据源,可以是RDB、TXT文本、Excel、JSON、HTTP、Hadoop、mongodb等。集算报表中使用混合数据源不依赖第三方程序(如JAVA),使用内置的脚本(数据集)即可完成,下面通过例子来说明使用过程。 业务系统中将订单信息存储到JSON格式的文件中,报表查询时需要读取JSON文件与数据库表(维表)进行联合查询。这里以查询某原创 2015-04-07 09:50:15 · 1016 阅读 · 0 评论 -
报表应用的计算中间层
在传统的报表应用中,源数据的计算一般有三种方式:1、报表工具直接连接数据库取数,源数据的计算是提交SQL由数据库完成的;2、报表工具利用自身的计算能力(单元格函数或格间计算),实现部分数据计算;3、报表工具通过API调用Java程序实现数据计算。 下面,我们比较一下这三种方式,并探讨最佳方案。 首先,来看数据库计算。 数据库计算的优势是:数据一原创 2015-04-03 10:51:25 · 795 阅读 · 0 评论 -
不定列(动态列)报表的数据源处理
动态列报表是动态报表的一种,在报表应用中很常见。这类报表由于无法事先确定列数,因而无法在报表中使用固定列的表达式,而且更加棘手的是报表数据源的准备,因为SQL不支持不定列的结果集,需要动态拼出SQL语句去执行,有时业务逻辑并不很简单,还需要使用存储过程分步完成。而存储过程对集合运算的支持不够,难以使用中间结果(要用临时表),导致完成这类运算并不轻松。 像http://bbs.csd原创 2015-03-10 16:14:19 · 2946 阅读 · 0 评论 -
润乾报表附加数据集在集算报表中的处理方法
在润乾报表中提供了附加数据集功能,可以在一个单元格(主格)中关联多个数据集,关联后多个数据集如同一个数据集使用。当数据集较多需要相互关联,甚至多个数据集来源于不同数据库时,使用附加数据集可以快速完成关联且能够获得更高的报表性能。 集算报表在润乾报表的基础上去掉了附加数据集的功能,取而代之可以使用集算器或脚本数据集完成多数据集关联,通过脚本返回的层次数据集快速完成这类报表的开发。原创 2015-03-27 14:37:58 · 2639 阅读 · 0 评论 -
灵活数据源的固定行列交叉报表的制作
论坛里,http://bbs.csdn.net/topics/390883416中提的问题,其目的是为了实现一个固定行列的交叉表,用SQL准备好固定行数的数据源很麻烦。而润乾集算报表则有很灵活的计算能力,可以充分利用问题特点应付各种非常规的计算需求。这里就以链接中业务为背景,给出集算报表实现某种固定列交叉报表的方案。报表背景 源数据如下: 现需要原创 2015-03-20 10:51:34 · 1084 阅读 · 0 评论 -
非常规统计报表之制作按段分组报表的新办法
报表开发中,经常会碰到一些需要进行非常规统计的报表,固定分组、可重复分组、组内排序,还包括跨行组计算的报表,甚至有些报表本身无数据来源、以及需要对数据源再计算。这些报表本身具备一定的特殊性,使用常规方法往往难于实现。 对于按段分组报表,各段之间可以有重复,也就可能出现按段可重复的分组报表。集算报表在完成这类特殊统计报表时比较简单,这里通过一个实例说明实现过程。报表说明原创 2015-02-27 14:37:15 · 800 阅读 · 0 评论 -
减少报表隐藏单元格提升报表性能
如果报表携带大量隐藏格,会对其性能影响很大。这是因为大量隐藏格会占用内存、降低运算速度。而且隐藏单元格除了单元格值外,还记录了很多显示属性值,比如:字体、颜色、显示方式等等。虽然单元格隐藏了,但是这些属性还在,而且带着这些属性计算,也会影响计算速度。 下面这个《1997年订单情况统计》报表就是比较典型的隐藏格影响性能的例子:这个报表的“比去年同期”是指与去年同月原创 2015-02-10 14:09:02 · 722 阅读 · 0 评论 -
集算器生成动态列结果集
问题来源:http://bbs.csdn.net/topics/391012377 。 表1(tb1)中部分源数据如下: Prjno Subtask Ddate Num P9996 P9996-sub002 2015-01-01 123 P9996 P9996-sub002 2015-01-02 134原创 2015-10-13 08:47:24 · 565 阅读 · 0 评论