自定义出入参数据
根据接口的入参和返回值,我们可以配置入参数据集跟出参数据集。
出参数据集
根据接口的返回值来配置出参数据集,如下图所示是一个接口的返回值,该数据是一个对象数组,我们可以在出参tab页中配置一些报表中需要用到的字段。
也可以使用导入出参按钮,上传包含出参信息的json文件,自动进行导入。


{
"base1": 1,
"arr1": [
{
"base1": "222",
"base2": "333"
},
{
"base1": "222",
"base2": "333"
},
{
"base1": "222",
"base2": "333"
}
]
}
入参数据集
根据接口的入参来配置入参数据集,入参可以是数组,jsonData或者基础类型。
也可以使用导入入参按钮,上传包含入参信息的json文件,自动进行导入。


[
"1234567"
]
出参过滤器
我们可以通过出参过滤器将接口返回的数据进行过滤,过滤掉一些在报表配置时不需要用到的多余字段。
如下图所示,若接口返回的数据中有items跟total字段,但是total字段在报表配置中不需要用到,我们可以过滤一层,在出参过滤器中配置“return $$result.items”脚本($$result表示接口获返回值),该脚本表示将接口返回的数据中的items字段值作为报表数据。


这样做的好处是,我们可以根据将接口返回的数据结构简洁化,这样我们在配置出参数据集的时候就可以更加方便,如下方所展示的,配置了出参过滤器跟没有配置出参过滤器的场景下,配置出参数据集的方式也不同:
1.没有设置出参过滤,我们需要先设置一个items数组,在items数组中再增加子项,分别是name跟age,配置如下图所示:

2.设置了出参过滤,就不需要再设置items数组了,我们可以直接设置name跟age字段,如下图所示:

低代码出入参数据集
选择具体方法后,方法的入参和出参会自动回显。需要动态传值的入参可按“值类型 → 变量注入”绑定全局作用域变量。


点击确定后,该方法的出参会展示在右下角的区域,我们可以通过拖动字段到单元格来设置报表。

数据库查询出参数据集
完成数据库查询配置后,点击“确认”按钮,系统会自动生成数据集及其出参字段(字段名称与SQL语句查询结果集中的名称一致)。
定义了两个数据库查询,生成了两个数据集,如图所示:

注:点击数据集右侧“...”按钮,可以修改或删除数据集
值类型
基础数据类型(basic)
出参入参的数据类型可以是简单的基础类型,分别包括:「string」、「number」、「boolean」
复合类型(complex)
出参入参的数据类型也可以是复合类型,比如「object」、「array」。选择复合类型后,点击添加子项按钮,还可以给该复合类型数据添加子项,并且支持嵌套,且嵌套层级不受限。

变量注入(inject)
数据集中变量注入指的是全局作用域的变量可以绑定给数据集中的入参字段。由于同报表模版可能运行在不同场景下,报表预览可以是在设计器中打开,该场景下可以手动输入入参,但是也可以在业务代码中直接用这个报表预览组件(OwlReportBuilder),这样就无法手动输入入参。如果报表预览组件使用的模版中配置了数据集,并且配置的接口需要传递入参,则我们需要通过给入参绑定全局作用域变量,从而实现入参的传递,如何给数据集入参绑定全局作用域变量步骤如下:
如果该接口需要的入参是一个数组类型,并且需要传递一个id,但是我们在直接使用预览组件的时候,如何传递这个入参需要的id呢?这个使用就可以通过给入参1绑定一个全局作用域变量来实现。可以点击入参后面的文件夹图标,会弹出作用域配置弹窗,可以勾选其中一个变量,相当于给该入参绑定了一个全局作用域变量,如下图所示:

给入参项1绑定好全局作用域变量id之后,在使用OwlReportBuilder组件时,我们可以通过组件上的injectReportScope属性或者url传递id的值。injectReportScope对象或者url上的id属性值最终会覆盖全局作用域中的id属性,而全局作用域中的id属性又跟入参项1绑定,如果id如下方传递的这个值一样,则最终接口传递的入参数据是:[YOUR_RESOURCE_ID]。
- 通过injectReportScope配置入参值。
<BeeReportBuilder
:injectReportScope="{id: 'YOUR_RESOURCE_ID'}"
reportCode="sf" reportVersion="1.0.1">
</BeeReportBuilder>
- 通过url配置入参值。

