web 如何实现精准打印
在 WEB 系统中,打印是必不可少的一个功能,但也是一个比较棘手的问题。如果完全自己开发,由于涉及浏览器的局限性、js 兼容性、稳定性等因素,往往耗时长、工作量大,最终严重影响项目周期。特别地,在 WEB 环境下,套打需求的实现时难度更大,此时需要将浏览器中呈现的 HTML 精确地打印到纸张中,实现对分页位置的控制。常用的 WEB 打印实现方式有哪些呢?1、 利用浏览器自带的打印控件来实
birt 报表与润乾报表对比
BIRT,全称Business Intelligence and Reporting Tools,是为 Web 应用程序开发的基于 Eclipse 的开源报表系统,它的特点在于以 Java 和 JavaEE 为基础;而在当下商用报表系统中,润乾报表也同样以Java为基础,并支持对J2EE系统的嵌入式部署。那么,它们之间有哪些不同呢?这里我们就对这两种报表系统进行一下对比分析。初见报表安装使用BIR
ireport 与润乾报表对比
纯 Java 开发的可视化报表工具中有两个代表产品,JasperReport+ IReport 和润乾报表,本文将对两者进行比较,看一下各方面的异同。安装JasperReport+ IReport,顾名思义,是由 JasperReport 与 IReport 联合使用的产品组合,其中 JasperReport 是一个开源的纯 JAVA 报表引擎,可以简单的理解为一个提供很多 API 供用户调用的
银行存折套打续打功能 -- 报表如何记录上次打印的位置
在实际项目中,经常会遇到打印的需求,而对于打印的特殊需求也越来越多,例如需要记录上次打印位置,当前打印时根据上次的打印位置继续打印的功能,像银行的存折的数据每次打印都不是用新的纸张,而是根据上次打印的位置继续打印。 在润乾的打印功能中如何实现上述需求呢? 大致思路:首先润乾提供了打印后调用的 js 函数 runqian_printOver(),打印结束后调用 runqian_p
交叉填报表的制作
在常见的分组填报基础上,还常常会遇到这样一种填报需求:将多层分组填报进行行转列操作,从而实现交叉填报效果。下面我们通过一个具体的实例来看一下如何制作简单的交叉填报表。需求说明 把以科室和指标为分组字段的多层分组填报表进行行转列操作,实现如下图所示的交叉填报表:其中,科室和指标为扩展行列,从库表中取数; &n
如何实现报表直接打印需求
直接打印是常见的报表打印需求,即点击打印按钮后直接把结果输出到打印机,使用户的操作更加简便。润乾报表提供了三种不同的打印方式,都可以实现直接打印功能,下面我们就来看一下每一种方式的具体实现方法。一、直接打印效果1、applet 打印Applet 打印目前只支持 IE 内核浏览器,且需要客户端至少正确安装配置了 jre 环境。在 IE 内核浏览器进行直接打印时,会直接把报表结果输出到默认打印机。2、
实现报表与算法的统一管理
在报表项目中,常常有些复杂的数据计算是一个报表专门使用的,其它报表用不到。通常,此类计算可以在报表数据源中用 SQL 实现,不过由于 SQL 无法分步计算,需要写非常复杂难懂的长语句,不利于调试和维护,因此也会使用 Java 或者存储过程来实现。但这样一来,计算程序又会和报表模板分开,不利于组织管理。使用润乾报表的脚本数据集(结合集算器实现)来实现报表专用计算,是解决上述困境的一个有效手段,一方面
实现报表数据预先计算
报表应用中,如果数据量较大或计算过程较复杂,往往会导致报表数据源准备过慢,从而影响报表性能。这种情况下可以预先计算报表需要的数据,在呈现时直接引用,使得用户在访问报表时可以迅速地获得响应。一、当前的手段及弊端由于报表在访问时常常需要参数,因此显然不可能把所有参数组合对应的报表数据源都准备好,所以预先计算通常只生成中间数据,在呈现时仍然要再进行一些后续的简单计算(如过滤、分组汇总、排序等)。不过即便
实现报表数据的可控缓存
使用缓存可以提升报表性能是一个共识,一般高端报表工具都会提供报表缓存功能,将整个报表计算结果缓存在文件系统中,以便用户下次访问参数相同的报表时可以快速读取缓存结果进行展现。润乾报表作为报表工具的领军品牌,当然也具有这种常规的缓存功能。但在有些情况下,报表开发人员还希望进一步控制缓存的内容,比如对于缓存内容,可能只想缓存一部分而不是整个报表结果,或者能够让其它报表或程序复用缓存内容,又比如对于超时设
实现报表数据外置计算
在报表应用中,针对历史数据查询的报表占比很大,这类报表的特点是:第一,数据变化小,查询的历史数据几乎不会发生变化;第二,数据量大,而且还会随时间不断增加。如果这些历史数据始终存放在数据库中,由于大多数数据库的 JDBC 性能都很低下(取数过程的数据对象转换比从文件中读取数据慢一个数量级),当涉及数据量较大或并发较多的时候,报表的性能会急剧下降。显然,如果能将这些变化不大的历史数据移出数据库,采用文
中国式复杂报表:不完全分组报表制作对比(润乾 vs 帆软)
概述在文章《中国式复杂报表:按段分组报表制作对比(润乾 vs 帆软)》中,我们介绍了不规则分组的做法对比。本文将对另一种不完全分组(帆软称“归并分组”)报表的制作进行对比,废话不多说,我们这就实际操作一下,供大家参考。 如上图所示,仅重点关注统计“华北”和“华东”两个地区的数据,其他地区归为“其他”。注:例子均以各产品自带数据库的“订单表及订单明细表”为例,表样如上图。润乾报表做法1、准
中国式报表——介绍信实现(润乾 vs 帆软)
介绍信是一种常见的格式文件,事实上也可以看做一种报表。传统方式是印好空白格式文件,用时手工填写。现在,电子信息系统已经日益普及,介绍信也可以在应用系统中选择人员信息后,通过代码或报表工具直接生成,然后经过电子签章,形成电子文档直接流转。在国内的报表工具中,帆软和润乾都能实现这样的报表,实现方式都是通过富文本,但工具的使用上略有不同,实现效果也有一些差异。首先我们来看下润乾报表的实现:1. 根据要实
如何实现报表数据的动态层次钻取(二)
《如何实现报表数据的动态层次钻取(一)》介绍了利用复杂 sql 实现动态层次结构的方法,但该方法依赖 Oracle 的递归语法,在其他类型的数据库中难以实现。要想通用地实现此类报表,可以使用下面介绍的“集算脚本 + 本地文件”的方法。《各级部门 KPI 报表》的格式和具体要求参见上一篇文章。有所不同的是,报表数据源从数据库表变为本地文件:tree.b(树形结构维表)和 kpi.b(指标事实表),数
如何实现报表数据的动态层次钻取(一)
在报表项目中有时会遇到进行动态层次钻取的需求,这种报表的开发难度一般都较大。而润乾报表的实现则相对简便很多。下面就以《各级部门 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、设置数据集新建报表并