润乾集算报表用脚本实现混合数据源报表

润乾集算报表支持在同一报表内使用不同类型的数据源,可以是RDB、TXT文本、Excel、JSON、HTTP、Hadoop、mongodb等。集算报表中使用混合数据源不依赖第三方程序(如JAVA),使用内置的脚本(数据集)即可完成,下面通过例子来说明使用过程。

业务系统中将订单信息存储到JSON格式的文件中,报表查询时需要读取JSON文件与数据库表(维表)进行联合查询。这里以查询某发货时间段内所有订单的客户信息为例。

orders.json部分内容如下:

以下为报表设计过程。

        连接数据源

在报表设计器中连接数据源。

        设置报表参数

新建报表,并设置报表参数(发货起止日期)。

        设置数据集

在数据集设置窗口选择“脚本数据集”,编写脚本同时读取文件和数据库表完成关联查询。

A1:读取订单信息JSON格式文件;

A2:根据发货日期范围过滤数据;

A3:查询数据库客户表信息;

A4:根据客户ID关联文件和数据表,完成混合计算;

A5:根据关联结果新建结果集,并通过A6返回给报表。

        编辑报表表达式

根据脚本数据集返回的结果,编写如下报表表达式,完成报表制作。

报表展现结果如下:

时间: 2024-07-30 11:13:11

润乾集算报表用脚本实现混合数据源报表的相关文章

润乾集算报表用脚本实现动态SQL传递

大多数情况下报表的数据源SQL都是固定的,但有时也需要动态变动其中某些部分实现动态拼出,比如在报表应用中允许用户通过选择表和字段查询自己关心的报表数据,报表开发时则希望对同类报表(明细或汇总)使用同一模板.这时就需要在报表中接收相应参数拼接出动态SQL进行查询后制作动态报表. 与一般报表工具需要在第三方程序(如JAVA)中实现不同,在润乾集算报表中提供了内置的脚本(数据集),可以快速完成这类报表,下面举例说明. 某类报表中,用户在指定表和列时,有一些列是必选列,即使用户没有选择,在查询后仍然显示

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

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

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

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

用润乾集算报表实现实时报表(T+0)的方案

在报表项目中,客户越来越关注源数据的实时性,希望看到最新发生的数据在报表中体现出来.但是,传统的报表工具+数据仓库+ETL方式很难做到这一点,往往是只能看到昨天.上周甚至是上个月的情况,也就是T+1.T+7.T+30统称T+n报表.很难实现T+0报表,也就是能体现实时信息的报表. 分析其原因在于:1.如果报表的历史数据和最新数据都从客户的生产系统读取,虽然可以实现T+0报表,但是会对生产数据库造成压力,影响客户的业务.2.如果采用数据仓库的方式,那么ETL从生产库中取出数据,需要较长的"窗口时间

润乾集算报表优化应用结构之混合数据源

在报表项目中,报表源数据常常会来自于多种异构数据源.例如:关系型数据库(oracle.db2.mysql),nosql数据库(mongodb),http数据源,hadoop(hive.hdfs)甚至是excel或者文本文件.通常的做法是采用ETL工具,将这些数据源都同步到数据仓库中.但是这样做的问题在于:1.配置复杂,难度较大:2.成本较高:3.数据无法实时访问,需要有较长时间的延迟:4.数据仓库的建设和管理都比较复杂:5.如果数据量很大效率会很低,而且要不断的ETL去各个应用系统同步数据:6.

润乾集算报表交互分析之多层自动钻取

交互分析过程中报表多层钻取的情况很常见,如从一级汇总数据钻取到二级汇总数据,从二级汇总数据钻取到三级汇总数据-.,钻取时可以从表格到表格,也可以从统计图到统计图.开发这类报表时如果每个层级都需要制作不同的报表,在层数较多时,无论对于开发还是维护都是很麻烦的事,如果能制作一个通用的模板完成所有层级报表的展现则事半功倍. 润乾集算报表通过内置的集算引擎可以快速完成多层钻取通用报表模板的开发.下面通过一个示例说明使用过程. 多层钻取往往在一个维度上逐级细化,如这里我们以订单表中5个地区层级为例(可以扩

润乾集算报表优化应用结构之可挂接算法

在报表项目中,有些报表的数据计算方法会经常改变.例如:某企业员工的实际工资是通过绩效得分计算出的,算法经常变动,需要在不改动其他代码的情况下用新算法替换旧算法.如果用Java来实现计算的话,虽然可以实现动态可挂接计算模块,但是存在缺乏基础类库.占用多余内存等问题. 采用润乾集算报表可以很好的解决这些问题,实现低耦合.热部署的动态挂接算法.集算报表挂接算法系统结合和其他报表工具+java的系统结构对比图如下: 上图可以看出,java程序必须要编译.打包才能更新.集算脚本是解释执行的,脚本文件同时也

润乾集算报表提升性能之过程优化

报表出现性能问题需要对数据源计算进行优化时,执行路径难以确定从而被干预是阻碍报表优化的难题之一.由于数据库执行路径对开发人员不透明,报表优化需要指定执行路径时,程序员会很难甚至无法干预.而一般报表工具不具备强计算能力,大部分计算仍然要依靠数据库进行,这就导致很多报表优化效果不理想. 不同于一般报表工具,润乾集算报表内置了专门用于数据计算的集算引擎,开发人员可以通过编写集算脚本完成报表数据源准备.与数据库执行SQL路径不可控相比,集算脚本的执行过程是可控的,开发人员可根据实际情况编写或更改计算执行

润乾集算报表多样性数据源之动态SQL传递

大多数情况下报表的数据源SQL都是固定的,但有时也需要动态变动其中某些部分实现动态拼出,比如在报表应用中允许用户通过选择表和字段查询自己关心的报表数据,报表开发时则希望对同类报表(明细或汇总)使用同一模板.这时就需要在报表中接收相应参数拼接出动态SQL进行查询后制作动态报表. 润乾集算报表提供了两种处理动态SQL的方法,使用宏和集算脚本,可以快速完成这类报表,下面举例说明. 使用宏 集算报表提供了宏机制,通过在动态宏中拼接SQL后交由数据集查询结果,最后在报表中使用动态表达式获得字段名和字段值完