润乾集算报表的层次数据集理解

润乾集算报表提供了层次数据源支持,在集算器中完成表间关联后可以将带有主从结构的数据集(如关联后的维表、事实表)直接给报表使用,而不需要在报表中再次关联;同样集算报表接收到事先在集算器中完成带明细的分组数据集也可以直接使用,而不必再次分组。

什么是层次数据源?

层次数据源是指在集算报表中使用集算器数据集类型,接收集算器脚本返回的带有层次的结果集,作为报表的数据来源。

如上图,脚本返回的结果集A6包括销售姓名、按销售汇总的订单金额以及对应分组下的订单明细;订单明细指向了另外一个集合,该销售下包含订单ID、订购日期、订单金额等信息的订单表.。通过这种方式为报表提供带有关联关系和分组明细的结果集。

集算报表在接收该结果集后在报表中的数据集结构如下:

集算器各层次结果报表数据集结构

右侧报表数据集结构中:

“ds1”引用的是销售姓名和订单总额记录;

“ds1.订单明细”引用的是每个销售的订单明细记录,是ds1的第二层结果集;

“ds1.订单明细.客户”引用的每个客户对应的基本信息记录,是ds1的第三层结果集;

“ds1.订单明细.员工ID”与“ds1.订单明细.客户”类似,引用的是每个销售基本信息记录,也是ds1的第三层结果集

如何使用层次数据源?

以上述数据为例,需要完成一个某月按销售人员分组,统计每个销售人员的订单总额,并附有每订单详情和客户信息的报表。报表样式如下:

可以通过如下报表设计完成:

A2-B2:针对销售人员分组直接取“ds1”中的销售姓名,使用集算器已经完成的分组,不需要针对销售再次group;

C2-E2:从第二层结果集“ds1.订单明细”中取得每组订单详情(订购日期、订单金额、客户名称),这里不需要再对订单表和员工表进行关联

通过简单的列表和取值表达式完成分组报表。

再来看一个例子,根据订单和订单明细表,列出订单信息以及每个订单下订单明细数据。报表样式如下:

一般报表工具需要在报表中所有订单明细根据订单编号与订单表进行关联过滤,集算报表则可以通过层次数据集完成。

编写集算器脚本:

订单信息中,订单编号指向了多条订单明细记录,对应报表数据集为:

使用该层次数据集完成报表:

B1中使用第一层数据集ds1取得订单ID,D1、F1、B2等跟随B1直接从ds1中取值,取得所有订单信息;B6则根据第二层数据集ds1.订单编号取订单明细中的产品ID,和C6、D6等获得所有该订单的明细数据。设置所有单元格的左主格均为B1。

通过层次数据集避免了报表中还需关联子表带来的实现以及效率问题。

层次数据源的优势

集算报表的层次数据源价值在报表开发和性能两方面有所体现。

易于报表开发

区别于传统报表工具需要在报表中进行group、sum以及多数据源关联等,集算报表使用层次数据源通过简单的列表和取值表达式就可以完成,诸如本例的分组报表。

由于集算器脚本支持分步编写代码,使得很多复杂分组、关联的计算在集算器中完成会更轻松,而生成的层次数据源则可以很方便被报表使用。

提升报表性能

报表完成关联、分组等计算时,一般是采用排序和遍历的方案,而且往往要带着报表的很多展现属性(如边框、颜色等)一起运算,使得报表的计算效率不高;而集算器在关联运算是采用hash算法(报表端没法直接使用hash算法做关联),而且在计算时则不带有任何展现属性,且对集合运算的有效支持,还可以充分利用数据本身的有序性,使得计算效率要优于在报表端计算。这意味着,通过集算器返回层次数据源可以减少报表端的运算强度,从而显著提升报表性能。

润乾集算报表的层次数据集理解

时间: 2024-11-07 20:41:05

润乾集算报表的层次数据集理解的相关文章

润乾集算报表的脚本数据集

润乾集算报表提供了一种新的数据集类型--脚本数据集,同意用户在数据集中完毕数据的进一步计算和加工,为报表提供数据源支持. 以下详细来看一下脚本数据集. 什么是脚本数据集? 集算报表的一种数据集类型.能够在脚本数据集中编辑计算脚本(脚本遵循集算器语法)完毕数据计算和处理,将加工后的结果集为报表提供数据源支持,从而使报表工具获得数据源再计算的能力. 脚本数据集编辑器中即无法像集算器编辑器一样添加删除行列.也无法进行可视化调试,所以脚本数据集适用于计算脚本比較简单的情况. 怎样使用脚本数据集? 脚本数

润乾集算报表实现多数据集关联的示例

多数据源混合的场景在报表开发中非常常见,如:数据来源于多个数据库.数据库和文件混合的场景.传统报表工具在处理这种问题时往往采用两种方式:1将数据统一到一个数据库中,来避免跨库查询或数据库文件混合查询:2使用高级语言为报表自定义数据集,在程序中完成多数据源关联运算.上述做法除了对数据库产生影响.增加实现难度外,往往报表性能也不理想. 使用润乾集算报表对异构数据源的有效支持可以很方便完成多数据源关联报表,这里通过示例说明. 跨库数据源 企业员工每月应发工资跟员工的基本工资.考勤以及绩效有关,考勤信息

润乾集算报表多样性数据源之json

多样性数据源在报表开发中越来越常见,润乾集算报表对多样性数据源的有效支持使得这类报表开发变得非常简单,目前集算报表支持的数据源类型除传统的关系型数据库外,还支持:JSON.HTTP.TXT文本.Excel.Hadoop.mongodb等. JSON作为一种轻量级数据格式应用非常广泛,报表读取json数据源进行报表开发的需求也很常见,另外有些报表还会接收来自HTTP服务器的数据进行报表展现.这里通过例子分别来看一下集算报表使用json数据源和http数据源的过程. 一般JSON数据源 报表说明 学

润乾集算报表提升性能之层次数据集

多层次报表是很常见的报表形式,如分组报表和主子报表.其中的关联运算(组与明细,主表和子表),由于有层次而不能直接在数据库中完成,需要在报表端完成.但报表端一般只用采用排序和遍历的方法实现关联,性能较差.利用润乾集算报表的层次数据集则可以在数据源计算过程中就完成关联计算,并且有层次的结果集直接传送给报表呈现,在关联计算中充分利用集算器的高效算法,从而达到优化性能的目标. 下面通过一个主子报表的实例看一下使用过程与效果. 报表描述 使用订单表和订单明细表,查询每个订单详情以及该订单下的订单明细,报表

润乾集算报表优化应用结构之报表复杂数据源的管理

在报表项目中,常常有些复杂数据计算是为一个报表专用的,其它报表用不到.可以用SQL实现写进报表数据源中,但由于SQL无法分步计算,经常会写出非常复杂难懂的长语句,不利于调试和维护.如果用Java或者存储过程来实现,计算程序会和报表模板又会分开,不利于管理.使用润乾集算报表的脚本数据集来实现报表专用计算,既可以写出简单易懂的分步骤计算脚本,又可以将脚本存放在报表模板中利于管理.系统结构的对比如下图: 下面通过一个具体的报表例子来看一下集算报表脚本数据集的用法.<年度客户销售分析报表>可以选择年份

润乾集算报表层次数据集对性能的影响测试

1.测试目的 在相同的硬件和集算报表IDE上测试使用集算报表使用层次数据集与不使用层次数据集之间的性能差异,从而确定层次数据集对报表性能的影响. 2.环境描述 测试机型:DellInspiron 3420 CPU:Intel Corei5-3210M @2.50GHz *4 RAM:4G HDD:西数WDC(500G5400转/分) 操作系统:Win7(X64)SP1 JDK:1.6 数据库:hsqldb 集算报表版本:5.0 3.数据描述 表数据 4.用例描述 4.1.分组明细报表 使用销售记

润乾集算报表的集算器数据集部署(I)

润乾集算报表提供了集算器数据集,允许用户使用集算器脚本完成数据的进一步计算和加工,为报表提供数据源支持,从而简化报表开发,提升报表性能. 集算器脚本的编辑需要借助第三方集算编辑器(非报表工具)完成,而后嵌入到报表工具和报表应用中完成报表开发和部署. 下面来看一下集算器数据集的使用和以及报表部署过程. 1.开发环境使用 集算报表使用集算器数据集时,首先需要设置集算器授权信息和配置数据源连接(如果需要从数据库中取数). 1.1.设置授权信息 启动集算报表设计器,选择工具-选项,切换到"集算器选项&q

润乾集算报表使用json数据源的示例

JSON作为一种轻量级数据格式应用非常广泛,报表读取json数据源进行报表开发的需求也很常见.润乾集算报表可以很好支持json数据源,这里通过实例说明. 示例一 报表说明 学生成绩在应用中以json文件存在,现需要汇总学生成绩,并按总成绩排名,结果以报表展现.报表样式如下: JSON文件中包含班级.编号.姓名.学科.成绩等信息,格式如下: [ { "class": "Class one", "id": 1, "name": &

润乾集算报表使用远程HTTP数据源的示例

报表的数据来源多种多样,有时会接收来自HTTP服务器的数据进行报表展现,一般报表工具只能通过报表自定义数据源使用高级语言(如JAVA)进行处理,实现较为复杂.集算报表简单地通用集算器接收HTTP数据源完成报表展现.这里通过一个实例说明. 学生成绩信息存储在远程的JSON格式文件中,其所在HTTP服务器对外提供统一HTTP访问接口,现需要读取学生成绩信息开发报表,汇总学生成绩并按总成绩排名.报表样式如下: JSON文件中包含班级.编号.姓名.学科.成绩等信息,格式如下: [ { "class&qu