《润乾报表工具使用情况介绍.ppt》由会员分享,可在线阅读,更多相关《润乾报表工具使用情况介绍.ppt(63页珍藏版)》请在三一办公上搜索。
1、管理会计系统(一期)润乾报表工具使用情况介绍,10/15/2023,1,目 录 结 构,一、认识润乾二、原有实现三、集成润乾四、存在缺陷,10/15/2023,2,目 录 结 构,一、认识润乾二、原有实现三、集成润乾四、存在缺陷,10/15/2023,3,概述,润乾报表软件是我行采购的轻量级非线性报表工具,其核心特点在于提出了非线性报表数学模型,采用了强关联语义模型、多源关联分片、不规则分组、自由格间运算、行列对称等技术,使得复杂报表的设计简单化,以往难以实现的报表可以轻松实现,避免了大量的复杂SQL编写与前期数据准备,提高报表设计效率。润乾报表不需安装控件,采用标准的纯HTML的Web报表,
2、支持ie、netscape等多种浏览器,可以支持PDF,Excel等输出,提供了全面的页面与打印控制,并且能够满足Web报表的多种展现需要。同时,润乾报表对图表有良好的支持,可以生成柱图、饼图、折线图、仪表盘、雷达图、甘特图、双轴柱线图等三十几种图表。,10/15/2023,4,主要功能,一、支持主要的报表样式,网格式报表,行式报表,10/15/2023,5,主要功能,一、支持主要的报表样式,交叉表,10/15/2023,6,主要功能,一、支持主要的报表样式,自由式报表,10/15/2023,7,主要功能,一、支持主要的报表样式,主子表,10/15/2023,8,主要功能,一、支持主要的报表样
3、式,报表组(多表单)统计图 多源分片 不规则分组,10/15/2023,9,主要功能,二、类Excel设计器,润乾报表工具采用类Excel的可视化网格式编辑方案,不仅可以以可所见即所得的方式绘制出复杂表样,而且可免去使用传统控件拖拽式编辑时对齐数据项的繁琐,在保证格式整齐美观的同时大幅提高绘制效率,避免打印与显示因分辨率不一致而出现的失真现象。另外,熟悉Excel使用的人员相当多,类Excel的报表设计方式显然更易于报表绘制工作的上手。,10/15/2023,10,主要功能,三、填报,润乾报表很好的支持了报表填报功能,目前还支持行式填报、类Excel式填报、多数据源填报及报表主填报等方式。填报
4、允许数据库表列与报表的单元格之间进行任意匹配,设计报表样式时不需要考虑数据结构,反之设计数据结构时也只需要考虑业务规则而不用管报表样式,任意的报表样式和数据结构之间都能建立起对应关系。润乾报表在浏览器端采用纯HTML填写方案,提供文本录入框、密码框、下拉列表、下拉数据集、单选复选框、下拉日历等风格,同时提供了填报的控制和检查。,10/15/2023,11,主要功能,四、打印,润乾报表采用JavaApplet的方式实现浏览器中的精确打印,可支持如下功能:一纸多页:实现小票据或卡片式打印,可选择按行排列和按列排列;缩放与定位:打印前的缩放及在纸张中的定位控制;页码控制:选择不同页码打印;打印前可控
5、制是否允许再修改数据。,10/15/2023,12,主要功能,五、即时页面展示,润乾即时报表提供了易用高效率的报表快速设计方案,采用tab页切换的设计布局,实现无编码形式设计报表。用户可利用即时报表的报表展现、汇总、统计、打印导出、生成统计图等功能搭建出轻量级企业报表平台。,10/15/2023,13,主要功能,六、语意套件,润乾报表提出的强关联语义模型,提出了枚举分组的概念,并且将强关联模型、枚举分组概念与非线性报表模型完美结合,使得报表设计者可以在轻轻松松的拖拽中,设计出很复杂的非线性报表。它采用所见即所得的编辑方式,让用户从语义层中拖拽视图、字段时,自动生成表达式,;它把很多报表里的属性
6、在语义层中定义,避免了用户理解和学习报表的属性和术语,更是避免了很多属性的重复定义;它独特的条件参数,使得用户不用学习条件语句的写法,就可以使用条件和参数,制作出参数报表。,10/15/2023,14,主要功能,七、性能管理,润乾报表性能管理由缓存机制、并发控制和表达式预解析三个部分组成。缓存机制支持单用户单用户缓存、多用户共享缓存;并发控制包括静态并发控制和动态并发控制,静态并发可以设置最大报表运算并发数量、最大报表访问等待数量和报表访问最长等待时间,动态并发控制由用户根据服务器硬件的配置,预先设置一个允许并发运算的最大格子数,然后由服务器在运算的过程中,动态地判断当前并发访问的格子数是否达
7、到预设值,如果达到,则控制新进访问线程,使之等待,等有空闲时接着计算。表达式预解析是在报表对目标数据进行综合计算之前,首先对请求的报表进行检查,把设计常量、数据集字段、单元格引用的部分先计算或映射出来,从而避免整体大规模计算报表时的重复计算和重复映射。,10/15/2023,15,类Excel设计器,10/15/2023,16,类Excel设计器,10/15/2023,17,格间运算,定义:在单元格的运算中可以引用其它单元格的值,直接写单元格名即可,这样的运算称为格间运算。,10/15/2023,18,支持多数据源,10/15/2023,19,多类型数据集,10/15/2023,20,丰富的函
8、数库,润乾提供了丰富的函数库,一共可分为9大类:数据集函数:Group(),Select(),Sum(),Count().单元格函数:if(),list(),map().字符串函数:trim(),left(),right().数学函数:round().日期时间函数:now().数据类型转换函数:str(),date().数据类型判断函数、分页后运算函数、统计图运算函数,10/15/2023,21,单元格控制,思考以下几个问题如何实现:,隔行变色,一级指标粗体,二级指标缩进,满足一定条件的值用红色显示,单元格宽度由显示的内容决定,10/15/2023,22,单元格控制,10/15/2023,23
9、,一个例子,10/15/2023,24,目 录 结 构,一、认识润乾二、原有实现三、集成润乾四、存在缺陷,10/15/2023,25,一般流程,制作一张报表的一般流程:,10/15/2023,26,原有实现,未引用润乾报表工具之前,MAP系统采用自主开发通用的处理程序,配合PLANTIX报表引擎(旧版)的方式实现报表生成的功能。,10/15/2023,27,不足之处,模板配置采用纯文本形式,降低了配置模板的友好度;缺少对单个单元格的控制能力,致使有些格式不能完美实现;不支持多数据集,在有些复杂的展示需求中,只能通过预先的数据加工把一些弱联系的数据强行组织在一起,增加了主题加工的复杂度并且降低了
10、报表生成时的效率;不支持一些比率的指标的合计;不支持Excel公式,对一些计算只能在取数的时候通过复杂的Sql语句实现;不支持3级以上的动态交叉表;不能随时看到制作的报表,测试比较麻烦;不支持图片。,10/15/2023,28,目 录 结 构,一、认识润乾二、原有实现三、集成润乾四、存在缺陷,10/15/2023,29,润乾的优点,类Excel的设计器使制作报表模板变得简单;可以对单元格进行控制,完美实现业务的各种要求;支持多数据集,减少数据加工的复杂度;支持Excel公式,并且提供了大量的函数,可以实现复杂的比率汇总等计算,有时也可以减少很多不必要的数据加工;支持宽表的主题数据,大大减少了主
11、题表数据量;可以随时浏览制作的报表,方便开发人员进行测试;对单元格支持文本、图片字段、图片文件和HTML代码,还支持统计图等复杂类型,展示方式多样化;为二次开发提供了集成接口,方便将其嵌入到用户的各种应用程序中。,10/15/2023,30,Java API,Java API在结构上分成了三层:数据层、运算层和展现层;每个层面都有开放的接口允许程序员进行调用或重载。,10/15/2023,31,Java API,/第一步,读取报表模板ReportDefine rd=(ReportDefine)ReportUtils.read(reportFile);/第二步,运算报表Context conte
12、xt=new Context();Engine enging=new Engine(rd,context);IReport iReport=enging.calc();/第三步,展现ExcelReport er=new ExcelReport();er.export(sheet1,iReport);er.saveTo(fileOutputStream);,一个简单的报表生成的代码:,10/15/2023,32,Java API,相关JAR包:,barcode.jarjdom.jar iTextAsian.jarjai_codec.jarjai_core.jaritext2_rq.jar log
13、4j_128.jarpoi2.jarreport4.jar,10/15/2023,33,集成润乾,管理会计系统(MAP)的报表需求:,10/15/2023,34,集成润乾,管理会计系统(MAP)的报表需求:,10/15/2023,35,集成润乾,大批量生成日/月终固定报表文件 用户针对已有业务主题的灵活查询的即席展示报表,管理会计系统(MAP)的报表需求:,特点:,主题加工的数据量大;报表要求的时效性强;分析维度多,条件复杂,格式要求比较灵活。,10/15/2023,36,集成润乾,采用Plantix平台的框架调度 结合自主开发的异步调度框架,框架调度:,集成润乾报表工具的原则:,改动时减少影
14、响,改动后简便易用,10/15/2023,37,集成润乾,一、解决项目大批量生成日/月终固定报表文件的需求 思路:利用润乾提供的Java API,自行开发数据引擎取代润乾报表数据抽取层,采用自主开发引擎调用润乾数据运行层和展示层API的方式实现。这样的好处是能够沿用MAP批量调度的功能,修改原有框架的报表生成节点的运行类,即可实现润乾报表工具的集成,改动非常小,对系统的影响也是最小的。结合批量生成固定报表的特点,应避免润乾报表模板内置数据集取数的方式,利用API中的自定义数据集的接口,由自主开发的引擎一次性的取出数据,并自己组织数据集,这样能够使数据在进入润乾报表前就进行了拆分,充分利用润乾报
15、表的灵活输出格式的优点。这样还可以利用批量框架的并发来实现高效的输出报表的目的。,10/15/2023,38,集成润乾,一、解决项目大批量生成日/月终固定报表文件的需求 解决方案:自定义数据集;,10/15/2023,39,集成润乾,一、解决项目大批量生成日/月终固定报表文件的需求 解决方案:自定义数据集;,DataSet ds=new DataSet();ColInfoBase colInfo=new ColInfoBase();colInfo.setColName(编号);ds.addColInfo(colInfo);ColInfoBase colInfo=new ColInfoBase(
16、);colInfo.setColName(名称);ds.addColInfo(colInfo);ColInfoBase colInfo=new ColInfoBase();colInfo.setColName(数据);ds.addColInfo(colInfo);for(int i=0;i4;i+)Row row=ds.addRow();row.setData(1,(String.valueOf(i)+ID);row.setData(2,(String.valueOf(i)+name);row.setData(3,(String.valueOf(i);,10/15/2023,40,集成润乾,一
17、、解决项目大批量生成日/月终固定报表文件的需求 解决方案:自定义数据集;,10/15/2023,41,集成润乾,一、解决项目大批量生成日/月终固定报表文件的需求 解决方案:报表配置信息;,10/15/2023,42,集成润乾,一、解决项目大批量生成日/月终固定报表文件的需求 解决方案:报表配置信息;,10/15/2023,43,集成润乾,一、解决项目大批量生成日/月终固定报表文件的需求 解决方案:报表配置信息;,10/15/2023,44,集成润乾,一、解决项目大批量生成日/月终固定报表文件的需求 解决方案:报表配置信息;,10/15/2023,45,集成润乾,一、解决项目大批量生成日/月终固
18、定报表文件的需求 解决方案:程序处理流程。,读取报表配置信息,拆分并发任务,并发查询数据,组织数据集,调用润乾报表引擎,计算报表,输出报表文件,更新报表主表,10/15/2023,46,集成润乾,ReportDefine rd=(ReportDefine)ReportUtils.read(reportFile);DataSetClazz dsc=new DataSetClazz(dataList,columns);DataSet ds=dsc.createDataSet(cxt,rd.getDataSetMetaData().getDataSetConfig(0),true);Context
19、context=new Context();context.setDataSet(reportDS,ds);Engine enging=new Engine(rd,context);IReport iReport=enging.calc();ExcelReport er=new ExcelReport();er.export(sheet1,iReport);er.saveTo(fileOutputStream);,一、解决项目大批量生成日/月终固定报表文件的需求 解决方案:程序片段:,10/15/2023,47,集成润乾,一、解决项目大批量生成日/月终固定报表文件的需求,10/15/2023,
20、48,集成润乾,二、解决用户针对已有业务主题的灵活查询的即席展示需求 思路:即席查询采用异步框架调度的方式,结合报表表样,设计raq模板,利用Java API把用户在页面上查询的条件传递给润乾的报表上下文参数,再调用润乾的报表引擎来生成报表,实现报表的查询和下载。与批量生成的固定报表不同,即席查询的报表一般格式更灵活,条件组合也比较多,因此不适合提前生成所有条件组合的报表。采用异步调度框架来生成报表,也可以大幅度的减少系统的压力。,10/15/2023,49,集成润乾,二、解决用户针对已有业务主题的灵活查询的即席展示需求 解决方案:复杂SQL数据集;,10/15/2023,50,集成润乾,二、
21、解决用户针对已有业务主题的灵活查询的即席展示需求 解决方案:复杂SQL数据集;,10/15/2023,51,集成润乾,二、解决用户针对已有业务主题的灵活查询的即席展示需求 解决方案:程序处理流程。,读取报表配置信息,读取报表模板文件,解析并组装查询条件,调用API传参数,调用润乾报表引擎,计算报表,输出报表文件,更新报表主表,10/15/2023,52,集成润乾,二、解决用户针对已有业务主题的灵活查询的即席展示需求,10/15/2023,53,集成润乾,引用润乾报表工具之后:,润乾报表引擎,模板文件,配置信息,固定报表引擎,异步报表引擎,组织数据、报表计算,10/15/2023,54,集成润乾
22、,目录结构:,JAR包,模板文件,程序代码,10/15/2023,55,集成润乾,三、解决需要在前端快速展示的特殊需求 思路:润乾报表工具针对JSP/HTML,提供了taglib嵌入的方式,将报表生成集成到WEB项目中。本着技术推动业务,完善系统功能的原则,我们提出了这个需求。解决方案:嵌入taglib;在JSP页面中引入润乾提供的标签库:,10/15/2023,56,集成润乾,目录结构:,10/15/2023,57,目 录 结 构,一、认识润乾二、原有实现三、集成润乾四、存在缺陷,10/15/2023,58,存在缺陷,性能问题:单就润乾报表的渲染性能来看,单元格的数量越多,分组计算越多,报表
23、生成得越慢。通过实际使用中体会,对raq模板的优化可以提高运行的效率。具体的优化方法目前还没有能够得出权威的结论,需要在以后的工作中进行有针对性的测试。和原有的生成方式比较,整体报表运行时间相差不大。但是由于需求变更等原因,没有机会对两种方式进行针对性的比较。上述两个遗留问题是未来工作的重心。,10/15/2023,59,存在缺陷,功能问题:taglib嵌入方式的使用欠妥当,如果报表模板的Sql语句较复杂,会造成服务器内存被大量占用的情况,影响整个系统的稳定性;润乾报表对Excel2007的支持存在问题,测试中发现当数据行数大于5000时,报表无法生成;分Sheet页导出到Excel时,每个Sheet页最多只有1万行数据,在实际应用中会造成Sheet页过多。,10/15/2023,60,目 录 结 构,一、认识润乾二、原有实现三、集成润乾四、存在缺陷,10/15/2023,61,介绍完毕!欢迎各位指正!,Q&A,10/15/2023,62,联系方式:,赵海鹏/应用开发一部/软件开发中心/总行机关/ABC,