自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 填报表中也可以添加 html 事件

在实际的项目开发中,填报表的应用十分广泛。多数情况下,填报表会作为整个项目的一部分配合需求灵活使用,但有时也会受大项目环境的影响,产生一些特别的要求。比如,通常报表单元格的数据类型大多是文本,有时却需要借助 HTML 或者 JavaScript 实现一些交互效果,例如在报表中添加一些说明性的提示、自定义功能性按钮等。显然,单纯的文本数据类型不支持这种交互操作,那么我们就会想填报表是不是能够支持...

2019-12-30 08:11:17 106

转载 填报表之数据留痕

随着信息时代的快速发展,报表工具的应用也越来越普遍,其中难免会涉及到很多填报需求。比如:数据采集录入填报时如何只更新当前修改行、用报表工具实现树状层级结构的填报表、web 操作数据留痕等等,今天我们主要来介绍一下 web 操作数据留痕,简单说就是填报表从 A 表取数,将 web 端修改记录更新到 B 表保存操作记录……如果您还不明白,其实就相当于记录您某个账号的登录时间地点。下面我们具...

2019-12-30 08:10:27 136

转载 如何制作动态层分组报表

润乾报表提供了单元格同值合并的功能,可以实现动态层次的分组报表。这里通过一个例子来说明使用过程。目标报表:需要根据参数动态传递分组字段,按不同维度汇总订单运货费。如参数输入“货主地区, 货主城市”,显示的报表效果如下:当参数输入“货主地区, 运货商, 货主城市”时,报表显示如下:以下为具体实现步骤:1、连接数据源连接润乾报表设计器自带 DEMO 数据源:2...

2019-12-30 08:09:53 153

转载 如何在报表中实现算法的可挂接需求

在报表项目中,有些报表中部分数据的计算方法会经常改变。例如:某企业员工的实际工资是通过绩效得分计算出的,而绩效的算法可能经常变动,需要在不改动其他代码的情况下用新算法替换旧算法。一般我们都会想到用 Java 来实现计算,从而实现动态可挂接计算模块,但是这种方式可能存在缺乏基础类库、占用多余内存等问题。这里我们介绍一种可以实现低耦合、热部署的动态挂接算法,使得解决此类问题更具结构性优势,这就是结...

2019-12-30 08:09:23 108

转载 如何在数据处理中实现补足空白行效果

几乎任何形式的文档和报表都离不开分页,报表如何分页在 B/S 模式的 Web 报表中也是个常见的问题,特别是当大数据量的 Web 报表需要打印输出时,不可能将所有数据打印到一张纸上,这时必然涉及到报表的分页。其中,一个常常遇到的实际问题是:当数据比较多时,在分页后,常常最后一页只有几条数据,这样的报表被打印出来以后,看起来不是很美观。那么,是否能在 Web 报表最后一页不足行的时候自动用空白行补充...

2019-12-30 08:08:49 174

转载 如何自定义报表导出的文件名

润乾报表文件通过 TAG 标签方式发布,导出 EXCEL、word、PDF 的文件名称默认与报表文件名称相同,例如,报表文件名叫 gcxmsyqk.rpx, 那么这张报表导出 excel 时文件名称就是 gcxmsyqk.xlsx。如果需要用其他规则来命名导出的结果文件名,例如将“gcxmsyqk.rpx”的结果文件导出为“工程项目收益情况统计报表 (每季度由成本分析报告负责人整理提供)....

2019-12-30 08:08:04 516

转载 实现报表与算法的统一管理

在报表项目中,常常有些复杂的数据计算是一个报表专门使用的,其它报表用不到。通常,此类计算可以在报表数据源中用 SQL 实现,不过由于 SQL 无法分步计算,需要写非常复杂难懂的长语句,不利于调试和维护,因此也会使用 Java 或者存储过程来实现。但这样一来,计算程序又会和报表模板分开,不利于组织管理。使用润乾报表的脚本数据集(结合集算器实现)来实现报表专用计算,是解决上述困境的一个有效手段,一...

2019-12-30 08:07:24 118

转载 实现报表数据分库存储

报表项目中,常常会出现报表源数据来自不同数据库的情况,也就是同一张报表可能会从多个业务系统读取数据。例如:员工信息从人力资源系统中取出,销售数据从销售系统中取出。当然,还有一种可能,同一应用系统的数据库负载太大,不得已分成多个数据库,例如:销售系统数据分成当前库和历史库。在数据库类型方面,报表工具可能连接同样类型的数据库,比如都是 oracle 或者 db2;也可能是不同的类型。报表应用中...

2019-12-30 08:06:37 129

转载 实现报表数据外置计算

在报表应用中,针对历史数据查询的报表占比很大,这类报表的特点是:第一,数据变化小,查询的历史数据几乎不会发生变化;第二,数据量大,而且还会随时间不断增加。如果这些历史数据始终存放在数据库中,由于大多数数据库的 JDBC 性能都很低下(取数过程的数据对象转换比从文件中读取数据慢一个数量级),当涉及数据量较大或并发较多的时候,报表的性能会急剧下降。显然,如果能将这些变化不大的历史数据移出数据库,采用文...

2019-12-30 08:05:57 104

转载 实现报表数据预先计算

报表应用中,如果数据量较大或计算过程较复杂,往往会导致报表数据源准备过慢,从而影响报表性能。这种情况下可以预先计算报表需要的数据,在呈现时直接引用,使得用户在访问报表时可以迅速地获得响应。一、当前的手段及弊端由于报表在访问时常常需要参数,因此显然不可能把所有参数组合对应的报表数据源都准备好,所以预先计算通常只生成中间数据,在呈现时仍然要再进行一些后续的简单计算(如过滤、分组汇总、排序等)。...

2019-12-30 08:04:30 104

转载 在报表中录入数据时如何实现行列转换

应用场景及需求:某电力集团在实际应用中需要在填报数据时将数据库中的字段以更符合业务人员使用习惯的方式进行呈现,其中就有行列转换的情况。在常规的应用开发中,一般都是通过专门设计的数据界面进行录入,然后再通过程序转换存入数据库。而现在有了集算器支持的润乾填报表,就能够处理各种有关数据结构的填报需求了,这种行列转换自然也不在话下。首先,我们来看一下行列转换的准确含义:在一些企业应用中,一些指...

2019-12-29 16:28:42 264 1

转载 如何在报表中绘制 SVG 统计图

SVG 作为一种矢量图形,具有任意缩放不失真、可被高质量打印、文件较小、交互性强等优势,正逐渐成为一种主流的图片格式。润乾报表一方面可以生成 SVG 格式的统计图,另一方面也可以在 HTML5 中直接嵌入 SVG 统计图,方便用户在 PC 端或移动端查看。下面通过一个示例说明润乾报表生成 SVG 统计图的过程。制作报表1、连接数据源打开润乾报表设计器,菜单栏选择工具 - 数据源,...

2019-12-29 14:59:50 106

转载 如何用报表工具实现树状层级结构的填报表

需求说明对于带有层级结构的数据中,用户为了能够更加清晰直观地查看,往往需要在数据展示时将层级展示出来,比如常见的省、市、县结构,或者一些科目中也会带有层级。通常,我们管这种形式叫做树状报表。在查询统计类报表中可以使用报表的左主格来实现,但是由于填报模型更加侧重于数据处理,格式设计上有别于查询统计报表,往往较难实现树状报表。下面,我们通过一个层级科目的例子介绍一下在填报表中如何实现这个需求。...

2019-12-29 12:32:50 407

转载 如何通过报表单元格右键控制报表跳转到不同链接地址

需求说明:润乾报表的单元格中支持超链接属性,用户可以通过设置该属性,实现在浏览器端用鼠标点击某个单元格跳转到指定页面,并且还能够传递所需要的参数,从而实现数据的钻取(详见《玩转报表超链接》)。不过这种超链接的设置方式只能跳转到单一的指定页面,在一些特殊的业务要求中,用户可能需要基于一个单元格查看不同的明细信息。比如,用户在访问一个地区列表时,既想经由该页面查看某地区的销售收入情况,又想查看该地...

2019-12-29 12:22:51 197

转载 如何提高报表的取数性能

报表在展现或导出时往往需要从数据库中取出大量数据,而 JDBC 的取数速度一向比较慢,有可能成为报表各运算环节的短板或瓶颈,从而严重影响整个报表的生成效率。针对这一问题,润乾报表可以利用并行计算机制(需要结合集算器实现)来显著提高 JDBC 的取数性能。所谓并行取数是指,使用多线程技术在报表工具与数据库之间建立多个连接,同时读取一份源数据。这种读取方式需要将源数据分段,每个线程(数据库连接)读...

2019-12-29 12:05:35 129

转载 如何实现参数级联查询

参数级联查询是查询控件之间的一种互动方式,比如在某个下拉框选定选项后,另一个下拉框里的选项范围会随之变化。润乾报表提供了多种编辑风格,每种编辑风格都有丰富的属性,以此为基础实现参数级联查询也很简单。下面就通过一个例子说明实现过程。要求:参数模板中的城市根据地区联动,如地区选择华北,后面的城市只能选择华北地区下的城市。如下图示:具体实现步骤如下:1 连接数据源使用润乾报表设计器,...

2019-12-29 11:25:58 157

转载 如何实现报表数据的动态层次钻取(一)

在报表项目中有时会遇到进行动态层次钻取的需求,这种报表的开发难度一般都较大。而润乾报表的实现则相对简便很多。下面就以《各级部门 KPI 报表》为例,讲解润乾报表(需要结合集算器实现)实现此类报表的过程。《各级部门 KPI 报表》初始状态如下图:当前节点是根节点“河北省”,要求报表显示当前节点的下一级节点“地市”,以及汇总的 KPI 数值。Kpi 又分为普通指标和 VIP 指标两类,共四...

2019-12-29 09:55:55 158

转载 如何实现报表数据的动态层次钻取(二)

上一篇《如何实现报表数据的动态层次钻取(一)》介绍了利用复杂 sql 实现动态层次结构的方法,但该方法依赖 Oracle 的递归语法,在其他类型的数据库中难以实现。要想通用地实现此类报表,可以使用下面介绍的“集算脚本 + 本地文件”的方法。《各级部门 KPI 报表》的格式和具体要求参见上一篇文章。有所不同的是,报表数据源从数据库表变为本地文件:tree.b(树形结构维表)和 kpi.b(指标事...

2019-12-29 09:55:18 130

转载 如何实现报表直接打印需求

直接打印是常见的报表打印需求,即点击打印按钮后直接把结果输出到打印机,使用户的操作更加简便。润乾报表提供了三种不同的打印方式,都可以实现直接打印功能,下面我们就来看一下每一种方式的具体实现方法。一、直接打印效果1、applet 打印Applet 打印目前只支持 IE 内核浏览器,二、标签属性实现方式润乾报表提供了标签属性配置方式,可以在报表结果显示上方进行直接打印操作,如下图所...

2019-12-29 09:54:30 314

转载 如何实现参数和报表间的联动效果

在交互分析中,报表经常需要根据参数进行实时变化。也就是“参数联动”效果,下面就通过一个例子说明润乾报表是如何实现这种需求的。页面的左侧为参数输入区域,右侧的数据报表需要根据参数实时查询结果,效果如下图:实现步骤:1 准备报表连接默认的 demo 数据源,制作如下报表:其中,报表参数为:用于接收地区和城市参数。报表数据集为:2 定义参数输入定...

2019-12-29 09:52:10 164

转载 如何实现报表的批量打印需求

在 web 报表应用中,经常会遇到批量打印的需求,即点击一次打印按钮,实现多张报表的打印输出。润乾报表提供了两种不同的打印方式(applet 打印、PDF 打印)实现批量打印需求,同时也支持横纵报表打印。下面我们就来看一下每一种方式的具体实现方法。一、applet 批量打印1、环境配置要求applet 打印要求客户端至少正确配置了 jre 环境目前 applet 打印只支持 IE ...

2019-12-28 21:10:47 261

转载 如何开发主从报表

主从报表是一种很常见的报表需求:报表数据分为上下两部分,上方为汇总说明信息,下方为明细列表信息。如何快速制作这类报表呢?下面我们通过一个例子来看一下润乾报表是如何做的:需求说明:销售系统中的客户订单表样式如下:报表上半部分显示订单基本信息,下半部分显示订单明细信息,每个订单呈独立的卡片式显示。润乾报表开发步骤如下:1、连接数据源使用润乾报表设计器,连接自带数据源 DE...

2019-12-28 20:30:05 113

转载 如何解决报表关联计算中的性能问题

报表开发过程中经常要在报表中完成数据关联计算,有时为了降低报表制作复杂度,会将关联关系放到可视的报表模板中完成;而有时则必须在报表中完成关联,如多数据源、异构数据源的情况。在报表中做关联往往导致报表效率不高,计算过慢,从而引发性能问题。为此,润乾报表提供了高性能数据关联方式(需要结合集算器实现),可以显著提升报表的计算效率。这里就通过一个常见的多源关联分片报表实例来说明润乾报表的实现过程:报表...

2019-12-28 19:20:29 127

转载 如何动态改变报表的行高列宽

报表应用中有时需要动态控制行高或列宽以满足特定需要。如分组报表中要求每个分组的总高度 / 宽度固定不变,这样一来就能实现每页纸打印相同数量的分组。润乾报表可以在行高列宽属性中编写表达式,从而实现动态行高列宽,下面通过一个例子说明使用过程。1、连接数据源使用润乾报表设计器,连接自带数据源 DEMO2、设置数据集新建报表并设置数据集,使用 SQL 取数数据集 ds1 如...

2019-12-28 18:42:04 605

转载 脚本中如何做填报数据校验

在很多填报表项目的开发过程中,为了保证数据规范且有效,常会在报表中设置各种校验以达到目的,比如:工资金额最多只允许包含两位小数、邮政编码必须是全数字组成的 6 位数且首位数字不能是 0 ,等等。这些要求,我们都可以利用报表工具提供的数据类型校验、单元格校验等手段来实现,但是总有“意外”情况出现,比如:小计校验要求分组内的各值相加等于分组小计,这种类型的校验有什么难点?怎么实现?下面我们举例实际看一...

2019-12-28 12:12:31 163

转载 脚本填报表的条件查询

在上一篇《脚本模式下的填报表制作》中,我们详细讲述了如何使用脚本进行数据处理、制作填报表,今天我们盘道一下脚本模式下如何实现条件查询。一、需求描述然后再进行增删改操作。例如,先过滤出所关心城市的客户信息,然后再对查询结果进行更新操作。那么,实现这个需求需要解决两个问题:1. 如何让条件录入更加人性化2. 脚本模式下如何实现参数的接收处理和数据过滤?二、实现难点多城市值传入时...

2019-12-28 11:53:48 108

转载 脚本模式下的填报表制作

填报是报表工具不可或缺的功能之一,润乾报表不仅提供了多源 SQL 填报方式,而且提供了脚本模式填报,以便适应不同的填报数据处理需求。在线教程中对多源 SQL 方式做了详细的配置说明,这里就不再赘述了。(附在线教程地址:http://doc.raqsoft.com.cn/report/input/zzygwgstbb.html)今天小编将带领大家解锁另外一种填报处理方式——脚本模式以行式填报...

2019-12-28 11:28:59 236

转载 交叉填报表的制作

在常见的分组填报基础上,还常常会遇到这样一种填报需求:将多层分组填报进行行转列操作,从而实现交叉填报效果。下面我们通过一个具体的实例来看一下如何制作简单的交叉填报表。需求说明把以科室和指标为分组字段的多层分组填报表进行行转列操作,实现如下图所示的交叉填报表:其中,科室和指标为扩展行列,从库表中取数;黄色部分为用户可修改的数据列;预算值 = 工作量 ...

2019-12-28 10:26:22 142

转载 混合异构数据源关联计算优化方案

在报表项目中,报表数据源常常会来自于多种异构数据源,例如:关系型数据库(oracle、db2、mysql)、nosql 数据库(mongodb)、http 数据源、hadoop(hive、hdfs),甚至是 excel 或者文本文件。针对这类情况,通常的做法是采用 ETL 工具,将这些数据源都同步到数据仓库中再进行计算。不过这种做法存在以下问题:1、配置复杂,难度较大;2、成本较高;3...

2019-12-28 09:49:32 131

转载 行式填报之主键设置

填报功能是报表工具不可或缺的功能之一,此功能可以让用户在页面中进行数据维护操作。特别是在行式填报中,用户不仅可以修改数据,而且可以插入 / 添加新数据或删除已有数据。这样,在更新行式填报页面中的数据记录时,主键字段就会涉及 insert 和 delete 操作,而对于不同类型的主键我们应该如何进行更新设置?有哪些方面是需要我们注意的呢?下面我们将以雇员信息表的维护为例探讨一下主键设置的相关内容。...

2019-12-27 23:09:21 115

转载 固定格式填报表的制作

在前面几篇文章中,我们学习了多种类型填报表的制作,对润乾报表的填报机制有了一定的了解。今天我们来研究一下如何制作固定格式填报表,同时检验下自己之前学习的内容是否已熟练掌握。今天要学习的固定格式填报表效果图如下所示:左侧为固定内容,蓝色部分是需要客户填写的内容,最后将整个页面数据更新到数据库表中。这里的难点在于,如何把左侧固定内容也更新到数据库中,也就是如何设置单元格分区。带着这...

2019-12-27 22:52:40 187

转载 多库取数的性能优化方案

当数据库表数据量较大时,报表性能往往不高,此时仅针对 SQL 或报表端进行优化,效果往往不明显。这种情况下要显著提升性能,可以考虑采用并行多库的方式,即采用一定规则(如时间)将数据分库分段存储,而报表同时访问多个数据库进行数据计算,最后在报表中进行汇总展现。不过,一般报表工具并不具备这种并行取数汇总的能力,因此访问多个数据库读取分段数据就需要借助 Java 等高级语言完成,而使用 Java 编...

2019-12-27 22:33:55 116

转载 多层次报表的性能优化方案

多层次报表是常见的报表形式,典型的如分组报表和主子报表。其中的关联运算(组与明细、主表和子表)由于有层次而不能直接在数据库中完成,需要在报表端完成。而报表端一般只能采用排序和遍历的方法实现关联,性能又比较差。本文介绍的润乾报表可以利用层次数据集(需要结合集算器实现)在数据源计算过程中完成关联计算,并且将有层次的结果集直接传送给报表进行呈现,从而做到在关联计算中充分利用集算器的高效算法,达到优化...

2019-12-27 21:40:28 122

转载 动态 SQL 及安全性(Birt vs 润乾)

静态 SQL 与动态 SQL对于题目中提到的动态 SQL,显然应该有一种静态 SQL 与之相对,那么两者应该怎么理解?我们先来个基本的认识。静态 SQL 之“静态”,意味着在执行之前就已经明确了该 sql 在数据库执行后的业务含义,也就是对于做啥事儿我们是清楚的,只不过需要知道这事儿的具体内容有哪些。比如“select userID,username from users where de...

2019-12-27 18:16:37 59

转载 带隐藏格报表的性能优化方案

报表中可以通过隐藏格进行有效的辅助计算,但如果报表携带大量隐藏格,又会对性能产生很大影响。这是因为大量隐藏格会占用内存、降低运算速度。而且隐藏单元格除了单元格值外,还同时记录了很多显示属性值,比如:字体、颜色、显示方式等等。虽然隐藏单元格并不显示,但是这些属性还在,如果带着这些属性计算,同样也会影响计算速度。下面这个《1997 年订单情况统计》报表就是一个典型的隐藏格影响性能的例子:这...

2019-12-27 16:48:14 59

转载 存储过程性能低怎么破?

报表应用中实现数据源计算经常会使用存储过程,但同时也带来多方面的问题。首先,存储过程的包只提供一层分类,无法用树形结构组织,容易造成代码管理混乱。而有些程序员更是直接在现场在线修改存储过程,也不利于代码管理。其次,升级存储过程时需要数据库的写权限,容易对数据安全造成影响。另外,由于 SQL 固有的一些问题(数据无序、缺乏集合、无法引用、分步不彻底,等等),使得存储过程的编程也比较困难。很多情况...

2019-12-26 16:16:41 123

转载 报表中如何控制附件的上传和下载权限

目前,多用户的软件平台已经是再常见不过的了,有成千上万个用户账号的平台也很正常。为了保证每个用户准确访问各自的信息,免不了要做这样或那样的权限控制,而且这种权限控制往往是需要基于数据层面进行管理的。对于报表平台的数据权限管理,我们可以直观地理解为:不同的机构、角色甚至具体到人,在访问同一张报表时所看到的数据都有可能不同的。最常见的例子比如工资条(也可以看做是一张简单的报表),因为绝大多数公司薪...

2019-12-26 15:25:14 108

转载 报表也可以根据单元格计算后结果进行排序

熟悉报表的人都知道,报表中实现数据排序通常有三种方法:1、 在 sql 语句中增加 order by,如 order by id asc2、 select 函数取数时,指定排序字段,如 ds1.select(name:-1),或者按照其他字段排序,如 ds1.select(EMPID, ,,;NAME:1) 按照 NAME 字段升序排序3、 还可以按照某字段汇总后的结果进行排序,如:d...

2019-12-26 14:01:34 264

转载 报表如何集成 echarts 官网示例图

Echarts,江湖人称一个纯 Javascript 的图表库,图形种类星罗棋布且个个颜值爆表,可以轻松驾驭 PC 和移动设备,与绝大部分浏览器都可称兄道弟,而且已然众多拥趸,还有不少报表对它采取了嫁接技术。Echarts 如何与润乾报表嫁接呢?接下来跟着我一探究竟。第一步, echarts 官网找到自己需要的图形代码我们以最简单的折线图为例:https://echarts.baidu.c...

2019-12-26 10:43:14 103

转载 报表工具怎么做模糊查询

在数据查询系统中,我们常常会遇到精准查询和模糊查询。我们知道,对于关系数据库,使用精准查询可以直接在 sql 里面使用“where 字段 = 参数值”来过滤对应的数据,而要实现模糊查询,我们使用的就是 like 的形式。那么,在报表里面该如何使用 like 方式实现模糊查询来过滤数据呢?下面,我们结合润乾报表自带的 hsql 数据库中的客户表,来做一个模糊查询的示例。例如:在下拉框中通过模...

2019-12-25 20:35:09 242

空空如也

空空如也

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

TA关注的人

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