# 更多的数据集类型

来自于数据库中的数据,一个sql 可以返回多个数据集(某些数据库引擎不支持),例如以下语句:

SELECT 产品.产品ID, 产品.产品名称
FROM 产品
where 类别ID='$leibie$';

SELECT 类别.类别ID, 类别.类别名称
FROM 类别;

当前数据集使用的是第一个数据集中的数据。如果我们想使用第二个数据集中的数据,这时候就需要我们新建下面这个类型的数据集

# 来自其他数据集

这里所有有多个数据集返回的数据集名称都会显示,挑选出我们打算引出的数据集,选中正确的序号,就可以像正常数据集一样使用了。 demo

# 来自于excel文件

一些计划数等数据,通常不会长久保存到数据库中,这时候我们可以直接将excel文件中的数据引入到当前报表中。引入后,我们可以在上面的sql输入框中输入sql(不输入sql 的话,就是原始excel中的数据),对取过来的数据,做进一步的加工或筛选。语法为sqlite的语法。

# 来自API调用

我们可以使用内置函数直接调用API服务(或类似API服务的web服务)。通常我们使用的是函数web_request 如果需要token等与登录有关的信息,请使用该函数模拟登录。返回的json 数据将会被转换为内部可用的数据集。数据正确取过来后,与sql数据集一样正常使用,没有区别。

web_request({
'url':"API网址"  //用你的地址替换这里
,'method':'post'  //可用方法: get ,post
,'data':{'branch_no':'410000','aaa':param.aaa}  //使用form提交,不需要的话,用null替换冒号后的内容,param.aaa 是你定义的参数。这样不能用 $aaa$
,'json':null      //使用json提交,json 和data 不能同时有值,至少有一个是null
,'headers':null   
});// 语句必须以逗号结束

# 来自组件报表

我们的报表很多后,有些指标会在多个报表中出现,这时候如果我们每次制作报表都将这些指标的加工重做一遍,将会造成:

  • 多个报表间同一指标的数据可能不一致
  • 维护复杂,工作量大 这时候我们可以使用该模式,将已有指标的报表直接引入到当前报表中使用

# 内存数据(sqlite)

在将所有数据都取到报表引擎后,我们有时候还要再做一些进一步的加工改造,这时候我们可以使用这个类型的数据集,将所有其他数据集当成表,来做进一步的查询。如:已有数据集: ds1、ds2。 我们新建的数据集ds3可以这样写sql:

selct * from ds1 join ds2 on ds1.xxx=ds2.xxx

注意

不要在这个数据集中引用自己,否则循环引用,会报错。

这种类似的数据集,总是在其他所有数据集取数完毕后计算。不用关注计算顺序。

# 来自html的table

很少用到,未实现