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

下载本文档

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

文档简介

润乾报表 技术白皮书 北京润乾软件技术有限公司 2006 年 3 月 目目 录录 第第 1 章章总体说明总体说明 .4 1.1润乾报表软件概述 .4 1.2产品构成 .5 第第 2 章章新一代报表模型新一代报表模型 .7 2.1数据统计模型 .7 2.2数据填报模型 .18 第第 3 章章功能详细描述功能详细描述 .22 3.1报表设计 .22 3.2报表展现输出 .41 3.3数据填报 .52 3.4交互与 OLAP58 3.5报表管理中心 .63 3.6报表任务调度 .65 第第 4 章章部署与应用方案部署与应用方案 .67 4.1报表设计模式 .67 4.2报表应用部署方式 .69 4.3数据报送应用方式 .73 4.4支持环境 .76 第第 5 章章性能指标与控制性能指标与控制 .78 5.1性能分析 .78 5.2实测指标 .79 5.3控制手段 .80 第第 6 章章集成接口集成接口 .82 6.1数据源 .82 6.2JAVA API84 6.3前端接口 .86 6.4设计器接口 .88 第第 7 章章特点与优势总结特点与优势总结 .90 7.1新一代报表模型 .90 7.2真正易用的报表工具 .90 7.3纯 JAVA 报表软件.91 7.4强有力的填报功能 .91 7.5独有的字符终端解决方案 .92 7.6开放的系统 .92 7.7可靠的本土支持 .93 第第 8 章章逐点应答逐点应答 .94 8.1功能性要求 .94 8.2非功能性要求 .99 8.3实施服务要求 .110 第第 9 章章建议建议 .113 9.1选择开放性的工具 .113 9.2与应用紧密集成 .113 9.3基于实际业务报表进行测试 .114 附:某保险公司统计报表系统实际测试报告附:某保险公司统计报表系统实际测试报告 .115 第第 1 1 章章总体说明总体说明 1.1 润乾报表软件概述润乾报表软件概述 润乾报表是用于统计报表制作及数据填报的大型企业级报表软件,它提供了高效 的报表设计方案、强大的报表展现能力、灵活的部署机制,并且具备强有力的填报功 能,配合以全面的用户权限管理、报表调度功能和交互功能,为企业级统计分析、展 现提供了高性能、高效率的报表系统解决方案。 润乾报表软件的核心特点在于开创性地提出了新一代报表数学模型,采用了革命 性的多源分片、不规则分组、自由格间运算、行列对称等技术,使得复杂报表的设计 简单化,以往难以实现的报表可以轻松实现,避免了大量的复杂 SQL 编写与前期数据 准备,报表设计的效率提高了一个数量级。 润乾报表是一个纯 Java 报表工具,提供了全面的 API 接口,是开发 Web 报表软件 的理想选择。Java 报表工具的跨平台特性,使得它能良好地支持大型系统的需要。 润乾报表不需安装控件,可以实现纯 HTML 报表方式,可以支持 PDF,EXCEL 等输 出,提供了全面的页面与打印控制,能很多地满足 Web 报表的展现需要。同时,润乾 报表对图表有良好的支持,可以生成柱图、饼图、折线图等二十几种图表。 润乾报表提供基于动态库表关联技术的填报功能,完美解决数据入库的难题,极 大提高填报表单的处理效率,扩展了 Web 报表工具的应用方式。 润乾报表提供了报表管理中心,可以对报表建立多层次的目录管理,进行全面的 用户和基于角色的权限管理。 润乾报表还提供了调度器模块,可以实现定时、批量等报表自动处理和报表的自 动分发。 1.2 产品构成产品构成 1.2.1基础部件基础部件 润乾报表由两大核心部分组成: 报表设计器报表设计器:设计编辑报表,自带报表运算引擎,连接数据库后可预览打印 报表,并可生成其它格式保存。设计器不依赖于其它部分,可独立工作;设 计器以 Java 应用程序(JavaApplication)的形式提交。 报表服务器报表服务器:在后台提供统计报表运算和数据填报处理的服务,开放各层次 的 API 接口调用,由程序员调用生成结果报表;服务器运行不依赖设计器; 服务器以 Java 类包(jar)的形式提交,一般情况下不需要物理上的独立服 务器。 1.2.2可选组件可选组件 除基本部件外,润乾报表还提供如下可选组件: 报表管理中心报表管理中心:一个简单的独立报表管理应用,处理用户角色权限控制、功 能组织等,终端用户可直接采用该组件完成报表管理、查阅、填报等工作, 报表管理中心运行依赖于报表服务器。 报表调度器报表调度器:作为服务程序运行,在设定的时刻自动计算报表并将结果保存 或推送到指定的目标,报表调度器运行依赖于报表服务器; 集成(远程)设计支持集成(远程)设计支持:包括基于 HTTP 协议的 JDBC 接口、基于 WebStart 技术的设计器封装包和可编程的设计器远程文件访问接口。基于该组件可将 报表设计器集成于用户的统一门户管理之内(B/S 或 C/S 均可)、实现远程 报表设计、统一管理报表模板文件等功能; WindowsWindows 展现控件展现控件:包括应用于 Windows GUI 程序的 ActiveX 控件、生成 EXCEL/PDF 流的 DLL 调用及相关后台的服务程序,基于该组件可将报表运算 结果以控件形式显示于 Windows GUI 程序中。 UNIXUNIX 的的 C C 接口接口:包括后台服务程序与前端通讯的 C 程序,通讯部分的 C 代码 以源码形式提交(.H 和.C 文件),基于该组件,可将报表应用于 UNIX 下的 C 程序中。 第第 2 2 章章新一代报表模型新一代报表模型 2.1 数据统计模型数据统计模型 数据统计模型是报表工具最重要的指标,它决定了报表工具最基本的制表能力, 即在不编代码的情况下能够制作出何种报表。事实上,市场上的众多传统报表产品在 处理复杂报表时确实存在明显缺陷,大量报表仍需编写代码准备数据。润乾报表开创 性地提出了新一代数据统计模型,采用全新的概念方法比较彻底地解决了中国复杂报 表中的各项问题。 2.1.1多源分片多源分片 多源分片多源分片是中国复杂报表的基本特征。 多源多源是指一个报表的数据来源来自多个物理数据表(或类似数据体) ,甚至是多个 物理数据库。这里的“多个”常常不是两个三个,而是七八个乃至十几个。 传统工具的基本报表单元只支持单源报表,需要在报表设计前将多源转化成单源 处理。两三个源尚可写 SQL 语句完成(JOIN 或 UNION 等) ,但多到五六个源以上时, 一方面对应的 SQL 语句过于复杂难以维护,另一方面运行效率也很低,这时常常要编 写存储过程或其它代码来准备数据了。如果多源来自多库,则更为复杂,无法直接写 出复杂 SQL 或存储过程,需要架构专门的数据库桥后才可以完成。 某些传统工具也所声称的支持多源,实际上就是指多数据库支持,把数据库桥功 能集成进入报表工具中,但真正到报表设计时仍然只能单源。 多源往往带来分片,正是由于分片,使得报表设计必须直接基于多源进行,而不 能先将多源转成单源进行。有相当一部分分片报表无论如何也不可能换成单源处理, 部分能转成单源的报表处理也非常繁琐。 分片分片是指报表的纵向或横向或双向同时被分成了多个区域,每个区域扩展重复规 则不同,而又可能相互运算。 传统工具能够处理的上下格式一致和列方向固定的分片报表(即可由多源转成单源 的报表),但会迫使用户编写复杂的 SQL(UNION+JOIN)和代码准备数据,导致工作 量大且维护困难;对于横向分片数较多报表,由于必须采用 JOIN 方式准备数据,关 联条件复杂时很可能导致出 O(Nk)的高计算复杂度(k 为分片数) ,性能很低。 表 1 是个典型的纵向分片报表,数据区从上至下分成了几片,先是一片按客户汇 总的两级分组区域,然后是两个固定计算行,接下来又是一片按年度汇总的一级分组 区域,最后又是一个固定的合计行。各片分组层数不同,而且变动与固定固定结合, 而且各片之间还有数据沟通(某些计算行的值是由其它行计算出来的) 。这种上下格式 不一致的报表,其数据源不可能组织成单源(各片列数不同) ,也就不可能被传统工具 实现。 表 1 我们把表 1 横过来摆形成表 2,成为一个横向分片表。类似的,也是有两片分组 层数不同的变列区域和几个固定的计算列混合而成。传统工具只提供比较死板的交叉 报表模型处理变列报表,其中的集合运算只有固定的几种选择,不可随意加列,更不 可能有多片变列区域,而这种复杂的动静混合交叉表就只能手工编程动态加列实现。 表 2 为了解决多源分片的问题,许多传统工具引入了子报表的概念。把每个分片做成 一个子表,然后再在主表中拼接起来。如上述的表 1 理论上是可以通过子表拼接完成, 但实际上仍非常烦琐。 子表割裂了整表的一致性,一张报表被分成了多个小表,难以统一处理,给维护 管理工作带来麻烦。 从格式上看,各个子表各自独立,很难将格线统一对齐,某个子表的格式进行了 调整,所有其它子表都需要改动,这是极其繁琐的工作。而且每个子表的大小不固定 (可能随数据记录数而变化) ,由于传统工具的行列不对称(下面还会谈到) ,纵向排 列的几个子表可以自动摆位,而横向则不行,如上述的表 2 即使用子表也无法完成 (数据可以拼出,但格式无法拼出) 。 而且,主子表之间和子表相互之间都无法沟通数据,只能将主表的数据作为参数 传递给子表,子表无法带回信息,也无法向其它子表提供信息。这时,整表的混合运 算将非常困难,必须单独计算,无法采用某些子表的中间运算结果,不仅书写复杂, 运算效率也降低。 表 3 就是个典型的主从表,当然也是典型的多源分片报表。主记录中的金额显然 是明细信息中各产品金额的和,而在传统工具的主子表模型中,主表的合计值不能引 用子表的数据,必须自行重新计算。 表 3 润乾报表则直接支持多源(集)设计,在同一张报表中可同时引用多个数据集, 摒弃了传统死板的条带式扩展模型,而代之以独创的单元格扩展方案单元格扩展方案,各数据集即可 以独立扩展,也可以相互引用,扩展部分与固定部分可自由结合;而特有的主格关联主格关联 技术则可灵活地决定各级统计的范围,保证汇总运算的合理性与正确性。 表 1 在润乾报表中将如下设计: 需要根据数据变动的行(5/6 行)采用单元格扩展(B5/C5 格)机制(其中的 ds1.group 函数即负责扩展重复) ,而中间的固定行(8-11 行)则可直接写上,下一片 变动行(13/14 行)又采用单元格扩展(B13 格)进行(ds4.group 函数) ,两片扩展分 别基于不同的数据集(ds1 和 ds4) ,且层数不同,右边的 sum 运算中还能引用这些格 值,整个报表即分片又统一,完美地解决了多源分片问题。 完成表 2 只要简单地将相关的扩展单元格改变位置和方向即可,如下图所示,润 乾报表在行方向的扩展能力能够完全应用在列方向上(横向扩展) ,使得中国报表中常 见的横向分片、多片变动、动静结合的问题很容易解决。 对于表 3 这种主子表,在润乾报表无需借助子表概念完成,明细表(8-10 行)本 身可以自行扩展重复,而且由于了设置主格关联,整片明细表会自动跟随主记录重复, 而且主细表间可自由沟通信息,如 E3 格中的金额合计可直接由 G9 格中金额明细计算 出来(表达式 SUM(G9)) 。 2.1.2不完全划分不完全划分 不完全划分不完全划分是中国复杂报表中的典型特征之一。 传统工具中的数据分组延用了关系数据库中的相应概念,为完全规则划分完全规则划分,即划 分标准一致且有规则(一般都按某个字段或表达式) ,所有事实都必须出现且只出现一 次,分组值次序与原数据记录次序一致。 与完全划分相反,在报表汇总中却常常需要不规则划分,即划分标准看不出规律 (常常只能穷举) ,所有事实不一定全部出现在分组结果中、个别事实还可能重复出现, 次序也与原数据记录无关。固定固定分组是不规则划分的常见表现。 表 4 表 4 是个含有不规则划分的人员统计表(同时也是个分片报表) 。年龄段的分组就 是个不规则划分,划分规律不明确,只能穷举出来;分组不完全,没有列出所有的部 门,每个一级部门中还可能有一些不属于任何二级部门的人(其他类) 。 表 5 表 5 则是另一种形态的不规则划分报表。它的地区分组有三个特点:华北部分地 区中未包括内蒙古,出现了不完全分组不完全分组;山东和青岛有重复的部分,出现了可重分组可重分组; 而且地区次序是确定这样排列的,和数据记录的次序无关,是个典型的固定行分组报 表。 这两个报表用传统工具实现都较为困难,虽然报表格式并不复杂,但由于出现了 不规则划分,无法直接用报表工具的分组功能完成,只能编程把数据准备成一个单层 的二维表数据源,即加大了工作量,又很难体现数据之间的层次关系。 润乾报表为分组运算提供更多的过滤和排序选项,可生成不完全分组;采用内建 数据集分组技术可以很好地完成固定分组及可重分组的问题,而特有的 plot 集合函数 则解决了按段分组的困难。 表 4 可采用 plot 函数进行如下设计: C4 格中的 plot 函数负责完成按段分组,可随意填写分段方案;A5 格的分组扩展 可加上过滤条件;B5 格扩展出有规律的二级部门,而其他类则可单列一行,其计算公 式可与上面的格分别填写(C5/C6 格) 。 表 5 则可以采用内建数据集处理固定可重分组: 先根据报表展现的行设计内建数据集与之一一对应,然后在报表设计中采用内建 数据集进行扩展(A5 格) ,同行上其它各格的计算值都引用该格值(B5-H5) ,从而轻 松地完成了固定可重分组报表。 2.1.3自由格间运算自由格间运算 除不完全划分外,自由格间运算自由格间运算是中国复杂报表另一个典型特征。 所有的报表工具都会提供一些计算列的功能,在原始数据基础上再计算出一些别 的列值或统计值,这是报表展现中是不可缺少的功能。 传统工具一般只提供同行内的格间运算和针对某组(或全体)的集合运算,对于 常见的跨行组运算跨行组运算则相当困难。个别传统工具提供了简单的跨行能力,如可以引用上 一行数据,而跨组则无能为力;对于集合运算只提供个别固定的函数,如取第一名、 算累计值等,无法组合出通用集合运算,如取第二名、算累计的乘积等。某些带条件 的运算更是无法处理,如计算语文成绩在 90 分以上的同学的数学成绩总和。 除了有规律的跨行组运算外,报表中还可能会有一些随意的独立格运算独立格运算,其值可 能是报表中的任意几个其它格运算出来,甚至还可能会引用到报表外的数据(比如和 数据库中的数据再次运算等) 。由于传统工具没有很好的运算后报表数据项命名机制运算后报表数据项命名机制 (传统工具只能用列名命名设计阶段的数据单元) ,很难精确描述数据引用关系,只能 写出规律性很强的表达式,但随意的独立格运算会就使传统工具无法处理,而报表外 的数据引用更是只能借助脚本或外围应用程序,导致代码极为混乱。 表 6 是个典型的跨行组运算报表,其中有比上期(跨行)和比去年同期(跨组) 运算,这种报表在传统工具中常常又必须编程准备数据。表 7 则展现了另一些自由格 间运算,如计算排名,需要在同组中数出比当前值大的数的个数。下方的几个独立格 中又引用了表格中数据,但又非整组全部引用,而是带了某种条件(前三名) ,最下方 的一个格中还会引用到报表外的数据(北京市的全部销售额不在报表中) 。 表 6 表 7 这两个报表的样式都不复杂,但这些格间运算会让传统工具非常为难。只能再次 依靠程序代码,把数据事先计算好直接往报表里填。 润乾报表则开创性地提出了单元格层次坐标与相关格集的概念,可以则扩展后的 每个单元格或格集进行精确命名,即可在设计时自由引用任何一个扩展后单元格,而 且还可以方便地嵌入 SQL 或其它函数以引用外部信息。 表 6 在润乾报表中将如下设计: D3 格中的 C3-1和 E3 格中的 C3A3:-1,B3:+0即是层次坐标写法,用以精确定位 扩展后的每个单元格,从而使得跨行组运算可以方便地进行。 , 表 7 在润乾报表中的的设计方案: C4 格的表达式中应用了层次坐标和相关格集概念,用以计算其对应的 B4 在扩展 后的 B4 格组(扩展后会有多个 B4)的次序(E4 和 F4 的关系类似) 。B6 表达式中有 带条件的引用(C4200,则用参数就不可能作到了,但采用宏则可轻 易完成。 带有参数和宏的报表 B2 格带有参数。B6 格中带有宏,可用于替换参数无法完成的报表选出字段。 3.1.14向导与工具向导与工具 润乾报表软件提供了强有力的辅助工具,可以帮助用户更方便、更高效地进行报 表设计。 报表设计向导报表设计向导 润乾报表对于简单的行式、分组与交叉报表提供设计向导,用户只需要选择相应 的数据表列即可以自动生成出报表。 分组报表定义向导 交叉报表定义向导(行列定义) 交叉报表定义向导(值定义) SQL 编辑器编辑器 润乾报表提供标准 SQL 编辑对话框,用户不必记忆数据库表/字段名称,可直接在 SQL 编辑器中选择要操作的数据元素,设计查询、排序条件等。同时润乾报表也支持 直接输入 SQL 语句。 SQL 语句编辑器(字段选择) SQL 语句编辑器(参数引用) 中文语义层中文语义层/表达式表达式 润乾报表支持中间语义层机制,开发人员可将数据结构事先以业务人员熟悉的术 语进行描述,在设计报表时即可直接采用这些语义信息,而不必直接面向物理数据结 构。 同时,润乾报表还支持中文表达式,如可以写类似 价格*数量 这样的表达式,使 报表设计更加通俗易懂。 数据表与字段的中文描述定义 字段外观预定义 数据集字段中文定义 公式编辑公式编辑/函数帮助函数帮助 润乾报表提供可视化的表达式编辑对话框,用户不必记忆系统提供的众多函数与 需要操作的数据集元素,表达式的大部分都可以简单地用鼠标点击出来,而且对所有 系统函数均有详细的在线帮助。 公式编辑器 函数帮助 3.2 报表展现输出报表展现输出 润乾报表不需安装控件,可以实现纯 HTML 报表方式,可以支持 PDF,EXCEL 等输 出,提供了全面的页面与打印控制,能很多地满足 Web 报表的展现需要。同时,润乾 报表对图表有良好的支持,可以生成柱图、饼图、折线图等二十几种图表。 3.2.1报表元素的外观属性报表元素的外观属性 润乾报表对报表元素提供非常丰富的外观属性,计有: 润乾报表单元格外观属性列表 字体、字号 前景色、背景色,均支持调色板和透明显示 边框:类 EXCEL,可设计线型线宽 对齐方式:左中右/上中下对齐,自动折行,缩进 显示格式:文字、数值、日期时间等数十种风格 单元格显示格式 定位拉伸:横向扩展表时保证标题居中或居右 定位拉伸例子,D2/E2 格设计了定位规则,在 B2 横向扩展时会向右靠拢,结果如下: 所有的属性均可用表达式控制。 含有属性表达式的报表 属性中填写的表达式 运算结果,不及格的下划线且居中,偶数行是斜体 3.2.2统计图统计图 润乾报表支持如下 23 种类型的统计图: 柱形图 三维柱形图 三维簇状柱形图 堆积柱形图 三维堆积柱形图 饼图 三维饼图 折线图 三维折线图 区域图 三维区域图 条形图 三维条形图 三维簇状条形图 堆积条形图 散列图 时序状态图 时间走势图 双轴柱线图 双轴折线图 雷达图 甘特图 仪表盘 针对不同需要,在浏览器上可生成如下三种图片类型 GIF:256 色,可透明显示,不失真压缩 JPG:真彩色,不可透明,失真压缩 PNG:真彩色,可透明,不失真压缩 润乾报表的部分统计图 3.2.3页面(页面(HTML)输出)输出 润乾报表可在 WEB 上生成标准的纯 HTML 输出格式,对 IE5 和 Netscape7 以及上 版本均可支持且效果一致,统计图则完成以纯 HTML 图片形式展现,浏览器端无须事 先安装任何插件。 润乾报表在 WEB 上的展示,可随意嵌入到网页的任何地方 除静态 HTML 外,润乾报表还可生成固定表头(上/左均可)的可滚动报表以及行 式分组可伸缩报表,大大方便了用户的使用。 浏览器上表头固定可上下左右滚动显示的报表 3.2.4文件输出文件输出 除标准 HTML 外,润乾报表还可将报表以文件方式导出,例如: EXCEL 润乾报表可输出完全不失真的 EXCEL 文件,报表中的统计图也将嵌入其中, 并附带有各种打印属性,生成的 EXCEL 可不作任何调整直接打印而不会丧失格 式信息。还可对导出的 EXCEL 进行进一步的加工处理。 PDF 润乾报表可输出 PDF 文件,报表中的统计图也将嵌入,并附有纸张打印信 息,结果可直接输出打印。 TEXT 润乾报表可生成专为金融、邮政等行业字符终端应用服务的带格式文本, 报表格线由中文表格符拼出,并可在其中设置 Escape 码,可直接在字符打印 机上输出。 RAT 文件 RAT 文件是润乾报表自有的文件格式,用以保存运算后的报表结果,其中带 有统计图、纸张打印信息等,可由润乾报表设计器打开查看以实现报表的脱机 浏览(不依赖于第三方软件且可在 UNIX 上显示),并可打印或再次输出成上 述几种格式的文件。 输出的 EXCEL 文件,保持所有格式且能将统计图一并导出 输出的 PDF 文件,带有分页信息,并导出了统计图 独有的带格式文本输出,可直接输出在字符中终 3.2.5分页与分栏分页与分栏 润乾报表对报表页面提供了强有力的控制功能: 分页方案分页方案 可支持按纸张大小分页、按行列数分页、强制分页(分组后或固定行列) ; 分页方向分页方向 支持纵向和横向双方向分页,有上表头、页眉、页脚、左表头等功能。上/左表头 信息每页均会合理重复; 单元格拆分单元格拆分 单一单元格不能被分页拆分,当合并单元格被拆分时可选择其中数据是否也分页 断开显示; 报表纸张与分页属性定义 单元格分页属性定义 行分区类型 列分区类型 分栏及其它分栏及其它 支持横向分栏;支持末页补足空行的操作; 分栏输出的报表 3.2.6打印打印 润乾报表可通过采用 JavaApplet 的方式实现浏览器中的精确打印,可支持如下功 能: 一纸多页,实现小票据或卡片式打印,可选择按行排列和按列排列; 缩放与定位:打印前的缩放及在纸张中的定位控制 页码控制,选择不同页码打印 打印前可控制是否允许再修改数据 打印预览画面,支持一纸多页,可缩放显示 3.3 数据填报数据填报 润乾报表提供基于动态库表关联技术的填报功能,完美解决数据入库的难题,极 大提高填报表单的处理效率,扩展了 Web 报表工具的应用方式。 3.3.1编辑风格编辑风格 润乾报表在浏览器端采用纯 HTML 填写方案,可提供如下编辑风格: 文字编辑框 下拉列表框:下拉项目为固定内容 下拉数据框:下拉项目来自数据表,可带检索条件 复选框 下拉日历 下拉树:树结点可来自于数据表,并可自动循环 文件/图片上载 支持的编辑风格 下拉数据表 上载文件编辑 下拉树编辑 3.3.2填写控制填写控制 在填报过程中,可以进行严格的填写控制,包括:可填写控制:该单元格是 否可以填写,可能属性表达式控制 自动计算:某些单元格是由其它单元格运算而成的,当基础单元格的数据被 修改时,目标单元格的数据自动跟随改变,计算公式在设计时设定好 合法性检查:考察数据填写是否合理,某单元格的数据类型是否匹配(如在 数字格中填入了非数字字符),单元格之间必须满足的数据校验关系(如某 格的数据必须大于另一格的数据);对于输入错误的数据,系统会给出事先 设置好的提示信息并定位出有错单元格方便输入者修改错误; 合法性检查有两种: 1)即时检查:填写当前格,输入焦点离开该格时进行检查,若校验不满足 则不得离开焦点 2)提交检查:全部填完后在提交数据前进行检查,校验不满足则不得提交 设计者还可以设置校验不满足时的提示信息,以提示用户出错的原因。 自动计算定义 合法性检查定义 多页填写:润乾报表提供了多页填报 taglib,当要填写内容很多时,可以组 织成多个 tab 式的页面一齐填写,在 JSP 中可以设定多页表单之间的填写控 制关系。 多页填报及相关的合法性检查(跨页) 3.3.3数据导入与离线编辑数据导入与离线编辑 润乾报表还可支持离线填报和批量导入数据的能力: 离线填报离线填报 润乾报表生成的 HTML 表单可下载成本地文件中,其中保留了 JavaScript 代码, 因此所有的填写控制均依然有效。用户直接用浏览器打开这些离线 HTML 即可继续填 写数据,填写过程中可以多次保存而不必与服务器有网络连接,填写完成后再联机上 传即可将数据提交到服务器的数据库中。 离线填报还可以采用导出或用户自行绘制的 EXCEL 文件进行,只要报表格式一致 即可将 EXCEL 数据引入报表中,这使得许多已采用 EXCEL 填写数据的业务系统切换 到润乾报表非常容易。 批量导入批量导入 离线用的 HTML(或 EXCEL)也可不是从浏览器下载而成,而由报表服务器批量 生成并采用某种方式(EMAIL、软盘等)分发给填报人,由填报人填好后再收集回来。 润乾报表支持文件导入功能,可将收集回的报表批量导入到数据库中。 离线填写(仍可带有合法性检查关系) 3.3.4库表关联库表关联 润乾报表支持如下三种基本填报表样: 自由式表格:整表对应一条记录,各字段分布在多个无规律的单元格中,如 人员的基本情况表; 行(列)式表格:数据区每行(列)对应一条记录,如人员的履历表,记录 的某些字段(一般是主索引码的一部分)会在行外,如人员履历表中的人员 编号,这是最常见的表格式样;设计时只要设置一行(列)的数据库对应属 性,其它行(列)会由系统自动扩展。 交叉式表格:数据区每格对应一条记录,如学生课程成绩表,左边是学生, 上边是课程,数据区是成绩;设计时只要设置一格的数据库对应属性,其它 格会由系统自动扩展生成。 润乾报表同时支持以上三种表样的混合,如一张填报表的上半部分是自由式表格、 下半部分是行式表格。还可以是更复杂的多页混合的填报表单。 一个单元格的数据可以同时写入多个数据表,并且与其数据来源无关,从而可以很 方便地实现汇总填报。 润乾报表更新属性定义 3.3.5数据写入数据写入 润乾报表支持同一张填写表单同时写入多个数据表/多条记录的情况,填报服务程 序会利用数据库事务功能保证其一致性。 在设计表单模板时建立了数据库字段与表单单元格之间的对应关系。服务器会根 据对应关系生成 SQL 语句。程序会自动决定生成 UPDATE 还是 INSERT 语句,同时 会自动判断数据库的类型,在 SQL 语句中添加相关的数据类型转换函数(如在 ORACLE 中的日期常数要加 TO_DATE,而 SQL Server 则是 CONVERT) 。示意图可 参见 2.2.3 节。 3.4 交互与交互与 OLAP 润乾报表提供了强有力的交互能力和分析能力,能够支持用户进行 OLAP 分析。 3.4.1灵活定义的查询和参数功能灵活定义的查询和参数功能 在很多情况下,用户需要通过输入条件,对数据进行查询,并灵活控制显示的数 据范围。润乾报表通过参数模板的功能,可以非常灵活地定义各种查询界面和查询条 件,由用户方便地输入查询条件,交互式地控制报表的内容和形式。 实际上,影响一个报表的参数可能有很多项,其中部分参数是应用系统或环境的 基本信息,不应当再由用户输入,如当前登录的用户角色、当天的日期等。无须输入 的参数被称之为系统参数,对应的需要输入的称为用户参数。润乾报表提供了强有力 的参数处理机制,可以分别对待处理这两类不同情况的参数。 润乾报表支持如下四种参数机制: 缺省参数界面 润乾报表将根据报表的参数信息自动生成一个非常简单的参数输入界面, 直接在 taglib 中配置就可以选择是否出现该界面。该界面不能区分系统参数 和用户参数,它将报表的所有参数都罗列出来,而且也只能提供最简单的文 字输入方案,不能做出下拉选择等效果。 一般这种参数方式都是用于报表测试的,因其业务色彩太过薄弱,在实 际应用中很少使用。 自写参数界面 由应用程序员为每个报表专门编写参数输入界面(.JSP) ,将输入后的用户 参数配合上系统参数设置到报表服务器,可以直接调用服务器的 API 设置,也 可以在 taglib 的属性中设置。 自写参数可以让程序员对报表查询有最深入的控制力度,如可在某个参数 输入完成后立即引起页面的变动而不必等所有参数全部输入完毕、某些参数的 选值范围可能被别一些参数过滤等。这样可以造出更好的交互式效果,但相应 的工作量也较繁琐。 绘制参数界面 润乾报表提供可绘制的参数界面。系统设计了一个专门的参数面板 taglib, 可发布由用户进行参数填写的界面,其中可以支持象下拉选择等任何编辑风格 与填写控制方案。 报表设计时并不涉及其参数界面,一个报表可以有多种参数输入界面。参 数界面是自行绘制的(利用报表设计器画) ,可以只涉及用户参数。一般在页 面程序(.JSP)中将参数界面与报表展现配合起来,并且在这里将系统参数与 用户参数配合起来提交给报表服务器。 与自写参数界面相比,绘制参数的方案可以省去许多编写页面程序(.JSP) 的工作量,也能获得控制力度略弱但仍很友好的输入界面,而且也较易于维护, 这是最常用的参数输入机制。 参数面板的定义 参数的执行 生成参数界面 对于批量较有规律的报表,程序员也可以采用生动生成参数界面的方案, 这种方案事实上与润乾报表自带的缺省参数界面类似。所不同的是由应用程序 员根据业务特色编写程序自动生成参数界面,这样可以带有较强的业务色彩, 使其实用起来。 报表服务器提供了读出报表参数的 API,同时可以在报表设计时设置参数 的某些自定义属性,应用程序则根据这些信息自动生成相应的参数界面,区分 出系统参数与用户参数,并根据参数属性生成不同的编辑风格和填写控制等。 3.4.2通用查询通用查询 润乾报表还提供通用查询功能,设计人员可以为每张报表定义与参数无关的可查 询指标及每个指标对应的条件编辑方案(如某些条件需要下拉出来) ,采用润乾报表提 供的通用查询标签(taglib)即可在页面上生成通用条件设置界面,用户可选择一个或 多个指标并分别提出对每个指标的条件,再将这些条件联接起来(AND/OR)形成完 整的查询条件,直接影响报表用于取出数据的 SQL 语句。 如可以对人员报表提出类似 姓名 LIKE “张%” AND (籍贯=“北京” OR 学 历“本科” ) 的条件,而不必为事先为该报表设置好参数。 通用查询输入界面 3.4.3自定义报表及其变换自定义报表及其变换 润乾报表提供了丰富的 API 和预制程序,可以结合用户的元数据的语义层定义 (这些定义不一定是仅存在于报表和数据分析系统,而更应该是属于整个数据体系) , 实现灵活的自定义报表功能。 在润乾报表设计器上能做的所有工作均有相应的 API 提供,如设置单元格属性、 数据源定义等。由于产品提供的 API 非常丰富,表格样式与 EXCEL 类似而易于理解 和单元格定位,对于不复杂的自定义报表可以很容易生成。 还可以在用设计器绘制的报表基础上用 API 进行修改控制使其完成各种变换功能, 如改变其排序条件、修改选出列、改变统计图类型等,使得用户在页面端能感受到实 际的交互作用。 同时,润乾报表提供了大量预制的自定义报表代码,可以通过简单的修改即与用 户的元数据定义结合起来,实现自定义报表功能。 点击标题排序 改变统计图类型 3.4.4钻取钻取 润乾报表可实现灵活的钻取功能,另外对行式分组报表提供可收放的展现方案。 链接钻取链接钻取 润乾报表的所有单元格和统计图的图例上都可以加上超链接,且可以引当前单元 格的值和统计图图例对应值作为超链接的参数。这样,可以将几张事先做好的报表通 过链接参数串到一起,实现对数据的逐级钻取。 钻取报表例子。每个单元格都可以生成超链接进行钻取,统计图的图例也可以生 成超链接做钻取。 收缩展开收缩展开 润乾报表生成的行向多层统计报表可以在网页上动态展开收缩(由于 HTML 的限 制,列方向目前无法提供此项功能) ,类似一般的树状结构,用户可以自由选择展开到 哪些项目和展到哪一层次。也可以表现出动态钻取聚集的效果。 可收缩展开的报表,点击分类左边的图标即可在页面上动态展开和收缩报表,实 现动态分层查看报表的效果。 3.5 报表管理中心报表管理中心 润乾报表提供了报表管理中心组件,可以进行完整的报表、用户及权限管理。 报表管理中心在用户无条件将报表应用集成到完整的企业信息平台或其他应用系 统的情况下,提供了方便、简捷、高效的解决方案,可以帮助用户快速将报表应用投 入实际使用。 报表管理中心采用全 B/S 方案,管理与应用都在 WEB 上进行。 3.5.1用户权限用户权限 润乾报表管理中心提供了高效的用户与权限管理机制。 在报表管理中心中,可以进行用户、用户组的设置与管理,并以此做为权限管理 的基础。 可以控制不同用户、用户组的权限,从而保证只有用户才能看到与自己的相关的、 被授权的报表,可靠地保证了企业的数据和信息安全。 可以针对用户或用户组设置相应的宏或参数(比如:某个用户组都使用一个“华 北地区”的参数,则可以很方便地控制他们在查看销售数据时只能看到华北地区的数 据,而不需要为不同的用户设置不同的报表)。 3.5.2树形功能组织树形功能组织 报表管理中心模块提供了树形功能组织结构,可以建立用户自定义的多层次的报 表目录。 在报表目录中,不仅可以对报表进行管理,还可以对其他超链接(URL)进行管 理,方便用户获取各种信息。 报表目录的层次没有限制,可以多层次展开。 结合用户及权限管理功能,可以对树形报表目录的每一个节点进行基于用户或用 户组的权限控制。同时,在报表目录显示时,会自动根据用户权限,展现不同的视图。 还可以将宏与参数直接设置在目录树的叶节点上,以实现最常用查询而无须每次 输入参数,如某节点功能可定义为“本月费用统计”或“去年当月费用统计” ,点击这 些节点将自动生成相应报表。 3.6 报表任务调度报表任务调度 润乾报表提供了强有力的报表任务调度功能,可以实现定时、批量等报表自动处 理和报表的自动分发。 调度器采用全 B/S 方案,管理设置完全在 WEB 上进行。 3.6.1任务管理与触发任务管理与触发 润乾报表调度器允许把多个同等条件触发的报表调度工作组合成一个任务。每个 任务均有确定的时间触发条件,目前提供如下几种: 每隔 n 分钟执行; 每天 x 点执行; 每周 x 日执行; 每月 x 日执行; 每季 x 日执行; 每半年 x 日执行; 每年 x 日执行; 自定义条件:可由用户根据自已业务情况组合出更复杂的条件,如果每月的第 二个星期二下午 5 点等,还可以临时决定该任务是否需要启动。 3.6.2参数循环参数循环 报表运算可能有各种参数,需要设置相应的参数循环才能完成报表任务的运算调 度工作(如计算某月每天的交易汇总、计算某省所有地区的业务统计表) ,润乾报表调 度器提供如下的参数循环机制: 固定序列,如计算某几个确定地区的报表,将地区编码写成固定序列 函数表达式,如 1 to 12 以触发计算 1 月到 12 月的报表 SQL 语句,从数据库表中取出需要循环的参数 自定义:由程序员自行编写代码生成的参数列表 3.6.3分发控制分发控制 生成完的报表还需要完善的分发机制,润乾报表调度器可生成 TEXT、HTML、EXCEL、PDF、RAT 等多种运算结果(可组合) ,并可根据任务的分 发设置决定生成结果的去向,计有: 存入本地文件系统:将结果按规定的目录体系存入调度器所在的本地文件系统; FTP:通用 FTP 协议将结果上载到指定服务器; EMAIL:通过 EMAIL 将结果发送给指定 EMAIL 帐号,可让相关人通过邮件 及时收到报表运算结果; 自定义:由程序员自行处理报表运算的结果,如可写入数据库等; 第第 4 4 章章部署与应用方案部署与应用方案 4.1 报表设计模式报表设计模式 润乾报表提供了本地设计和集成(远程)设计两种模式,可以灵活地进行报表设 计。 4.1.1本地设计(独立应用)本地设计(独立应用) 本地设计指报表模板文件存于本地文件系统中且数据库是直连的(JDBC 或其它自 定义方式) ,这时润乾报表设计器可作为一个独立的应用程序使用,用于绘制和输出各 种统计报表,其应用结构如下图: 数据库数据库 报表文件报表文件 语义层定义语义层定义 打印机或输出文打印机或输出文 档 发布 报表设计器报表设计器 用户通过报表设计器连上数据源(一般是数据库)后可以直接绘制各种报表,将 执行结果打印输出或生成各种公共的文件格式(HTML、EXCEL、PDF 等)提交给其 他人阅读。 在绘制报表时可由应用开发人员事先设计好语义层定义,这样,报表设计人员看 到的将都是经过业务描述过的数据视图(其中表和字段名都可有中文描述) ,可以更加 方便制作报表并降低使用难度(报表中的表达式也可写成中文) 。 数据源也可以不是数据库,而是一些数据文件甚至是一段程序(但必须是 JAVA 写的) ,由应用开发人员事先编写并定义好数据源,业务人员就可以直接使用于制作报 表。 4.1.2集成(远程)设计集成(远程)设计 基于可选的集成(远程)设计支持包,润乾报表设计器可被集成于用户的统一门 户管理之下(B/S 或 C/S 均可,B/S 下需采用 WebStart 机制启动设计器) ,报表模板文 件可送交远程的资源管理服务自行处理,而不是必须在本地存取,同时可通过支持包 中附带的 HTTP-JDBC 接口连接远程的数据库进行报表设计和预览,而非直连到数据库 上(在 WEB 端设计时原则上根本就不允许直接到数据源上) ,从而保证文件(资源) 与数据都能够接受统一的门户权限管理。 数据库数据库 文件服务管理文件服务管理 发布 HTTP-JDBC接口接口 发布 报表模板报表模板/语义层配置语义层配置 报表设计器报表设计器 浏览器或用户门户浏览器或用户门户 WebServer 4.2 报表应用部署方式报表应用部署方式 润乾报表可以支持多种不同应用环境下的部署。 4.2.1J2EE 的的 B/S 应用应用 润乾报表服务器以 JAVA 类包(jar)形式提交,非常适合在 J2EE 下集成。 WebServer 数据源数据源 报表模板报表模板 浏览器浏览器 报表服务器报表服务器 用户应用系统用户应用系统 (JSP/servlet) 润乾报表服务器是个逻辑概念,并没有一个物理的服务器在运行。它是作为应用 服务器上的一个应用提交的,或者直接向应用程序员提交 JAR 包。应用程序在 JSP 中 使用 tablib 或直接调用开放的 JAVA API 就可以方便应用润乾报表的各项功能、对报 表进行广泛深入的控制,而且可以达到最高的运行效率,同时还能够与应用程序共享 应用服务器的连接池管理或进行集成与负载均衡,并可与应用程序一起统一部署。 统计图等 BLOB 类数据输出采用流式服务,不会在文件系统中产生任何临时文件。 4.2.2非非 J2EE 的的 B/S 应用应用 非 J2EE 机制的 WEB 应用集成润乾报表一般采用 WebService 的方式, Java WebServer 报表模板报表模板 报表服务器报表服务器 数据源数据源 WEB应用系统应用系统 在应用系统的后台运行报表服务器,向其它 WEB 应用提供 WebService,通过 URL 访问机制传递参数并获得运算完成的 HTML 结果流(或 EXCEL、PDF 流) ,然 后再由该应用发布到浏览器上。 特别地,在 Microsoft IIS 下,可采用专门的 WEB 服务转发程序,润乾报表除 JAVAAPI 外的各项功能均能够与 IIS 的透明集成。 4.2.3Windows 下的下的 GUI 应用应用 采用可选的 Windows 展现控件可将润乾报表应用于 Windows GUI 程序中(如 Delphi、VB 编写的 C/S 程序) 。还可以将报表生成成 EXCEL/PDF 流再采用第三方控 件展现在 GUI 应用画面中。 WebServer 报表模板报表模板 数据源数据源 报表服务器报表服务器 展现控件展现控件 (JSP 或 servlet) GUI 主程序主程序 (JSP 或 servlet) EXCEL/PDF DLL (JSP 或 servlet) 4.2.4UNIX 下字符终端应用下字符终端应用 面对运行在 UNIX 下,由 C/C+编写,前端输出是字符终端的应用系统,润乾报 表仍可以顺利应用。采用 UNIX 的 C 接口包可将润乾报表特有的字符终端报表解决方 案应用于这类程序中。 通常情况下,报表服务器和 C 接口以及业务程序都物理上运行在同一台机器上, 数据则即可能是直接从后台数据源(一般都是数据库)中读出,也可能是由业务程序 写出的特定格式的文件。此时,从报表服务器输出的结果应是表格符拼出的文本,通 过 C 接口提交给业务程序进行下一步的输出打印。 润乾报表的 C 接口在 UNIX 下以源码形式提交,即向程序员提供.H 和.C 文件,由 应用程序员与其业务程序一起编译。 报表模板报表模板 数据源数据源 报表服务器报表服务器 C 接口接口 (JSP 或 servlet) 数据文件数据文件 业务程序业务程序 (JSP 或 servlet) 4.2.5JavaApplication 在 Java Application 中集成润乾报表与在 J2EE 机制下的 WEB 应用类似,可直接调 用报表服务器提供的 API 接口。同时,产品还提供了用于展现的 swing 控件,可以直 接嵌入到 Java Application 的图形界面中。此时,报表参数需要用 API 设置。 报表模板报表模板 数据源数据源 Java Application 主程序主程序 报表服务器报表服务器 展现控件展现控件 4.3 数据报送应用方式数据报送应用方式 除了统计汇总外,润乾报表还可以用于数据采集,即在 WEB 上填写数据报送到中 央服务器。 润乾报表支持联机填报、脱机填报和批量导入等多种方式,可以良好地以持多级 汇总填报。 填报功能只能被集成到应用系统中,而不能单独运行。填报能力可以运行在基于 J2EE 和.NET 的 B/S 应用和 Windows GUI 应用中,而不能支持其它形式 B/S 应用和 UNIX 字符终端应用。 4.3.1联机填报联机填报 数据源数据源 报表模板报表模板 报表服务器报表服务器 用户应用系统用户应用系统 (JSP/servlet) HTML 填报填报 表表 浏览器浏览器 WebServer 润乾报表服务器程序在后台根据绘制好的报表文件生成可以填写的 HTML 表单, 用户直接在浏览器中填写表格,提交后再由润乾报表服务器根据填写内容和报表文件 模板生成相应的 SQL 语句,将数据写入数据库。这时要求数据源有可写的能力,所以 必须是数据库。 填报表单的模板报表文件仍然采用报表设计器绘制,和普通的统计报表不同,填 报表单增加了一些与之相关的属性。在生成的

温馨提示

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

评论

0/150

提交评论