如何实现报表数据的动态层次钻取(一)
在报表项目中有时会遇到进行动态层次钻取的需求,这种报表的开发难度一般都较大。而润乾报表的实现则相对简便很多。下面就以《各级部门 KPI 报表》为例,讲解润乾报表(需要结合集算器实现)实现此类报表的过程。《各级部门 KPI 报表》初始状态如下图:当前节点是根节点“河北省”,要求报表显示当前节点的下一级节点“地市”,以及汇总的 KPI 数值。Kpi 又分为普通指标和 VIP 指标两类,共四项。当点击“
如何制作动态层分组报表
润乾报表提供了单元格同值合并的功能,可以实现动态层次的分组报表。这里通过一个例子来说明使用过程。目标报表:需要根据参数动态传递分组字段,按不同维度汇总订单运货费。如参数输入“货主地区, 货主城市”,显示的报表效果如下:当参数输入“货主地区, 运货商, 货主城市”时,报表显示如下:以下为具体实现步骤:1、连接数据源连接润乾报表设计器自带 DEMO 数据源:2、设置报表参数新建报表,并设置报表参数如下
如何动态改变报表的行高列宽
报表应用中有时需要动态控制行高或列宽以满足特定需要。如分组报表中要求每个分组的总高度 / 宽度固定不变,这样一来就能实现每页纸打印相同数量的分组。润乾报表可以在行高列宽属性中编写表达式,从而实现动态行高列宽,下面通过一个例子说明使用过程。1、连接数据源使用润乾报表设计器,连接自带数据源 DEMO2、设置数据集新建报表并设置数据集,使用 SQL 取数数据集 ds1 如下:SELECT STATE,E
如何实现参数和报表间的联动效果
在交互分析中,报表经常需要根据参数进行实时变化。也就是“参数联动”效果,下面就通过一个例子说明润乾报表是如何实现这种需求的。页面的左侧为参数输入区域,右侧的数据报表需要根据参数实时查询结果,效果如下图:实现步骤:1 准备报表连接默认的 demo 数据源,制作如下报表:其中,报表参数为:用于接收地区和城市参数。报表数据集为:2 定义参数输入定义参数输入页面,如下:<html> &l
如何实现报表的批量打印需求
在 web 报表应用中,经常会遇到批量打印的需求,即点击一次打印按钮,实现多张报表的打印输出。润乾报表提供了两种不同的打印方式(applet 打印、PDF 打印)实现批量打印需求,同时也支持横纵报表打印。下面我们就来看一下每一种方式的具体实现方法。一、applet 批量打印1、环境配置要求applet 打印要求客户端至少正确配置了 jre 环境目前 applet 打印只支持 IE 内核浏览器2、实
如何在报表中实现算法的可挂接需求
在报表项目中,有些报表中部分数据的计算方法会经常改变。例如:某企业员工的实际工资是通过绩效得分计算出的,而绩效的算法可能经常变动,需要在不改动其他代码的情况下用新算法替换旧算法。一般我们都会想到用 Java 来实现计算,从而实现动态可挂接计算模块,但是这种方式可能存在缺乏基础类库、占用多余内存等问题。这里我们介绍一种可以实现低耦合、热部署的动态挂接算法,使得解决此类问题更具结构性优势,这就是结合集
如何开发主从报表
主从报表是一种很常见的报表需求:报表数据分为上下两部分,上方为汇总说明信息,下方为明细列表信息。如何快速制作这类报表呢?下面我们通过一个例子来看一下润乾报表是如何做的:需求说明:销售系统中的客户订单表样式如下:报表上半部分显示订单基本信息,下半部分显示订单明细信息,每个订单呈独立的卡片式显示。润乾报表开发步骤如下:1、连接数据源使用润乾报表设计器,连接自带数据源 DEMO。2、设置数据集新建报表并
如何实现参数级联查询
参数级联查询是查询控件之间的一种互动方式,比如在某个下拉框选定选项后,另一个下拉框里的选项范围会随之变化。润乾报表提供了多种编辑风格,每种编辑风格都有丰富的属性,以此为基础实现参数级联查询也很简单。下面就通过一个例子说明实现过程。要求:参数模板中的城市根据地区联动,如地区选择华北,后面的城市只能选择华北地区下的城市。如下图示:具体实现步骤如下:1 连接数据源使用润乾报表设计器,连接自带数据源 de
如何在数据处理中实现补足空白行效果
几乎任何形式的文档和报表都离不开分页,报表如何分页在 B/S 模式的 Web 报表中也是个常见的问题,特别是当大数据量的 Web 报表需要打印输出时,不可能将所有数据打印到一张纸上,这时必然涉及到报表的分页。其中,一个常常遇到的实际问题是:当数据比较多时,在分页后,常常最后一页只有几条数据,这样的报表被打印出来以后,看起来不是很美观。那么,是否能在 Web 报表最后一页不足行的时候自动用空白行补充
填报脚本之轻松搞定复杂表的数据入库
你还认为填报表只能完成标准行列布局的数据填报?还在因表样复杂,填报分片错乱,设计不够灵活而苦恼?还在为业务填报表样设计灵活,但数据不能实时入库而感到惋惜?那要先“祝贺”看到这段话的你了,这个难题遇到集算器脚本迎刃而解了。(撒花撒花….)下面来举栗证实一下。了解基本情况:某单位上级下发统一报表模板其中包含 5 列(即 5 个字段),下级操作时随时可能在原表基础上增加字段,且增加的字段不需要
多数据源报表性能优化方案
润乾报表支持在同一报表内使用不同类型的数据源,包括 RDB、TXT 文本、Excel、JSON、HTTP、Hadoop、mongodb 等。润乾报表中使用混合数据源不必依赖第三方程序(如 JAVA),只须使用内置的脚本(数据集)即可完成,下面通过例子来说明使用过程。业务系统中将订单信息存储到 JSON 格式的文件中,报表查询时需要读取 JSON 文件与数据库表(维表)进行联合查询。这里以查询某个发
混合异构数据源关联计算优化方案
在报表项目中,报表数据源常常会来自于多种异构数据源,例如:关系型数据库(oracle、db2、mysql)、nosql 数据库(mongodb)、http 数据源、hadoop(hive、hdfs),甚至是 excel 或者文本文件。针对这类情况,通常的做法是采用 ETL 工具,将这些数据源都同步到数据仓库中再进行计算。不过这种做法存在以下问题:1、配置复杂,难度较大;2、成本较高;3、数据无法实
带隐藏格报表的性能优化方案
报表中可以通过隐藏格进行有效的辅助计算,但如果报表携带大量隐藏格,又会对性能产生很大影响。这是因为大量隐藏格会占用内存、降低运算速度。而且隐藏单元格除了单元格值外,还同时记录了很多显示属性值,比如:字体、颜色、显示方式等等。虽然隐藏单元格并不显示,但是这些属性还在,如果带着这些属性计算,同样也会影响计算速度。下面这个《1997 年订单情况统计》报表就是一个典型的隐藏格影响性能的例子:这个报表的“比
存储过程性能低怎么破?
报表应用中实现数据源计算经常会使用存储过程,但同时也带来多方面的问题。首先,存储过程的包只提供一层分类,无法用树形结构组织,容易造成代码管理混乱。而有些程序员更是直接在现场在线修改存储过程,也不利于代码管理。其次,升级存储过程时需要数据库的写权限,容易对数据安全造成影响。另外,由于 SQL 固有的一些问题(数据无序、缺乏集合、无法引用、分步不彻底,等等),使得存储过程的编程也比较困难。很多情况下选
多层次报表的性能优化方案
多层次报表是常见的报表形式,典型的如分组报表和主子报表。其中的关联运算(组与明细、主表和子表)由于有层次而不能直接在数据库中完成,需要在报表端完成。而报表端一般只能采用排序和遍历的方法实现关联,性能又比较差。本文介绍的润乾报表可以利用层次数据集(需要结合集算器实现)在数据源计算过程中完成关联计算,并且将有层次的结果集直接传送给报表进行呈现,从而做到在关联计算中充分利用集算器的高效算法,达到优化性能
固定格式填报表的制作
今天要学习的固定格式填报表效果图如下所示: 左侧为固定内容,蓝色部分是需要客户填写的内容,最后将整个页面数据更新到数据库表中。这里的难点在于,如何把左侧固定内容也更新到数据库中,也就是如何设置单元格分区。带着这个问题我们来看一下具体实现步骤:第一步 新建填报表编辑填报表内容和样式,如下图所示:一般这类报表会对应一个 excel 效果文件,我们可以通过“
多库取数的性能优化方案
当数据库表数据量较大时,报表性能往往不高,此时仅针对 SQL 或报表端进行优化,效果往往不明显。这种情况下要显著提升性能,可以考虑采用并行多库的方式,即采用一定规则(如时间)将数据分库分段存储,而报表同时访问多个数据库进行数据计算,最后在报表中进行汇总展现。不过,一般报表工具并不具备这种并行取数汇总的能力,因此访问多个数据库读取分段数据就需要借助 Java 等高级语言完成,而使用 Java 编写这
如何解决报表关联计算中的性能问题
报表开发过程中经常要在报表中完成数据关联计算,有时为了降低报表制作复杂度,会将关联关系放到可视的报表模板中完成;而有时则必须在报表中完成关联,如多数据源、异构数据源的情况。在报表中做关联往往导致报表效率不高,计算过慢,从而引发性能问题。为此,润乾报表提供了高性能数据关联方式(需要结合集算器实现),可以显著提升报表的计算效率。这里就通过一个常见的多源关联分片报表实例来说明润乾报表的实现过程:报表说明
如何提高报表的取数性能
报表在展现或导出时往往需要从数据库中取出大量数据,而 JDBC 的取数速度一向比较慢,有可能成为报表各运算环节的短板或瓶颈,从而严重影响整个报表的生成效率。针对这一问题,润乾报表可以利用并行计算机制(需要结合集算器实现)来显著提高 JDBC 的取数性能。所谓并行取数是指,使用多线程技术在报表工具与数据库之间建立多个连接,同时读取一份源数据。这种读取方式需要将源数据分段,每个线程(数据库连接)读取其
分组填报表的制作
在前面几篇文章中,我们一起学习了行式填报表制作的相关内容,也了解了多源 SQL 和脚本两种数据处理方式,今天我们来研究一下如何制作分组填报表。同样地,我们以 demo 示例库中的雇员表信息维护为例,在数据填报页面,需要实现以下效果:1)雇员信息按照地区分组显示2)雇员基本信息可进行修改效果图如下图所示:在制作分组填报表之前,我们先来看一下它的设计原理。原理说明:分组填报表中有两个维度:分组维度和明