1. 概述
1.1 版本
FineBI 版本 | 功能变动 |
---|---|
5.1 | - |
5.1.5 | 取消「实时数据」按钮,FineBI 提供「实时数据」和「抽取数据」两种计算模式的 BI 工程,避免实时数据和抽取数据混用带来的问题。 |
5.1.6 | 当 URL 传参和过滤组件 SQL 参数同时存在时,用户刷新仪表板时 URL 参数优先生效,比如跳转,或者浏览器直接刷新,直接复制链接打开等 后续在跳转的仪表板界面操作改变参数后,过滤组件参数生效 |
1.2 问题描述
在集成环境下,用户需要想要在打开门店相关仪表板 URL 的时候,直接添加相关参数,如http://xxxxxxxx&店性质=管理店(5.1.11之前的版本);http://xxxxxxxx?店性质=管理店(5.1.11 以及之后的版本)过滤出店性质为「管理店」的数据。
1.3 实现思路
在 SQL数据集 中添加参数
在前端仪表板中直接增加参数条件,实现数据过滤功能。
若需要通过过滤组件传递参数,详情参见:过滤组件作为参数参与计算、跳转到仪表板(网页链接)。
2. 传递一个参数
2.1 添加 SQL 数据集
若同时拥有「实时数据」和「抽取数据」功能,则需要在数据列表中切换为「实时数据」,然后点击进入分组下业务包,如下图所示:
在业务包中新建带参数的 SQL 数据集,如下图所示:
注:只有 数据处理用户 可以创建 SQL 数据集。
输入 SQL 语句:select * from new_dian where 店性质 in ('${店性质}')。${店性质}就是设置的参数变量,点击「刷新」,设置参数的默认值为「自有店」,设置参数类型为文本类型,点击「预览」,并确定保存数据集,如下图所示:
2.2 创建仪表板
新建一张仪表板,选择创建的带参数的 SQL 数据表「门店」,拖入「店性质」和「记录数」字段,选择「分组表」,如下图所示:
2.3 传递参数
链接类型 | 传递一个值写法 | 传递多个值写法 |
---|---|---|
5.1.11 版本之前的公共链接 | &参数名称=参数值 | &参数名称=参数值1','参数值2 |
5.1.11 版本之后的公共链接 | ?参数名称=参数值 | ?参数名称=参数值1','参数值2 |
预览链接 | ?参数名称=参数值 | ?参数名称=参数值1','参数值2 |
2.3.1 公共链接传递参数
若要实现在 URL 中的参数传递过滤,首先需要获取该仪表板的 URL 。进入仪表板节点,对新建的仪表板选择「创建公共链接」,开启公共链接并「复制链接」,如下图所示:
在获取的URL后添加「&参数名称=参数值」
5.1.11 版本之前,比如获取的链接为:http://localhost:37799/webroot/decision/v5/design/report/share/085cfd6b620c441eae930b9ad709e717?link=eyJhbGciOiJIUzI1NiJ9.eyJyZXBvcnRJZCI6IjA4NWNmZDZiNjIwYzQ0MWVhZTkzMGI5YWQ3MDllNzE3IiwidXNlcklkIjoiYjVmMGMyZWUtNjQwZi00MDM5LWE0ZDQtOTE4YjU1MzU0ODk4IiwianRpIjoiand0In0.19qCbrS1Mlpr9unY30Sk02p4Y1PbS1fv2xIAu3VfMBk
在最后添加「&店性质=管理店」:
http://localhost:37799/webroot/decision/v5/design/report/share/085cfd6b620c441eae930b9ad709e717?link=eyJhbGciOiJIUzI1NiJ9.eyJyZXBvcnRJZCI6IjA4NWNmZDZiNjIwYzQ0MWVhZTkzMGI5YWQ3MDllNzE3IiwidXNlcklkIjoiYjVmMGMyZWUtNjQwZi00MDM5LWE0ZDQtOTE4YjU1MzU0ODk4IiwianRpIjoiand0In0.19qCbrS1Mlpr9unY30Sk02p4Y1PbS1fv2xIAu3VfMBk&店性质=管理店
在地址栏输入添加参数后的 URL,可以看到通过 URL 中的参数传递,实现「管理店」的过滤,如下图所示:
注:若浏览器不支持中文参数,即该参数传递过滤不生效,就需要把 json 类型的 url 参数值先进行编码 encodeURIComponent()。比如 edge 浏览器。
5.1.11 版本之后,比如获取的链接为:http://localhost:37799/webroot/decision/link/3Oth
在最后添加「?店性质=管理店」:http://localhost:37799/webroot/decision/link/3Oth?店性质=管理店
在地址栏输入添加参数后的 URL,可以看到通过 URL 中的参数传递,实现「管理店」的过滤。
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 之后加上多个参数及值:
链接类型 | 传参写法 |
---|---|
5.1.11 版本之前的公共链接 | &参数名称1=参数值1&参数名称2=参数值2 |
5.1.11 版本之后的公共链接 | ?参数名称1=参数值1&参数名称2=参数值2 |
预览链接 | ?参数名称1=参数值1& 参数名称2=参数值2 |
例如获取的预览 URL 为:
http://localhost:37799/webroot/decision/v5/design/report/085cfd6b620c441eae930b9ad709e717/view
为其加上参数「?店性质=管理店&店风格=生活馆」,添加参数后的 URL 为:
http://localhost:37799/webroot/decision/v5/design/report/085cfd6b620c441eae930b9ad709e717/view?店性质=管理店&店风格=生活馆
添加参数后仪表板可以直接过滤出对应的参数值,如下图所示: