无源规则报表的实现方式

来源:互联网 发布:智慧城市与大数据 答案 编辑:程序博客网 时间:2024/06/05 16:47

        报表开发中,经常会碰到一些需要进行非常规统计的报表,例如有些报表本身无数据来源、报表需要对数据源再计算等等。这些报表本身具备一定的特殊性,使用常规方法往往难于实现。

         集算报表完成这类特殊统计报表则非常简单,本文以一个没有数据源,但展现规则的报表为例,说明集算报表的实现过程。

报表说明

         某报表系统中有部分报表需要按照一定规则显示数据,如:显示查询日期范围内的奇数日数据,要求数据库中即使无记录该日期也显示(内容为空)。

        本文重点来实现奇数日期序列,数据区不是重点,故置空。

        这个报表的麻烦之处在于需要较复杂的数据计算工作,生成指定区间内的奇数日,而一般报表工具的计算能力较弱,如果采用报表工具本身来完成这个计算工作会比较复杂,比如采用用润乾报表来实现将会是这样的:


        使用时要对辅助列A列进行隐藏,以及对第2行进行条件隐藏,偶数的日期不显示。所以报表工具实现要依靠大量隐藏行列。

        润乾报表已经是计算能力很强的报表工具了,采用其它报表工具只会更麻烦甚至实现不了。

        另一种办法是事先把数据计算准备好,报表工具只需要负责呈现和简单计算。但无论是使用复杂SQL、存储过程和自定义JAVA数据集编程,对于这样的复杂运算(实际情况往往比这个例子更麻烦得多)都是一件工作量很大的事情,而且难以维护。

集算报表本身提供了脚本数据集,可以编写适合结构化计算的脚本,上述报表需求使用集算报表可以这样完成:

编辑报表模板

         使用集算报表编辑器,新建报表模板,设置报表参数,并设置默认值。

        新建报表并使用脚本数据集编写计算逻辑,为报表返回计算后结果集。

        编辑报表表达式,直接使用集算脚本返回的结果集,完成报表制作。

        报表中,只需要通过列表表达式将脚本生成的结果集展示即可。通过简单几步即可完成此类报表的开发,非常方便。


0 0