润乾报表双机热备五只眼睛看世界SJ500博客白色风暴企业OA探讨易能协同办公软件知识管理解决方案免费的报表工具
在杰表及其他部分报表产品的优点与缺点 - 主流Java报表工具评述之三 这篇文章中,曾经说到,“比起润乾,它们毕竟(至少现在)价格上要便宜。所以,他们还是有着其应用空间的。但其未来怎么样,则一方面要看其自身的成长,另一方面也要看别人的眼色了。”
概述:
在Java环境下,润乾报表做为纯Java报表工具,在部署、集成、应用程序接口等方面有明显的优势。
在非Java环境下,润乾报表与Crystal Report都是以独立报表服务的方式运行,差别不大。
在上一篇软件开发 - 一定要会做的30张报表之二十七 - 基本的填报中,我们介绍了基本的填报功能。但实际应用中,填报并不总是仅仅面向一张表,而是往往会涉及多个数据表,请看两个例子:
第一张表中的家庭情况、教育情况、工作经历,第二张表中的订单明细,都应该是保存在与主体数据不同的明细表中。
对于传统意义上的报表而言,都是解决把数据从数据库中取出来,然后以各种格式展现(包括显示、打印等)的问题。而随着实际应用的发展,很多报表工具开始支持填报的功能。
下面是一张典型的需要填报的表:
我们看到这张表,有类似于报表展现时的复杂格式,但它的若干字段是可以输入的。这就是典型的填报需求。
关于填报,有几点要说明:
在软件开发 - 一定要会做的30张报表之二十五 - 条件过滤中,我们看到了由用户输入条件,对数据和报表内容进行过滤的例子。
但条件的输入,可能会有更复杂的情况,即条件之间有关联关系,我们称之为动态过滤:
这个例子与普通的条件过滤很象,但要注意,在选择省份后,再选择城市时,可供选择的城市项是动态的,是根据你所选择的省份所确定的。即数据选项是被其他输入项目动态过滤确定的。
在我们前面所讲的报表,都是直接显示报表的内容。但实际上经常会出现要输入条件,对数据进行过滤,再生成报表的情况。比如:
这样,选择的条件,将被做为参数传递到报表中,在报表中,就只会显示所选择的地区和产品的数据了。
这个功能,一般有两种方法来实现:
1、写程序。这是一个非常基本的程序。
实际的报表应用中,并不一定所有的数据都是预先设好的,有一些参数需要在调用报表时从外面传进来。比如:
上面说的,是比较简单的参数传递,一般情况下要求使用有参数功能的报表功能,或者在拼SQL语句时建立一个参数机制。
但参数还会涉及到很多复杂的情况,特别是与报表的格式相关联的情况:
下面是几幅不那么容易做的图表:
甘特图:
仪表盘:
时序走势图:
最后一个图,多说两句,其特点是取样点和标签间隔不一样。而且取样点也可能不均匀,例如一个月的记录,其他时候都是按天取样,只有今天的按小时取样,这个图表要能够自动按时序来分布取样点。
在前面软件开发 - 一定要会做的30张报表 - 之四 - 图表中,我们介绍了简单的图表。
但实际业务中图表的要求可能会很复杂。请看下表:
该报表首先是个交叉报表,其次每个交叉点不是显示汇总数据,而是用统计图来展现数据。还有,交叉点显示的不是一个数据,而是当前年度当前省份下所有城市的工业产值。