找回密码
 立即注册

QQ登录

只需一步,快速开始

Felix.Li Wyn认证

超级版主

85

主题

2667

帖子

5030

积分

超级版主

Rank: 8Rank: 8

积分
5030

Wyn高级认证Wyn认证

Felix.Li Wyn认证
超级版主   /  发表于:2024-9-12 16:53  /   查看:57  /  回复:0
本帖最后由 Felix.Li 于 2024-9-12 16:59 编辑

今天来带一个非常实用的教程,我们如何将仪表板选择的参数,传递给sql。或者传递给json的查询参数。并且如何选择的是 name,但是传递的是ID。如果你刚好有这个问题,那么就好好看一下:


场景:
1.我们使用直连数据集写了一个自定义sql的,自定义sql有一个过滤的参数,参数来自于用户输入,我们希望最终用户在页面上选择的结果,可以传递到sql里面。
2.我们创建了一个json网络类型的数据源,网络类型数据源有一个参数用来过滤接口查询的结果,同样希望页面上选择的结果,可以传递到数据源的参数。

实现:
那么首先我们做到这一切,先把前提做出来,我们以数据集自定义sql为例:
image.png496903075.png
有一个sql,并且参数来自于用户输入的参数。
其次我们需要单独做一个供用户选择的筛选器的数据集或者数据模型,注意,供用户选择的筛选器来自于数据模型模型,一定要单独创建, 因为做json数据源过滤的,不能和被参数控制的数据源,创建在一个模型里。

好了,现在我们就在仪表板层面做过滤吧:
1.选添加一个供用户选择的筛选器,并绑定对应的userId字段:
image.png132209166.png
2.仪表板需要创建一个参数,这个参数用作传递。例如我们做一个userId的参数.。并且绑定上一步选择的筛选器:
image.png507114867.png
3.添加被过滤的数据集组件,并在数据绑定区域,设置绑定参数,设置为我们添加的userId参数即可:
image.png416417235.png
此时我们就完成了,用户通过选择筛选器的字段将值给仪表板参数,仪表板参数再将值给数据集过滤。流程如下:
仪表板用户选择 -> 仪表板参数 -> 数据集参数 -> 数据集sql过滤。

那么同样的,使用json的也是一个原理,json只是把过滤坐在了数据源,但是整个操作其实是一样的。

没结束,到这里就有很多人发问,我不可能让用户选择选ID,用户选择肯定选的是名称,然后传ID啊,是,所以我们就要进行接下来的操作了。如果让用户选key,但是传Value呢。

好的,我们在刚才的基础上,在额外加一些操作就可以了。
首先需要借助一个格式化插件:
设置参数.viz (3.6 KB, 下载次数: 2)

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部