1. 概述
1.1 版本
FineBI 版本 | 功能变动 |
---|---|
6.0 | - |
1.2 问题描述
在集成环境下,用户想要在打开门店相关仪表板 URL 的时候,直接添加相关参数,如http://xxxxxxxx?店性质=管理店过滤出店性质为「管理店」的数据。
1.3 实现思路
在 SQL数据集中添加参数;
在前端仪表板中直接增加参数条件,实现数据过滤功能。
若需要通过过滤组件传递参数,详情参见:过滤组件作为参数参与计算、跳转到仪表板(网页链接)。
2. 传递一个参数
2.1 添加 SQL 数据集
1)若同时拥有「直连数据」和「抽取数据」功能,则需要在数据列表中切换为「直连数据」,然后选择「公共数据」,点击进入分组下业务包,点击「添加数据集>添加 SQL 数据集」,如下图所示:
2)输入 SQL 语句:select * from new_dian where 店性质 in ('${店性质}')。${店性质}就是设置的参数变量,点击「刷新」,设置参数的默认值为「自有店」,设置参数类型为文本类型,点击「预览」,并确定保存数据集,如下图所示:
2.2 制作分组表
制作一个组件,图表类型选择「分组表」后,拖入字段,如下图所示:
2.3 传递参数
链接类型 | 传递一个值写法 | 传递多个值写法 |
---|---|---|
公共链接 | ?参数名称=参数值 | ?参数名称=参数值1','参数值2 |
预览链接 | ?参数名称=参数值 | ?参数名称=参数值1','参数值2 |
2.3.1 公共链接传递参数
若要实现在 URL 中的参数传递过滤,首先需要获取该仪表板的 URL 。进入仪表板节点,对新建的仪表板选择「创建公共链接」,开启公共链接并「复制链接」,如下图所示:
比如获取的链接为:http://localhost:37799/webroot/decision/link/njps
在最后添加「?店性质=管理店」:http://localhost:37799/webroot/decision/link/njps?店性质=管理店
在地址栏输入添加参数后的 URL,可以看到通过 URL 中的参数传递,实现「管理店」的过滤。
注:若浏览器不支持中文参数,即该参数传递过滤不生效,就需要把 json 类型的 url 参数值先进行编码 encodeURIComponent()。比如 edge 浏览器。
2.3.2 预览链接传递参数
仪表板预览的 URL 加上「?参数名称=参数值」,也可以进行参数的传递。
例如点击「预览仪表板」后可以获取预览的 URL ,如下图所示:
在预览的 URL 后加入「?店性质=管理店」,可以看到下方的分组表中过滤出了管理店的数据,实现参数的传递功能,如下图所示:
3. 传递多个参数
在有多个参数的时候,URL 同样可以通过添加参数来实现多个条件过滤的效果。
3.1 添加有多个参数的 SQL 数据集
添加 SQL 数据集,输入带包含多个参数的 SQL 语句:select * from NEW_DIAN where 店性质 in ('${店性质}' ) and 店风格 in ('${店风格}' )
点击「刷新」,设置默认值为「时尚馆」和「自有店」,并保存数据集,如下图所示:
3.2 创建仪表板
使用该数据表的字段创建组件,包含「店性质」、「店风格」、「记录数」字段,组件中显示字段值均为参数默认值。如下图所示:
3.3 传递参数
参考 2.3 节获取该仪表板的链接,在获取的 URL 之后加上多个参数及值:
链接类型 | 传参写法 |
---|---|
公共链接 | ?参数名称1=参数值1&参数名称2=参数值2 |
预览链接 | ?参数名称1=参数值1& 参数名称2=参数值2 |
例如获取的预览 URL 为:
http://localhost:37799/webroot/decision/v5/conf/subject/page/edit/e9246980d204493bbddb87fe3ea54486/report/ef74d93de3154bbeb059a00dba75689d
为其加上参数「?店性质=管理店&店风格=生活馆」,添加参数后的 URL 为:
http://localhost:37799/webroot/decision/v5/conf/subject/page/edit/e9246980d204493bbddb87fe3ea54486/report/ef74d93de3154bbeb059a00dba75689d?店性质=管理店&店风格=生活馆
添加参数后仪表板可以直接过滤出对应的参数值,如下图所示: