软件技术公司润乾报表技术白皮书_第1页
软件技术公司润乾报表技术白皮书_第2页
软件技术公司润乾报表技术白皮书_第3页
软件技术公司润乾报表技术白皮书_第4页
软件技术公司润乾报表技术白皮书_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、润乾报表技术白皮书北京润乾软件技术有限公司2006年3月目 录第1章总体说明41.1润乾报表软件概述41.2产品构成5第2章新一代报表模型72.1数据统计模型72.2数据填报模型18第3章功能详细描述223.1报表设计223.2报表展现输出413.3数据填报523.4交互与OLAP583.5报表管理中心633.6报表任务调度65第4章部署与应用方案674.1报表设计模式674.2报表应用部署方式694.3数据报送应用方式734.4支持环境76第5章性能指标与控制785.1性能分析785.2实测指标795.3控制手段80第6章集成接口826.1数据源826.2JAVA API846.3前端接口8

2、66.4设计器接口88第7章特点与优势总结907.1新一代报表模型907.2真正易用的报表工具907.3纯JAVA报表软件917.4强有力的填报功能917.5独有的字符终端解决方案927.6开放的系统927.7可靠的本土支持93第8章逐点应答948.1功能性要求948.2非功能性要求998.3实施服务要求110第9章建议1139.1选择开放性的工具1139.2与应用紧密集成1139.3基于实际业务报表进行测试114附:某保险公司统计报表系统实际测试报告115第1章 总体说明1.1 润乾报表软件概述润乾报表是用于统计报表制作及数据填报的大型企业级报表软件,它提供了高效的报表设计方案、强大的报表展

3、现能力、灵活的部署机制,并且具备强有力的填报功能,配合以全面的用户权限管理、报表调度功能和交互功能,为企业级统计分析、展现提供了高性能、高效率的报表系统解决方案。润乾报表软件的核心特点在于开创性地提出了新一代报表数学模型,采用了革命性的多源分片、不规则分组、自由格间运算、行列对称等技术,使得复杂报表的设计简单化,以往难以实现的报表可以轻松实现,避免了大量的复杂SQL编写与前期数据准备,报表设计的效率提高了一个数量级。润乾报表是一个纯Java报表工具,提供了全面的API接口,是开发Web报表软件的理想选择。Java报表工具的跨平台特性,使得它能良好地支持大型系统的需要。润乾报表不需安装控件,可以

4、实现纯HTML报表方式,可以支持PDF,EXCEL等输出,提供了全面的页面与打印控制,能很多地满足Web报表的展现需要。同时,润乾报表对图表有良好的支持,可以生成柱图、饼图、折线图等二十几种图表。润乾报表提供基于动态库表关联技术的填报功能,完美解决数据入库的难题,极大提高填报表单的处理效率,扩展了Web报表工具的应用方式。润乾报表提供了报表管理中心,可以对报表建立多层次的目录管理,进行全面的用户和基于角色的权限管理。润乾报表还提供了调度器模块,可以实现定时、批量等报表自动处理和报表的自动分发。1.2 产品构成1.2.1 基础部件润乾报表由两大核心部分组成:l 报表设计器:设计编辑报表,自带报表

5、运算引擎,连接数据库后可预览打印报表,并可生成其它格式保存。设计器不依赖于其它部分,可独立工作;设计器以Java应用程序(JavaApplication)的形式提交。l 报表服务器:在后台提供统计报表运算和数据填报处理的服务,开放各层次的API接口调用,由程序员调用生成结果报表;服务器运行不依赖设计器;服务器以Java类包(jar)的形式提交,一般情况下不需要物理上的独立服务器。1.2.2 可选组件除基本部件外,润乾报表还提供如下可选组件:l 报表管理中心:一个简单的独立报表管理应用,处理用户角色权限控制、功能组织等,终端用户可直接采用该组件完成报表管理、查阅、填报等工作,报表管理中心运行依赖

6、于报表服务器。l 报表调度器:作为服务程序运行,在设定的时刻自动计算报表并将结果保存或推送到指定的目标,报表调度器运行依赖于报表服务器;l 集成(远程)设计支持:包括基于HTTP协议的JDBC接口、基于WebStart技术的设计器封装包和可编程的设计器远程文件访问接口。基于该组件可将报表设计器集成于用户的统一门户管理之内(B/S或C/S均可)、实现远程报表设计、统一管理报表模板文件等功能;l Windows展现控件:包括应用于Windows GUI程序的ActiveX控件、生成EXCEL/PDF流的DLL调用及相关后台的服务程序,基于该组件可将报表运算结果以控件形式显示于Windows GUI

7、程序中。l UNIX的C接口:包括后台服务程序与前端通讯的C程序,通讯部分的C代码以源码形式提交(.H和.C文件),基于该组件,可将报表应用于UNIX下的C程序中。第2章 新一代报表模型2.1 数据统计模型数据统计模型是报表工具最重要的指标,它决定了报表工具最基本的制表能力,即在不编代码的情况下能够制作出何种报表。事实上,市场上的众多传统报表产品在处理复杂报表时确实存在明显缺陷,大量报表仍需编写代码准备数据。润乾报表开创性地提出了新一代数据统计模型,采用全新的概念方法比较彻底地解决了中国复杂报表中的各项问题。2.1.1 多源分片多源分片是中国复杂报表的基本特征。多源是指一个报表的数据来源来自多

8、个物理数据表(或类似数据体),甚至是多个物理数据库。这里的“多个”常常不是两个三个,而是七八个乃至十几个。传统工具的基本报表单元只支持单源报表,需要在报表设计前将多源转化成单源处理。两三个源尚可写SQL语句完成(JOIN或UNION等),但多到五六个源以上时,一方面对应的SQL语句过于复杂难以维护,另一方面运行效率也很低,这时常常要编写存储过程或其它代码来准备数据了。如果多源来自多库,则更为复杂,无法直接写出复杂SQL或存储过程,需要架构专门的数据库桥后才可以完成。某些传统工具也所声称的支持多源,实际上就是指多数据库支持,把数据库桥功能集成进入报表工具中,但真正到报表设计时仍然只能单源。多源往

9、往带来分片,正是由于分片,使得报表设计必须直接基于多源进行,而不能先将多源转成单源进行。有相当一部分分片报表无论如何也不可能换成单源处理,部分能转成单源的报表处理也非常繁琐。分片是指报表的纵向或横向或双向同时被分成了多个区域,每个区域扩展重复规则不同,而又可能相互运算。传统工具能够处理的上下格式一致和列方向固定的分片报表(即可由多源转成单源的报表),但会迫使用户编写复杂的SQL(UNION+JOIN)和代码准备数据,导致工作量大且维护困难;对于横向分片数较多报表,由于必须采用JOIN方式准备数据,关联条件复杂时很可能导致出O(Nk)的高计算复杂度(k为分片数),性能很低。表1是个典型的纵向分片

10、报表,数据区从上至下分成了几片,先是一片按客户汇总的两级分组区域,然后是两个固定计算行,接下来又是一片按年度汇总的一级分组区域,最后又是一个固定的合计行。各片分组层数不同,而且变动与固定固定结合,而且各片之间还有数据沟通(某些计算行的值是由其它行计算出来的)。这种上下格式不一致的报表,其数据源不可能组织成单源(各片列数不同),也就不可能被传统工具实现。表1我们把表1横过来摆形成表2,成为一个横向分片表。类似的,也是有两片分组层数不同的变列区域和几个固定的计算列混合而成。传统工具只提供比较死板的交叉报表模型处理变列报表,其中的集合运算只有固定的几种选择,不可随意加列,更不可能有多片变列区域,而这

11、种复杂的动静混合交叉表就只能手工编程动态加列实现。表2为了解决多源分片的问题,许多传统工具引入了子报表的概念。把每个分片做成一个子表,然后再在主表中拼接起来。如上述的表1理论上是可以通过子表拼接完成,但实际上仍非常烦琐。子表割裂了整表的一致性,一张报表被分成了多个小表,难以统一处理,给维护管理工作带来麻烦。从格式上看,各个子表各自独立,很难将格线统一对齐,某个子表的格式进行了调整,所有其它子表都需要改动,这是极其繁琐的工作。而且每个子表的大小不固定(可能随数据记录数而变化),由于传统工具的行列不对称(下面还会谈到),纵向排列的几个子表可以自动摆位,而横向则不行,如上述的表2即使用子表也无法完成

12、(数据可以拼出,但格式无法拼出)。而且,主子表之间和子表相互之间都无法沟通数据,只能将主表的数据作为参数传递给子表,子表无法带回信息,也无法向其它子表提供信息。这时,整表的混合运算将非常困难,必须单独计算,无法采用某些子表的中间运算结果,不仅书写复杂,运算效率也降低。表3就是个典型的主从表,当然也是典型的多源分片报表。主记录中的金额显然是明细信息中各产品金额的和,而在传统工具的主子表模型中,主表的合计值不能引用子表的数据,必须自行重新计算。表3润乾报表则直接支持多源(集)设计,在同一张报表中可同时引用多个数据集,摒弃了传统死板的条带式扩展模型,而代之以独创的单元格扩展方案,各数据集即可以独立扩

13、展,也可以相互引用,扩展部分与固定部分可自由结合;而特有的主格关联技术则可灵活地决定各级统计的范围,保证汇总运算的合理性与正确性。表1在润乾报表中将如下设计:需要根据数据变动的行(5/6行)采用单元格扩展(B5/C5格)机制(其中的ds1.group函数即负责扩展重复),而中间的固定行(8-11行)则可直接写上,下一片变动行(13/14行)又采用单元格扩展(B13格)进行(ds4.group函数),两片扩展分别基于不同的数据集(ds1和ds4),且层数不同,右边的sum运算中还能引用这些格值,整个报表即分片又统一,完美地解决了多源分片问题。完成表2只要简单地将相关的扩展单元格改变位置和方向即可

14、,如下图所示,润乾报表在行方向的扩展能力能够完全应用在列方向上(横向扩展),使得中国报表中常见的横向分片、多片变动、动静结合的问题很容易解决。对于表3这种主子表,在润乾报表无需借助子表概念完成,明细表(8-10行)本身可以自行扩展重复,而且由于了设置主格关联,整片明细表会自动跟随主记录重复,而且主细表间可自由沟通信息,如E3格中的金额合计可直接由G9格中金额明细计算出来(表达式SUM(G9))。2.1.2 不完全划分不完全划分是中国复杂报表中的典型特征之一。传统工具中的数据分组延用了关系数据库中的相应概念,为完全规则划分,即划分标准一致且有规则(一般都按某个字段或表达式),所有事实都必须出现且

15、只出现一次,分组值次序与原数据记录次序一致。与完全划分相反,在报表汇总中却常常需要不规则划分,即划分标准看不出规律(常常只能穷举),所有事实不一定全部出现在分组结果中、个别事实还可能重复出现,次序也与原数据记录无关。固定分组是不规则划分的常见表现。表4表4是个含有不规则划分的人员统计表(同时也是个分片报表)。年龄段的分组就是个不规则划分,划分规律不明确,只能穷举出来;分组不完全,没有列出所有的部门,每个一级部门中还可能有一些不属于任何二级部门的人(其他类)。表5表5则是另一种形态的不规则划分报表。它的地区分组有三个特点:华北部分地区中未包括内蒙古,出现了不完全分组;山东和青岛有重复的部分,出现

16、了可重分组;而且地区次序是确定这样排列的,和数据记录的次序无关,是个典型的固定行分组报表。这两个报表用传统工具实现都较为困难,虽然报表格式并不复杂,但由于出现了不规则划分,无法直接用报表工具的分组功能完成,只能编程把数据准备成一个单层的二维表数据源,即加大了工作量,又很难体现数据之间的层次关系。润乾报表为分组运算提供更多的过滤和排序选项,可生成不完全分组;采用内建数据集分组技术可以很好地完成固定分组及可重分组的问题,而特有的plot集合函数则解决了按段分组的困难。表4可采用plot函数进行如下设计:C4格中的plot函数负责完成按段分组,可随意填写分段方案;A5格的分组扩展可加上过滤条件;B5

17、格扩展出有规律的二级部门,而其他类则可单列一行,其计算公式可与上面的格分别填写(C5/C6格)。表5则可以采用内建数据集处理固定可重分组:先根据报表展现的行设计内建数据集与之一一对应,然后在报表设计中采用内建数据集进行扩展(A5格),同行上其它各格的计算值都引用该格值(B5-H5),从而轻松地完成了固定可重分组报表。2.1.3 自由格间运算除不完全划分外,自由格间运算是中国复杂报表另一个典型特征。所有的报表工具都会提供一些计算列的功能,在原始数据基础上再计算出一些别的列值或统计值,这是报表展现中是不可缺少的功能。传统工具一般只提供同行内的格间运算和针对某组(或全体)的集合运算,对于常见的跨行组

18、运算则相当困难。个别传统工具提供了简单的跨行能力,如可以引用上一行数据,而跨组则无能为力;对于集合运算只提供个别固定的函数,如取第一名、算累计值等,无法组合出通用集合运算,如取第二名、算累计的乘积等。某些带条件的运算更是无法处理,如计算语文成绩在90分以上的同学的数学成绩总和。除了有规律的跨行组运算外,报表中还可能会有一些随意的独立格运算,其值可能是报表中的任意几个其它格运算出来,甚至还可能会引用到报表外的数据(比如和数据库中的数据再次运算等)。由于传统工具没有很好的运算后报表数据项命名机制(传统工具只能用列名命名设计阶段的数据单元),很难精确描述数据引用关系,只能写出规律性很强的表达式,但随

19、意的独立格运算会就使传统工具无法处理,而报表外的数据引用更是只能借助脚本或外围应用程序,导致代码极为混乱。表6是个典型的跨行组运算报表,其中有比上期(跨行)和比去年同期(跨组)运算,这种报表在传统工具中常常又必须编程准备数据。表7则展现了另一些自由格间运算,如计算排名,需要在同组中数出比当前值大的数的个数。下方的几个独立格中又引用了表格中数据,但又非整组全部引用,而是带了某种条件(前三名),最下方的一个格中还会引用到报表外的数据(北京市的全部销售额不在报表中)。表6表7这两个报表的样式都不复杂,但这些格间运算会让传统工具非常为难。只能再次依靠程序代码,把数据事先计算好直接往报表里填。润乾报表则

20、开创性地提出了单元格层次坐标与相关格集的概念,可以则扩展后的每个单元格或格集进行精确命名,即可在设计时自由引用任何一个扩展后单元格,而且还可以方便地嵌入SQL或其它函数以引用外部信息。表6在润乾报表中将如下设计:D3格中的C3-1和E3格中的C3A3:-1,B3:+0即是层次坐标写法,用以精确定位扩展后的每个单元格,从而使得跨行组运算可以方便地进行。,表7在润乾报表中的的设计方案:C4格的表达式中应用了层次坐标和相关格集概念,用以计算其对应的B4在扩展后的B4格组(扩展后会有多个B4)的次序(E4和F4的关系类似)。B6表达式中有带条件的引用(C4<=3,即前三名),B7格中又引用了另一

21、个数据集ds的值。整个报表的格间运算非常自由,而润乾报表也能够轻松处理。2.1.4 行列对称另外,所有以上的讨论中还贯穿了一点,即行列对称。纵方向上拥有的自动复制扩展的能力需要完全实现在横方向上。报表可以横向分组、横向分片,对于横向变列的报表可以定义跨列组运算等。传统工具有行式表和交叉表两种互不通用的模型,行式表完全不支持列向变动;而交叉表非常死板,虽然可以支持多层变列,但只能有一片变列区,而且其中的汇总运算很简单,只有固定的一些函数,不可随便增加运算行列。传统工具的行列严重不对称,列方向能力远远弱于行方向,稍复杂些的交叉表无法实现。传统工具还习惯于把报表分成几种孤立的类型,如网格报表、分组报

22、表、主从报表、交叉报表等,某种类型的报表可以解决某种问题。但事实上,报表的上述复杂性常常是混合在一起的,同一张报表中很可能包含了所有的问题,这要求我们给出完整的解决方案,而不能单独分别处理。当这几种困难交织到一起时,整个问题的复杂度要远比解决几个单个问题的总和要大得多。而润乾报表则天然行列对称,行方向拥有的数据扩展能力在列方向也都有,所有报表均在统一的处理模型下完成,无须专门的交叉表处理方案,在交叉表中也可以自由编写汇总表达式。中国复杂报表的各种困难在润乾报表中统一在一起得到了充分的解决。2.2 数据填报模型数据填写是中国报表应用中的一个重要需求,广泛应用于金融业和政府行业。而相当多的报表工具

23、(特别是国外产品)完全不支持数据填写报送。而润乾报表则有非常出色的数据填报能力。同统计汇总类似,填报解决方案中最关键的因素仍然是数据模型,通俗地说,就是数据如何写入数据库的方案。填报本身不是目的,填报是为了采集数据上来分析利用,因此需要将填报收集的数据直接按其逻辑结构提交到开放的关系型数据库中,才能有效地被其他应用系统和统计分析系统所利用。2.2.1 传统方案的缺陷有个别国内传统报表工具能够支持数据填写,一般有三种方式处理数据入库。l 采用中间文件,填写结果写入一个中间数据文件(如EXCEL填报),某些填报方案能提供少量一些基于这些中间文件的统计汇总,但要完全利用则须将这些数据进行结构化成后转

24、存到关系数据库中。而将非结构化的数据转成可以体现业务规则的结构化数据是比较困难的工作,需要为每种报表编写相应程序去处理。l 采用固定的数据结构,填报方案提供一种“万能”的数据结构将填好的数据写入,其数据结构常常是只有三个字段行号/列号/数值,或与之类似),这种方法只是机械地将数据写入了数据库,数据结构并未没有体现业务规则,在使用时仍要再次进行转换工作。l 根据业务规则设计要保存的数据结构,然后根据数据结构设计要填写的报表,每个要填写单元格的数据都有唯一对应数据库的字段,这样在入库时就可以直接写成结构化的数据。这种方案的入库机制是合理的,但报表是根据数据结构设计的,而库表对应关系常常都非常简单,

25、结果导致报表不可自由绘制,只能提供简单的几种死板表样,不能满足用户需求。某些传统填报方案的数据回填机制所有这些填报方案的主要问题是无法解决能体现业务规则的数据表与报表单元格之间的匹配关系。从而导致前期报表设计或者后期数据入库的极大困难。而润乾报表独创的自由库表关联技术则很好地解决了这一问题。2.2.2 自由库表关联润乾报表的填报表允许数据库表列与报表的单元格之间进行任意匹配,设计报表样式时不需要考虑数据结构,反之设计数据结构时也只需要考虑业务规则而不用管报表样式,任意的报表样式和数据结构之间都能建立起对应关系。而且这些对应关系还有自动扩展的能力,即有规律的表区只要设置一遍基本的对应关系,表区中

26、其它单元格与数据库的对应关系可以自动扩展出来。如行式表填报时,只需要设置某一行的库表对应关系,其它行都可以自动扩展,而交叉表则只要设计某一格的对应关系即可,其它格也可以自动扩展出来。总结起来说,就是任意匹配,自动扩展。主从填报(自由/行式混合)交叉填报2.2.3 数据来去自由润乾报表的填报方案还支持自由的数据来去方案,具体地讲,就是有来有去,来去无关,一来多去。如下图所示:单元格中的数据都有来源,现实中常常需要制作多级汇总填报表,某一中间层的填报表是先由下级统计出来的,而非空白格子,这样就要求单元格的数据要有个来源;填写的数据要入库,则需要有个去处,来源和去处经常可能是无关的,如可以将从A表中

27、统计出来的结果修改后填入B表;而且一个单元格的去处可以有多个(来源当然不可能有多个),可以同时写入B1表、B2表、,甚至可能是多个数据库(如同一批企业数据要同时写给税务部门和统计部门)。第3章 功能详细描述3.1 报表设计3.1.1 类EXCEL的报表设计方式类EXCEL的编辑润乾报表采用类EXCEL的方式进行报表的绘制和编辑,如下图:润乾报表主编辑界面采用类EXCEL的可视化网格式编辑方案,不仅可所见即所得地绘制出复杂表样,而且可免去传统控件拖拽式编辑方式对齐数据项的繁琐,在保证格式的整齐美观的同时大幅提高绘制效率,避免打印与显示因分辨率不一致而出现的失真现象。另外,熟悉EXCEL使用的人员

28、相当多,更易于报表绘制工作的上手。这种方案已逐步成为报表样式绘制的主流。读入EXCEL文件润乾报表还可直接读入EXCEL绘制好的报表格式,然后在报表设计器中进一步修改,以充分保护用户以往在EXCEL上的积累,大大减少重复工作。Excel原表润乾报表直接读入EXCEL报表格式(文档类型即为xls)公式调整润乾报表在编辑过程中能够象EXCEL一样自动调整公式,如在单元格B1中引用了C1,当B列和C列间插入一列时,引用的C1将会自动变成D1,这对于报表中表达式编辑非常必要。 原报表,B2中的表达式引用了C2和D3在C列前插入一列后,B2格的表达式自动调整界面及基本功能润乾报表提供了非常美观的外观界面

29、,可有多种配色风格。产品采用全中文菜单和对话框,常用的编辑手段均有快捷工具条以提高设计效率。在编辑过程中,提供缩放编辑功能,可以根据需要灵活设置缩放比例,更方便地进行报表的格式调整。在报表设计器中,可直接预览报表,并打印或导出成EXCEL/PDF等外部文件格式。3.1.2 单元格类型润乾报表的单元格支持如下类型:l 普通文本:一般的数值和文字,可以支持斜线。这种类型可以通过象EXCEL一样的表达式,从数据库中提取数据和进行各种计算。该类单元格的显示值可与数据值分开,从而实现内部代码与显示之间的对应,显示内容可来自固定列表,也可来自数据库中的字典表l 图片文件:固定的图片,如企业LOGOl 图片

30、字段:来自数据库字段的图片,如人员照片l 子报表:该单元格中将嵌入或引入一个子报表l 统计图:该单元格中将嵌入一个统计图l HTML文本:该单元格内的文字(或表达式的运算结果)将被理解成为一段HTML代码,在报表WEB展现时将被嵌入整个报表的HTML文本中,从而可实现用户自定义的显示或编辑方案通过各种类型的单元格,可以在报表中添加各种元素,实现各种复杂的报表。润乾报表的单元格类型带斜线和图片的报表(编辑画面),D1格是个图片字段带斜线和图片的报表(运算画面),D1格已被运算成图片3.1.3 套打绘制及相关功能底图描绘实现套打绘制润乾报表采用底图描绘的方案解决套打时的报表绘制问题。可将需要套打的

31、票据扫描成图片,作为报表设计的底图,然后依照图片上格线进行报表描绘,可保证绘制出的报表能够精确地套打进入印刷票据中。底图描绘方式进行套打绘制(下面的表格是个底图)精确度量等润乾报表提供以毫米为单位的精确度量,可保证报表的绘制和输出完全与纸张精准一致。并会根据纸张大小在设计界面中画出纸边虚线,以提示设计人员分页位置。3.1.4 多数据源润乾报表天然支持多数据源,同一张报表的数据来源可以是多个数据集甚至是多个数据库或是用户自定义的数据集。通过这一功能,不仅可以采集来自不同来源的数据,更重要的是在润乾报表中可以在报表内直接使用多个不同数据集,而不需要强行用复杂的视图把它们连接在一起,从而大大提高了报

32、表设计效率和提高了灵活性。 润乾报表多数据源 数据源的定义画面润乾报表支持各种数据集(SQL/存储过程/文件/自定义/内建/OLAP SERVER)3.1.5 内建数据集润乾报表支持内建数据集,即某个数据集的数据被写进报表模板文件之中,内建数据集和外部数据集有完全同样的运算,如扩展、过滤等。内建数据集可有如下应用:完成不规则划分大量中国复杂报表均可能有不规则划分要求(比如选择若干个城市显示相关的数据),润乾报表可以将这些不规则划分(如可重分组、固定分组)方案设置进仅于当前报表相关的内建数据集中,而不必在数据库中创建冗余的数据表或视图。可参见2.1.2中的例子。脱机浏览润乾报表提供将外部数据集转

33、换为内建数据集的功能,这样即可将已做好的报表数据源绑定进报表,从而做到脱机(不连接数据库)运算和浏览,这一功能对于远程调试报表有巨大帮助(远程技术人员可以不必依赖于用户的数据环境而调试报表中的错误)内建数据集绑定报表数据以实现脱机运算和浏览3.1.6 表达式与函数表达式润乾报表支持基于数据集和基于单元格的两类表达式,并且可以混合书写,如ds1.sum( amount );B3+C3+sum(D3); ds1.select( id, typeid=C2)等函数润乾报表提供六类系统函数:数据集函数、单元格函数、数学函数、字符串函数、日期时间函数、转换函数。同时也允许用户自定义JAVA函数。润乾报表

34、的函数功能非常强大,除了常规的计算函数外,更能针对报表和统计分析的需要提供了特有的集合处理函数,可用以实现报表自动扩展、分组等变化。例如,润乾报表提供plot函数实现中国复杂报表中常见的按段分组需求,除分组方案外,plot函数与普通分组函数一致,也可以实现多层或交叉分段汇总。例子可参见2.1.2节。3.1.7 分片混合扩展与相关引用润乾报表摒弃传统条带扩展方案而采用单元格扩展机制,可以很容易完成同一报表中的分片扩展(并列或层次均可),并可实现固定行列与变动行列混合编排。各扩展片之间还可相互引用数据而并非完全无关。例子可参见2.1.1节。3.1.8 灵活快捷的分组汇总润乾报表可简单完成带有多级分

35、组与汇总的普通行式报表,采用单元格分组函数实现分组扩展,没有明显的分组区域,从而在增删分组或改变分组次序时不必象传统报表工具需要重新设计分组区内数据表达式。润乾报表独创的主格关联机制决定了统计汇总的范围,汇总表达式可以摆放在报表中任何合理的位置(分组上/下边或在分组明细同行合并成一个大格)。带分组合计的行式报表(设计)润乾报表的分组采用数据集group函数完成(A4/B4格中的表达式),没有传统的分组区域。合计表达式(E5/E6/I4/J4)可以放在任何地方(分组下边或右边),由主格关系机制决定其运算范围,而不是由位置来控制。还可以实现跨行组的序号大排队(C4格)。该报表运算结果如下:带分组合

36、计的行式报表(运行)3.1.9 行列对称的扩展机制润乾报表行列对称设计,无须专门的交叉表模型处理列向变动的报表。多层、分片交叉报表均可轻松实现,并可类似行式报表一样编写自由的汇总运算。多层交叉带汇总报表(设计)上面报表中,A5/B5格运行纵向扩展,D3/D4格进行横向扩展,双向扩展后即可形成交叉报表,中间部分的汇总运算仍是自由填写的表达式(其中可引上左/上表头的单元格值),而不必象传统工具那样必须是规定好的几种运算,充分体现行列对称的思想。运算结果如下:多层交叉带汇总报表(运行)3.1.10 层次座标润乾报表发明的层次坐标和位移坐标概念能够对扩展后单元格/集进行命名,从而可以在表达式中精确描述

37、出对其它单元格的引用,完美地解决自由格间运算。有规律的单元格跨行组运算可轻松实现,对于无规则的任意运算,润乾报表还提供类EXCEL式的格间运算。层次坐标的例子参见2.1.3节。3.1.11 子报表润乾报表支持不限嵌套层数的子报表功能。子报表分为引入式和嵌入式两种,引入式将子表数据和格式依次填报主表的单元格中,而嵌入式则将整个子表缩放后嵌入到主表的某个单元格中。嵌入式 主报表定义 子报表定义嵌入式子报表运行结果(主子表的格线不对齐)引入式 主报表定义子报表1 子报表2 子报表3引入式子报表运行结果(子表延用主表的格线)3.1.12 统计图的定义润乾报表的统计图数据来源于报表内而非重新再设置数据源

38、,因而也可以支持多表多库的统计图。同一张报表可绘制多个统计图,甚至可绘制在分组内,随着数据分组一起扩展成多个。 统计图数据定义 图形特性定义 外观属性定义 时间状态图定义3.1.13 报表参数与宏润乾报表一般意义的报表参数功能。参数有数据类型,可以用于报表的数据源(SQL语句)或报表中的运算表达式中。报表参数定义SQL语句中使用参数除参数外,润乾报表还提供特有的宏。宏没有数据类据,仅是简单地在语句或表达式中替换。例如,可以将SQL语句中SELECT的列名或FROM的表名或ORDER BY的方向甚至整句SQL语句都作为宏而临时改变,这样将给使用者提供更加灵活的控制方式。举例说明,如果将一个SQL

39、语句的WHERE条件中<100改成<200,可以采用普通意义的参数,但若想将<100改成>200,则用参数就不可能作到了,但采用宏则可轻易完成。带有参数和宏的报表B2格带有参数。B6格中带有宏,可用于替换参数无法完成的报表选出字段。3.1.14 向导与工具润乾报表软件提供了强有力的辅助工具,可以帮助用户更方便、更高效地进行报表设计。报表设计向导润乾报表对于简单的行式、分组与交叉报表提供设计向导,用户只需要选择相应的数据表列即可以自动生成出报表。分组报表定义向导交叉报表定义向导(行列定义)交叉报表定义向导(值定义)SQL编辑器润乾报表提供标准SQL编辑对话框,用户不必记忆

40、数据库表/字段名称,可直接在SQL编辑器中选择要操作的数据元素,设计查询、排序条件等。同时润乾报表也支持直接输入SQL语句。SQL语句编辑器(字段选择)SQL语句编辑器(参数引用)中文语义层/表达式润乾报表支持中间语义层机制,开发人员可将数据结构事先以业务人员熟悉的术语进行描述,在设计报表时即可直接采用这些语义信息,而不必直接面向物理数据结构。同时,润乾报表还支持中文表达式,如可以写类似 价格*数量 这样的表达式,使报表设计更加通俗易懂。 数据表与字段的中文描述定义 字段外观预定义数据集字段中文定义 公式编辑/函数帮助润乾报表提供可视化的表达式编辑对话框,用户不必记忆系统提供的众多函数与需要操

41、作的数据集元素,表达式的大部分都可以简单地用鼠标点击出来,而且对所有系统函数均有详细的在线帮助。公式编辑器函数帮助3.2 报表展现输出润乾报表不需安装控件,可以实现纯HTML报表方式,可以支持PDF,EXCEL等输出,提供了全面的页面与打印控制,能很多地满足Web报表的展现需要。同时,润乾报表对图表有良好的支持,可以生成柱图、饼图、折线图等二十几种图表。3.2.1 报表元素的外观属性润乾报表对报表元素提供非常丰富的外观属性,计有: 润乾报表单元格外观属性列表l 字体、字号l 前景色、背景色,均支持调色板和透明显示l 边框:类EXCEL,可设计线型线宽l 对齐方式:左中右/上中下对齐,自动折行,

42、缩进l 显示格式:文字、数值、日期时间等数十种风格单元格显示格式l 定位拉伸:横向扩展表时保证标题居中或居右定位拉伸例子,D2/E2格设计了定位规则,在B2横向扩展时会向右靠拢,结果如下:所有的属性均可用表达式控制。 含有属性表达式的报表 属性中填写的表达式运算结果,不及格的下划线且居中,偶数行是斜体3.2.2 统计图润乾报表支持如下23种类型的统计图:l 柱形图l 三维柱形图l 三维簇状柱形图l 堆积柱形图l 三维堆积柱形图l 饼图l 三维饼图l 折线图l 三维折线图l 区域图l 三维区域图l 条形图l 三维条形图l 三维簇状条形图l 堆积条形图l 散列图l 时序状态图l 时间走势图l 双轴

43、柱线图l 双轴折线图l 雷达图l 甘特图l 仪表盘针对不同需要,在浏览器上可生成如下三种图片类型l GIF:256色,可透明显示,不失真压缩l JPG:真彩色,不可透明,失真压缩l PNG:真彩色,可透明,不失真压缩 润乾报表的部分统计图3.2.3 页面(HTML)输出润乾报表可在WEB上生成标准的纯HTML输出格式,对IE5和Netscape7以及上版本均可支持且效果一致,统计图则完成以纯HTML图片形式展现,浏览器端无须事先安装任何插件。润乾报表在WEB上的展示,可随意嵌入到网页的任何地方除静态HTML外,润乾报表还可生成固定表头(上/左均可)的可滚动报表以及行式分组可伸缩报表,大大方便了

44、用户的使用。浏览器上表头固定可上下左右滚动显示的报表3.2.4 文件输出除标准HTML外,润乾报表还可将报表以文件方式导出,例如:l EXCEL润乾报表可输出完全不失真的EXCEL文件,报表中的统计图也将嵌入其中,并附带有各种打印属性,生成的EXCEL可不作任何调整直接打印而不会丧失格式信息。还可对导出的EXCEL进行进一步的加工处理。l PDF润乾报表可输出PDF文件,报表中的统计图也将嵌入,并附有纸张打印信息,结果可直接输出打印。l TEXT润乾报表可生成专为金融、邮政等行业字符终端应用服务的带格式文本,报表格线由中文表格符拼出,并可在其中设置Escape码,可直接在字符打印机上输出。l

45、RAT文件RAT文件是润乾报表自有的文件格式,用以保存运算后的报表结果,其中带有统计图、纸张打印信息等,可由润乾报表设计器打开查看以实现报表的脱机浏览(不依赖于第三方软件且可在UNIX上显示),并可打印或再次输出成上述几种格式的文件。输出的EXCEL文件,保持所有格式且能将统计图一并导出输出的PDF文件,带有分页信息,并导出了统计图独有的带格式文本输出,可直接输出在字符中终3.2.5 分页与分栏润乾报表对报表页面提供了强有力的控制功能:分页方案可支持按纸张大小分页、按行列数分页、强制分页(分组后或固定行列);分页方向支持纵向和横向双方向分页,有上表头、页眉、页脚、左表头等功能。上/左表头信息每

46、页均会合理重复;单元格拆分单一单元格不能被分页拆分,当合并单元格被拆分时可选择其中数据是否也分页断开显示; 报表纸张与分页属性定义 单元格分页属性定义 行分区类型 列分区类型分栏及其它支持横向分栏;支持末页补足空行的操作;分栏输出的报表3.2.6 打印润乾报表可通过采用JavaApplet的方式实现浏览器中的精确打印,可支持如下功能:l 一纸多页,实现小票据或卡片式打印,可选择按行排列和按列排列;l 缩放与定位:打印前的缩放及在纸张中的定位控制l 页码控制,选择不同页码打印l 打印前可控制是否允许再修改数据打印预览画面,支持一纸多页,可缩放显示3.3 数据填报润乾报表提供基于动态库表关联技术的

47、填报功能,完美解决数据入库的难题,极大提高填报表单的处理效率,扩展了Web报表工具的应用方式。3.3.1 编辑风格润乾报表在浏览器端采用纯HTML填写方案,可提供如下编辑风格:l 文字编辑框l 下拉列表框:下拉项目为固定内容l 下拉数据框:下拉项目来自数据表,可带检索条件l 复选框l 下拉日历l 下拉树:树结点可来自于数据表,并可自动循环l 文件/图片上载 支持的编辑风格 下拉数据表 上载文件编辑 下拉树编辑3.3.2 填写控制l 在填报过程中,可以进行严格的填写控制,包括:可填写控制:该单元格是否可以填写,可能属性表达式控制l 自动计算:某些单元格是由其它单元格运算而成的,当基础单元格的数据

48、被修改时,目标单元格的数据自动跟随改变,计算公式在设计时设定好l 合法性检查:考察数据填写是否合理,某单元格的数据类型是否匹配(如在数字格中填入了非数字字符),单元格之间必须满足的数据校验关系(如某格的数据必须大于另一格的数据);对于输入错误的数据,系统会给出事先设置好的提示信息并定位出有错单元格方便输入者修改错误;合法性检查有两种:1) 即时检查:填写当前格,输入焦点离开该格时进行检查,若校验不满足则不得离开焦点2) 提交检查:全部填完后在提交数据前进行检查,校验不满足则不得提交设计者还可以设置校验不满足时的提示信息,以提示用户出错的原因。 自动计算定义 合法性检查定义l 多页填写:润乾报表

49、提供了多页填报taglib,当要填写内容很多时,可以组织成多个tab式的页面一齐填写,在JSP中可以设定多页表单之间的填写控制关系。多页填报及相关的合法性检查(跨页)3.3.3 数据导入与离线编辑润乾报表还可支持离线填报和批量导入数据的能力:离线填报润乾报表生成的HTML表单可下载成本地文件中,其中保留了JavaScript代码,因此所有的填写控制均依然有效。用户直接用浏览器打开这些离线HTML即可继续填写数据,填写过程中可以多次保存而不必与服务器有网络连接,填写完成后再联机上传即可将数据提交到服务器的数据库中。离线填报还可以采用导出或用户自行绘制的EXCEL文件进行,只要报表格式一致即可将E

50、XCEL数据引入报表中,这使得许多已采用EXCEL填写数据的业务系统切换到润乾报表非常容易。批量导入离线用的HTML(或EXCEL)也可不是从浏览器下载而成,而由报表服务器批量生成并采用某种方式(EMAIL、软盘等)分发给填报人,由填报人填好后再收集回来。润乾报表支持文件导入功能,可将收集回的报表批量导入到数据库中。离线填写(仍可带有合法性检查关系)3.3.4 库表关联润乾报表支持如下三种基本填报表样:l 自由式表格:整表对应一条记录,各字段分布在多个无规律的单元格中,如人员的基本情况表;l 行(列)式表格:数据区每行(列)对应一条记录,如人员的履历表,记录的某些字段(一般是主索引码的一部分)

51、会在行外,如人员履历表中的人员编号,这是最常见的表格式样;设计时只要设置一行(列)的数据库对应属性,其它行(列)会由系统自动扩展。l 交叉式表格:数据区每格对应一条记录,如学生课程成绩表,左边是学生,上边是课程,数据区是成绩;设计时只要设置一格的数据库对应属性,其它格会由系统自动扩展生成。润乾报表同时支持以上三种表样的混合,如一张填报表的上半部分是自由式表格、下半部分是行式表格。还可以是更复杂的多页混合的填报表单。一个单元格的数据可以同时写入多个数据表,并且与其数据来源无关,从而可以很方便地实现汇总填报。润乾报表更新属性定义3.3.5 数据写入润乾报表支持同一张填写表单同时写入多个数据表/多条

52、记录的情况,填报服务程序会利用数据库事务功能保证其一致性。在设计表单模板时建立了数据库字段与表单单元格之间的对应关系。服务器会根据对应关系生成SQL语句。程序会自动决定生成UPDATE还是INSERT语句,同时会自动判断数据库的类型,在SQL语句中添加相关的数据类型转换函数(如在ORACLE中的日期常数要加TO_DATE,而SQL Server则是CONVERT)。示意图可参见2.2.3节。3.4 交互与OLAP润乾报表提供了强有力的交互能力和分析能力,能够支持用户进行OLAP分析。3.4.1 灵活定义的查询和参数功能在很多情况下,用户需要通过输入条件,对数据进行查询,并灵活控制显示的数据范围

53、。润乾报表通过参数模板的功能,可以非常灵活地定义各种查询界面和查询条件,由用户方便地输入查询条件,交互式地控制报表的内容和形式。实际上,影响一个报表的参数可能有很多项,其中部分参数是应用系统或环境的基本信息,不应当再由用户输入,如当前登录的用户角色、当天的日期等。无须输入的参数被称之为系统参数,对应的需要输入的称为用户参数。润乾报表提供了强有力的参数处理机制,可以分别对待处理这两类不同情况的参数。润乾报表支持如下四种参数机制:l 缺省参数界面润乾报表将根据报表的参数信息自动生成一个非常简单的参数输入界面,直接在taglib中配置就可以选择是否出现该界面。该界面不能区分系统参数和用户参数,它将报

54、表的所有参数都罗列出来,而且也只能提供最简单的文字输入方案,不能做出下拉选择等效果。一般这种参数方式都是用于报表测试的,因其业务色彩太过薄弱,在实际应用中很少使用。l 自写参数界面由应用程序员为每个报表专门编写参数输入界面(.JSP),将输入后的用户参数配合上系统参数设置到报表服务器,可以直接调用服务器的API设置,也可以在taglib的属性中设置。自写参数可以让程序员对报表查询有最深入的控制力度,如可在某个参数输入完成后立即引起页面的变动而不必等所有参数全部输入完毕、某些参数的选值范围可能被别一些参数过滤等。这样可以造出更好的交互式效果,但相应的工作量也较繁琐。l 绘制参数界面润乾报表提供可

55、绘制的参数界面。系统设计了一个专门的参数面板taglib,可发布由用户进行参数填写的界面,其中可以支持象下拉选择等任何编辑风格与填写控制方案。报表设计时并不涉及其参数界面,一个报表可以有多种参数输入界面。参数界面是自行绘制的(利用报表设计器画),可以只涉及用户参数。一般在页面程序(.JSP)中将参数界面与报表展现配合起来,并且在这里将系统参数与用户参数配合起来提交给报表服务器。与自写参数界面相比,绘制参数的方案可以省去许多编写页面程序(.JSP)的工作量,也能获得控制力度略弱但仍很友好的输入界面,而且也较易于维护,这是最常用的参数输入机制。 参数面板的定义 参数的执行l 生成参数界面对于批量较有规律的报表,程序员也可以采用生动生成参数界面的方案,这种方案事实上与润乾报表自带的缺省参数界面类似。所不同的是由应用程序员根据业务特色编写程序自动生成参数界面,这样可以带有较强的业务色彩,使其实用起来。报表服务器提供了读出报表参数的API,同时可以在报表设计时设置参数的某些自定义属性,应用程序则根据这些信息自动生成相应的参数界面,区分出系统参数与用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论