- 博客(36)
- 收藏
- 关注
转载 如何降低报表应用的耦合度
传统报表开发的两个阶段,数据准备和数据呈现往往使用不同方式实现(前者使用 SQL 或 JAVA,后者使用报表工具),物理上的分离导致报表修改维护要保证两处的一致,这样势必引起报表应用和数据库 /JAVA 程序的高耦合。如何降低报表应用的耦合度?让报表不再依赖 SQL/JAVA,仅用报表工具就可以实现。...
2019-12-19 10:16:08
206
转载 如何通过报表单元格右键控制报表跳转到不同链接地址
需求说明:润乾报表的单元格中支持超链接属性,用户可以通过设置该属性,实现在浏览器端用鼠标点击某个单元格跳转到指定页面,并且还能够传递所需要的参数,从而实现数据的钻取(详见《玩转报表超链接》)。不过这种超链接的设置方式只能跳转到单一的指定页面,在一些特殊的业务要求中,用户可能需要基于一个单元格查看不同的明细信息。比如,用户在访问一个地区列表时,既想经由该页面查看某地区的销售收入情况,又想查看该地...
2019-12-18 12:10:14
190
转载 行式填报之主键设置
填报功能是报表工具不可或缺的功能之一,此功能可以让用户在页面中进行数据维护操作。特别是在行式填报中,用户不仅可以修改数据,而且可以插入 / 添加新数据或删除已有数据。这样,在更新行式填报页面中的数据记录时,主键字段就会涉及 insert 和 delete 操作,而对于不同类型的主键我们应该如何进行更新设置?有哪些方面是需要我们注意的呢?下面我们将以雇员信息表的维护为例探讨一下主键设置的相关内容。...
2019-12-18 12:06:19
330
转载 填报表之数据留痕
随着信息时代的快速发展,报表工具的应用也越来越普遍,其中难免会涉及到很多填报需求。比如:数据采集录入填报时如何只更新当前修改行、用报表工具实现树状层级结构的填报表、web 操作数据留痕等等,今天我们主要来介绍一下 web 操作数据留痕,简单说就是填报表从 A 表取数,将 web 端修改记录更新到 B 表保存操作记录……如果您还不明白,其实就相当于记录您某个账号的登录时间地点。下面我们具...
2019-12-18 12:03:53
293
转载 填报脚本之轻松搞定复杂表的数据入库
你还认为填报表只能完成标准行列布局的数据填报?还在因表样复杂,填报分片错乱,设计不够灵活而苦恼?还在为业务填报表样设计灵活,但数据不能实时入库而感到惋惜?那要先“祝贺”看到这段话的你了,这个难题遇到集算器脚本迎刃而解了。(撒花撒花….)下面来举栗证实一下。了解基本情况:某单位上级下发统一报表模板其中包含5 列(即 5 个字段),下级操作时随时可能在原表基础上增加字段,且增加的字段...
2019-12-18 12:00:07
191
转载 格间计算性能提升方案
一般情况下,如果报表中存在很多格间计算(即单元格之间的关联计算),那么通常会影响报表性能。这是因为:1、格间计算很难分步骤编写,导致运算过程很难优化。2、格间计算可能需要多次遍历单元格集才能完成运算。3、格间计算往往要利用较多隐藏格作为中间变量。而隐藏格除格值外,还记录了很多与显示相关的属性值,比如:字体、颜色、显示方式等。即便设置了单元格隐藏,但这些属性还在,依然会占用内存,影响计算...
2019-12-18 11:57:22
128
转载 交叉填报表的制作
在常见的分组填报基础上,还常常会遇到这样一种填报需求:将多层分组填报进行行转列操作,从而实现交叉填报效果。下面我们通过一个具体的实例来看一下如何制作简单的交叉填报表。需求说明把以科室和指标为分组字段的多层分组填报表进行行转列操作,实现如下图所示的交叉填报表:其中,科室和指标为扩展行列,从库表中取数;黄色部分为用户可修改的数据列;预算值 = 工作量 ...
2019-12-18 11:53:01
291
转载 如何实现报表直接打印需求
直接打印是常见的报表打印需求,即点击打印按钮后直接把结果输出到打印机,使用户的操作更加简便。润乾报表提供了三种不同的打印方式,都可以实现直接打印功能,下面我们就来看一下每一种方式的具体实现方法。一、直接打印效果1、applet 打印Applet 打印目前只支持 IE 内核浏览器,且需要客户端至少正确安装配置了 jre 环境。在 IE 内核浏览器进行直接打印时,会直接把报表结果输出到...
2019-12-18 11:49:32
726
转载 实现报表与算法的统一管理
在报表项目中,常常有些复杂的数据计算是一个报表专门使用的,其它报表用不到。通常,此类计算可以在报表数据源中用 SQL 实现,不过由于 SQL 无法分步计算,需要写非常复杂难懂的长语句,不利于调试和维护,因此也会使用 Java 或者存储过程来实现。但这样一来,计算程序又会和报表模板分开,不利于组织管理。使用润乾报表的脚本数据集(结合集算器实现)来实现报表专用计算,是解决上述困境的一个有效手段,一...
2019-12-18 11:45:34
135
转载 实现报表数据预先计算
报表应用中,如果数据量较大或计算过程较复杂,往往会导致报表数据源准备过慢,从而影响报表性能。这种情况下可以预先计算报表需要的数据,在呈现时直接引用,使得用户在访问报表时可以迅速地获得响应。一、当前的手段及弊端由于报表在访问时常常需要参数,因此显然不可能把所有参数组合对应的报表数据源都准备好,所以预先计算通常只生成中间数据,在呈现时仍然要再进行一些后续的简单计算(如过滤、分组汇总、排序等)。...
2019-12-18 11:42:38
127
转载 实现报表数据分库存储
报表项目中,常常会出现报表源数据来自不同数据库的情况,也就是同一张报表可能会从多个业务系统读取数据。例如:员工信息从人力资源系统中取出,销售数据从销售系统中取出。当然,还有一种可能,同一应用系统的数据库负载太大,不得已分成多个数据库,例如:销售系统数据分成当前库和历史库。在数据库类型方面,报表工具可能连接同样类型的数据库,比如都是 oracle 或者 db2;也可能是不同的类型。报表应用中...
2019-12-18 11:34:55
243
转载 如何实现参数级联查询
参数级联查询是查询控件之间的一种互动方式,比如在某个下拉框选定选项后,另一个下拉框里的选项范围会随之变化。润乾报表提供了多种编辑风格,每种编辑风格都有丰富的属性,以此为基础实现参数级联查询也很简单。下面就通过一个例子说明实现过程。要求:参数模板中的城市根据地区联动,如地区选择华北,后面的城市只能选择华北地区下的城市。如下图示:具体实现步骤如下:1 连接数据源使用润乾报表设计器,...
2019-12-17 09:27:29
442
转载 如何在数据处理中实现补足空白行效果
几乎任何形式的文档和报表都离不开分页,报表如何分页在 B/S 模式的 Web 报表中也是个常见的问题,特别是当大数据量的 Web 报表需要打印输出时,不可能将所有数据打印到一张纸上,这时必然涉及到报表的分页。其中,一个常常遇到的实际问题是:当数据比较多时,在分页后,常常最后一页只有几条数据,这样的报表被打印出来以后,看起来不是很美观。那么,是否能在 Web 报表最后一页不足行的时候自动用空白行补充...
2019-12-17 09:25:27
440
转载 多数据源报表性能优化方案
润乾报表支持在同一报表内使用不同类型的数据源,包括 RDB、TXT 文本、Excel、JSON、HTTP、Hadoop、mongodb 等。润乾报表中使用混合数据源不必依赖第三方程序(如 JAVA),只须使用内置的脚本(数据集)即可完成,下面通过例子来说明使用过程。业务系统中将订单信息存储到 JSON 格式的文件中,报表查询时需要读取 JSON 文件与数据库表(维表)进行联合查询。这里以查询某...
2019-12-17 09:22:39
2254
转载 混合异构数据源关联计算优化方案
在报表项目中,报表数据源常常会来自于多种异构数据源,例如:关系型数据库(oracle、db2、mysql)、nosql 数据库(mongodb)、http 数据源、hadoop(hive、hdfs),甚至是 excel 或者文本文件。针对这类情况,通常的做法是采用 ETL 工具,将这些数据源都同步到数据仓库中再进行计算。不过这种做法存在以下问题:1、配置复杂,难度较大;2、成本较高;3...
2019-12-17 09:19:37
182
转载 带隐藏格报表的性能优化方案
报表中可以通过隐藏格进行有效的辅助计算,但如果报表携带大量隐藏格,又会对性能产生很大影响。这是因为大量隐藏格会占用内存、降低运算速度。而且隐藏单元格除了单元格值外,还同时记录了很多显示属性值,比如:字体、颜色、显示方式等等。虽然隐藏单元格并不显示,但是这些属性还在,如果带着这些属性计算,同样也会影响计算速度。下面这个《1997 年订单情况统计》报表就是一个典型的隐藏格影响性能的例子:这...
2019-12-17 09:17:37
98
转载 存储过程性能低怎么破?
报表应用中实现数据源计算经常会使用存储过程,但同时也带来多方面的问题。首先,存储过程的包只提供一层分类,无法用树形结构组织,容易造成代码管理混乱。而有些程序员更是直接在现场在线修改存储过程,也不利于代码管理。其次,升级存储过程时需要数据库的写权限,容易对数据安全造成影响。另外,由于 SQL 固有的一些问题(数据无序、缺乏集合、无法引用、分步不彻底,等等),使得存储过程的编程也比较困难。很多情况...
2019-12-17 09:12:52
285
转载 多层次报表的性能优化方案
多层次报表是常见的报表形式,典型的如分组报表和主子报表。其中的关联运算(组与明细、主表和子表)由于有层次而不能直接在数据库中完成,需要在报表端完成。而报表端一般只能采用排序和遍历的方法实现关联,性能又比较差。本文介绍的润乾报表可以利用层次数据集(需要结合集算器实现)在数据源计算过程中完成关联计算,并且将有层次的结果集直接传送给报表进行呈现,从而做到在关联计算中充分利用集算器的高效算法,达到优化...
2019-12-17 09:09:47
127
转载 固定格式填报表的制作
在前面几篇文章中,我们学习了多种类型填报表的制作,对润乾报表的填报机制有了一定的了解。今天我们来研究一下如何制作固定格式填报表,同时检验下自己之前学习的内容是否已熟练掌握。今天要学习的固定格式填报表效果图如下所示:左侧为固定内容,蓝色部分是需要客户填写的内容,最后将整个页面数据更新到数据库表中。这里的难点在于,如何把左侧固定内容也更新到数据库中,也就是如何设置单元格分区。...
2019-12-17 09:04:13
232
转载 多库取数的性能优化方案
当数据库表数据量较大时,报表性能往往不高,此时仅针对 SQL 或报表端进行优化,效果往往不明显。这种情况下要显著提升性能,可以考虑采用并行多库的方式,即采用一定规则(如时间)将数据分库分段存储,而报表同时访问多个数据库进行数据计算,最后在报表中进行汇总展现。不过,一般报表工具并不具备这种并行取数汇总的能力,因此访问多个数据库读取分段数据就需要借助 Java 等高级语言完成,而使用 Java 编...
2019-12-17 08:59:20
213
转载 如何解决报表关联计算中的性能问题
报表开发过程中经常要在报表中完成数据关联计算,有时为了降低报表制作复杂度,会将关联关系放到可视的报表模板中完成;而有时则必须在报表中完成关联,如多数据源、异构数据源的情况。在报表中做关联往往导致报表效率不高,计算过慢,从而引发性能问题。为此,润乾报表提供了高性能数据关联方式(需要结合集算器实现),可以显著提升报表的计算效率。这里就通过一个常见的多源关联分片报表实例来说明润乾报表的实现过程:报表...
2019-12-17 08:54:40
84
转载 birt 报表与润乾报表对比
BIRT,全称Business Intelligence and Reporting Tools,是为 Web 应用程序开发的基于 Eclipse 的开源报表系统,它的特点在于以 Java 和 JavaEE 为基础;而在当下商用报表系统中,润乾报表也同样以Java为基础,并支持对J2EE系统的嵌入式部署。那么,它们之间有哪些不同呢?这里我们就对这两种报表系统进行一下对比分析。初见报表安装使...
2019-12-16 19:47:17
167
转载 自助报表是个什么鬼?
一:什么是自助报表?报表是 BI 项目中呈现数据最直观的方式,目前使用报表常用的方式是由技术人员根据用户需求提前定义设计好报表模板,用户使用时在页面端基于已有的模板对数据进行查询、打印、导出等操作。这种方式能够很好地满足相对固定的报表需求,而随着业务的深入以及业务人员能力的提升,越来越多的人希望自己能够通过一些简单的拖拽操作来快速查看到自己关心的数据,进而逐步确定最终的报表格式。我们把这种报表...
2019-12-16 19:39:29
145
转载 web 如何实现精准打印
在 WEB 系统中,打印是必不可少的一个功能,但也是一个比较棘手的问题。如果完全自己开发,由于涉及浏览器的局限性、js 兼容性、稳定性等因素,往往耗时长、工作量大,最终严重影响项目周期。特别地,在 WEB 环境下,套打需求的实现时难度更大,此时需要将浏览器中呈现的 HTML 精确地打印到票据中,实现对分页位置的控制。常用的 WEB 打印实现方式有哪些呢?1、 利用浏览器自带的打印控件来实现...
2019-12-16 19:34:16
329
转载 填报之动态扩展列
在填报开发中,常见的填报表样式有很多,其中就包含了网格式填报、交叉填报等,如下图这种大多都是单一数据来源,进行取数回填的,基本不涉及在报表中处理数据表间的关联分组等复杂情况。下面我们通过一个具体的实例来看一下如何制作这种复杂的填报表 – 动态列。需求说明如下图表格中左右用不同颜色划分出了两块:分别是 A-D(蓝色部分)、E-V(黄色部分)其中: A-D 为固定列,...
2019-12-16 19:30:58
147
转载 自由格式填报的制作
在数据采集阶段,对于每个用户的信息采集,往往是给出一张空白表单供用户填写信息使用,随着网络化线上平台的不断发展,一些原本需要在纸质页面填写的信息,都转移到了线上。比如:用户信息采集报表这种报表大多都不像网格式那样整齐的排成一行,而是将一个人或一条数据的信息,自由的分布在多行,样式自由,美观(如下图)。那么,这种自由格式的填报表该怎么制作呢?下面我们通过一个具体的实例来看一下。需求说明...
2019-12-16 19:26:34
144
转载 复杂报表设计之动态报表
需求说明如上图所示,可以需选择不同的分组维度进行数据分析,例如类别、供应商维度;可以通过用户输入的参数值进行数据动态过滤,例如传入不同供应商、类别的值进行数据查询过滤;可以选择要显示的附加字段数据;同时要求显示有排名(每个分组内的数据从大到小显示)、占比(产品占该分组维度总订购量的百分比)。制作过程:1. 数据准备此示例使用脚本数据集完成数据的准备工作,此处使用脚本数...
2019-12-16 19:22:16
163
转载 如何通过动态参数实现周报制作
需求描述在货品交易系统里,用户不仅要看当天的交易情况,还需要查看一周 / 一个月 / 一年的情况,也叫做周报 / 月报 / 年报。下图所示就是其中订货信息周报的效果。它是如何根据用户输入的一个日期查询出该日期所在周的订货信息表的呢?实现步骤1、 参数配置其中,arg1 是用户输入的日期,对应普通参数;arg2 是基于 arg1 计算得到的一周的起始日期,对应动态参数,表...
2019-12-16 19:15:36
218
转载 报表如何实现行列互换效果?
通常我们设计的二维的交叉报表,横向的维度和纵向的维度是固定的,而用户希望更希望能根据自己的需要快速转换横向纵向维度来查看报表。如上图所示,我们通过点击一个按钮或文字,就可将报表的行列维度互相转换,这样的动态转换效果要怎么设置实现呢?这里我介绍两种方法实现方法:1. 两张报表超链接2. 单张报表动态判断两张报表超链接实现思路:二维的交叉报表行列维度有两种情况,我们只需...
2019-12-16 18:42:13
444
原创 大数据集报表点击表头排序
在润乾官方在线 demo的 "交互报表" 中,有介绍 "点击表头排序" 的报表案例,该报表针对普通统计类报表。对于使用大数据集的报表,当按照此方式改造时发现排序没起作用或仅对第一页或前几页排序,后面的都没成功。要想了解啥原因导致?就需要分析该报表的做法及知道大数据集的取数原理。首先,来分析下在线 demo“点击报表排序”的做法。润乾报表中实现排序的方式有两种:1、 借助数据集 sq...
2019-12-16 18:34:45
219
转载 如何将重复数据突出显示?
将表格中一列数据中重复的,使用特殊颜色突出显示或者使用一些符号标记出来。例如:一个供应商,可以邀请别的供应商加入成为联合体,报表要显示所有供应商,然后供应商最后一列显示所有联合体,当联合体供应商跟别的供应商重复时要突出显示,并且加星号。特殊颜色突出显示用设计器自带 demo 数据源中的订单明细数据表,使用向导创建一张分组报表,如下图所示。针对所有订单中的产品 ID 进行判断...
2019-12-16 18:22:05
517
转载 报表工具中动态参数的灵活运用
报表开发过程中,有的时候我们会觉得普通参数很难满足一些业务需求,比如第二个数据集要引用第一个数据集的结果进行计算,动态控制 SQL 的过滤条件,动态列等,如果您遇到了这种情况,可以尝试使用动态参数即 ${参数名} 的方式来达到我们想要的效果。那么,什么是动态参数呢?动态参数一般是依赖于普通参数的具有计算能力的参数,在报表中动态参数我们可以看做是一个占位符,在报表运算之前,系统会全面搜索整张...
2019-12-02 08:51:08
156
原创 设计好的报表是如何在 web 上显示的
润乾报表主要用来开发在 java web 端呈现的报表工具,设计器为桌面版,那么开发后的报表如何发布到 web 端是用户较为关心的问题。润乾报表 web 端发布,采用 Taglib 方式,只需要在 jsp 内引入标签库,调用具体的标签(如,report:html)发布即可,可嵌入任何 jsp 页面。具体怎么做?方法一:一般情况下,使用润乾自带 demo 下提供的 Jsp 可直接实现...
2019-12-02 08:47:03
318
转载 多值关联过滤
场景在项目中做查询表单或者填报表时,经常会有动态关联的业务需求,比如省市区的关联,润乾填报 / 参数表单报表不仅可以实现单个省市区的动态关联,还可以实现多省市区的动态关联。下面我们就以润乾报表示例数据库现有的数据表—客户表和订单表 为例,来举例介绍一下数据多选的动态关联。最终效果实现步骤绘制主表,这里是一个简单的网格表单 统计不同城市的客户量以及销售额。单元格表达式如下图...
2019-12-02 08:42:42
131
原创 Logo(图片)作为报表水印的解决方法
概述在《像 word 一样增加水印功能》中,已经介绍了如何在润乾报表中增加文字水印功能,包括了静态及动态水印。水印功能将标识信息嵌入到报表载体后,使得信息安全、版权保护有了更有效的方法。水印除了纯文字形式,还有一种情况采用图片的形式,比如常用的 Logo。整体效果如下Logo 如下(为了看得更清晰,logo 用较大点的图片)《像 word 一样增加水印功能》文中介绍的方...
2019-12-02 08:39:01
241
转载 报表如何批量导出成 excel 文件
需求说明报表展现后可以通过工具栏中的导出按钮将当前展现的报表导出成 excel 文件,但是在实际使用中通常会要求报表不需要展现,直接通过一些操作将报表导出成 excel 文件,并且往往会要求批量导出成 excel 文件,下面通过几个示例介绍下报表不展现,如何批量生成 excel 文件。实现这种需求一般要用到 api 方式,批量生成 excel 文件,按照方式上来分大体上可以分为三类:一...
2019-12-02 08:34:12
562
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人