报表工具好帮手

来源:互联网 发布:linux mint vs deepin 编辑:程序博客网 时间:2024/04/26 05:56

      报表工具解决了业务系统中数据呈现的问题,但是,在使用报表工具处理数据时,会遇到各种麻烦。

      1、由于报表的功能所限,往往无法处理数据来源复杂。比如要计算如下的报表:从数据库的员工资料表中,选出文本文件中指定员工的信息。

员工资料存储在数据库中:

需要列出信息的员工名单存储在文本文件中:

       由于报表中需要使用的数据来源于不同的介质:数据库表和文件。大部分报表工具是无法直接处理这样的问题的,只能先处理数据准备工作,把文本文件中的数据临时存入数据库中再用SQL处理。但是,这样的方法通常并不能由普通用户来完成,而且也会使数据库的维护变得复杂。

       而在esProc中,处理多数据源是件很简单的事情:

只需要取出数据再进行计算就可以了,在A7中,最后的查询结果如下:

       2、在很多情况下,报表需要进行的计算非常复杂,无法直接进行。对于birt/jasper/crystal等单数据源报表工具,只能在后台用存储过程准备数据。但是,这种数据准备的工作往往非常繁琐。

      比如要计算如下的报表:

      从员工业绩表中,选取出2010年度业绩排名前20位的员工,将他们按所属州进行排序后展现,并计算出他们每季度业绩和2009年相比的增长率。

      2010年与2009年的员工业绩存储在Sale2010和Sale2009两个表中:

员工信息存储在Employee表中:

       这类问题比较复杂,用SQL很难表述清楚。某些可支持多源运算的报表,有可能计算出来。但是,使用多源运算时,是不能利用中间获得的结果的,必须在前端带着所有表格计算,容量过大而性能低。在报表展现时,往往还需要较多隐藏格辅助。

       而采用esProc数据源则可以很好地解决这个问题,可以先选出2010年总销售额排名前20的员工,再根据员工编号,仅选出需要的2009年业绩记录以及员工信息记录来进行计算:

在A12中可以看到整理后的计算结果:

双击SeleInfo,可以查看计算出的具体销售数据:

       其中CompLastYear是计算出的比去年同期业绩增长倍数。

       使用esProc,可以为报表工具提供完备的数据准备,远离编写晦涩的SQL以及繁复存储过程的困扰。