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