最新历史版本 :[直连]文本过滤组件传参 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

FineBI 版本功能变动
6.0-
6.0.16过滤组件绑定参数界面优化

1.2 问题描述

由于原始表数据量过大,有时可能会导致内存或磁盘占满的情况,因此通常需要使用 SQL 中的 where 语句,加过滤条件来控制数据量。而 where 语句后面加上固定的数值会使得取数不灵活,此时可以使用参数动态控制 BI 取数的数据量,例如取不同门店的数据。

文本过滤组件的传参分为两种:

第一种为当文本过滤组件为空时,数据表中也无数据,在文本下拉框中可以输入自己要的字段,例如输入「11011」并回车,数据表自动过滤出「店号」为「11011」的数据,如下图所示:

27.gif

第二种为文本可下拉选择字段筛选,不需要手动输入,并且支持勾选全选,效果如下图所示:

31.gif

1.3 实现思路

示例一:

1)添加 SQL 数据集,并在 SQL 语句中配置「店号」参数。

2)仪表板中使用「文本下拉过滤组件」绑定参数。

示例二:

1)添加 SQL 数据集,并在 SQL 语句中配置「店号」参数。

2)添加 SQL 数据集,不配置参数。

3)仪表板中使用「文本下拉过滤组件」绑定参数,并将不配置参数的数据集下的「店号」字段作为过滤组件下拉选项。

注:目前仅有文本过滤组件和日期类过滤组件提供传参功能。  

2. 示例一:手动输入过滤编辑

2.1 创建 SQL 数据集

1)若同时拥有「直连数据」和「抽取数据」功能,则需要在数据列表中切换为「直连数据」,然后选择「公共数据」,点击进入分组下业务包,点击「添加数据集>添加 SQL 数据集」,如下图所示:

注:只有 数据处理用户 可以创建 SQL 数据集。

21.png

2)首先需要在 SQL 数据集中创建「店号」参数。设置表名为「门店信息」,输入带参数的 SQL 语句 :select * from NEW_DIAN where 店号 in ('${店号参数}'),即设置「店号」为参数并命名为「店号参数」,点击参数设置「刷新」,并选择默认值为 11011,点击「确定」保存,如下图所示:

22.png

注1:默认值可任意选择,只影响预览数据。

注2:SQL 参数写法可参考:SQL 数据集参数写法示例

若「参数类型」为「文本」,希望预览时默认值展示多个,可输入例如:11011','11012,则预览界面显示对应两条数据,如下图所示:

24.png

注:多个默认值格式为:参数值1','参数值2 。

2.2 制作分组表

制作一个组件,图表类型选择「分组表」后,拖入字段,如下图所示:

2023-12-20_19-44-57.png

2.3 过滤组件仅绑定参数

1)添加仪表板,将制作的分组表拖进仪表板中。并新增文本下拉过滤组件,如下图所示:

2023-12-20_19-46-43.png

2)勾选「绑定参数」,在设置中绑定SQL参数「店号参数」,如下图所示:

注:普通用户要有一个有参数的数据集的权限之后,才会出现「绑定参数」的按钮。由于所有 SQL 数据集获取的参数都在绑定参数下拉框中,因此参数最好不要用一样的参数名。  

2023-12-20_19-47-45.png

2.4 效果查看

效果详情请参见本文 1.2 节。

3. 示例二:下拉框选择过滤编辑

过滤组件只绑定参数只能通过手输进行过滤,若是需要有下拉框则需要绑定字段,来提供下拉框内容。本节讲述如何在实现绑定参数的同时,实现下拉框选择字段效果。

实现要求:被绑定字段所在的表不能有已绑定的参数「店号参数」。

3.1 数据准备

3.1.1 创建有参数的 SQL 数据集

1)数据处理用户 选择「公共数据」,进入业务包,点击「添加数据集>添加 SQL 数据集」,如下图所示:

21.png

2)首先需要在 SQL 数据集中创建「店号」参数。

设置表名为「门店信息」,输入带参数的 SQL 语句: select * from NEW_DIAN where 店号 in ('${店号参数}'),即设置「店号」为参数并命名为「店号参数」,点击参数设置「刷新」,并选择默认值为 11011,点击「确定」保存,如下图所示:

22.png

注1:默认值可任意选择,只影响预览数据。

注2:SQL 参数写法可参考:SQL 数据集参数写法示例

若「参数类型」为「文本」,希望预览时默认值展示多个,可输入例如:11011','11012,则预览界面显示对应两条数据,如下图所示:

24.png

注:多个默认值格式为:参数值1','参数值2 。

3.1.2 创建无参数的 SQL 数据集

此步骤主要是为了获取完整的「店号」数据,实现下拉框能选择所有的店号。

使用同样的数据表,输入 :select * from NEW_DIAN,创建无参数的 SQL 数据集,如下图所示:

27.png

3.1.3 添加数据

创建分析主题并添加两张数据表。如下图所示:

2023-12-20_19-51-44.png


3.2 制作分组表

制作一个组件,图表类型选择「分组表」后,拖入字段,如下图所示:

2023-12-20_19-44-57.png

3.3 过滤组件绑定参数和字段

1)添加仪表板,将制作的分组表拖进仪表板中。并新增文本下拉过滤组件,如下图所示:

25.png

2)勾选「绑定参数」,在设置中绑定SQL参数「店号参数」,如下图所示:

2023-12-20_19-47-45.png

3)为了下拉框展示所有店号数据,因此需要使用「门店表(无参数)」的店号字段,将其拖入过滤组件字段栏下 ,如下图所示:

29.png

注 1:普通用户要有一个有参数的数据集的权限之后,才会出现「绑定参数」的按钮。

注 2:此处不用带参数的门店表的店号字段拖入文本过滤组件中,是因为此时「门店」表取过来数据库的数据,是「店号」为 SQL 数据集中设置的默认值 11011 的店号信息。所以文本框下拉可选的值也只有11011,不包括所有店号的字段值。  

3.4 通过过滤店名过滤店号

此时,用户可能会觉得,使用下拉框过滤选择的店号为 ID 字段,不容易记忆,而且已有数据为一个「店号」对应一个「店名」,希望能直接选择店名进行过滤。

可点击下拉三角,出现实际值设置项。拖入相关字段进行设置,如下图所示:

2023-12-20_19-57-59.png

此时,在进行过滤时,表面上是过滤店名,实际是对店号进行过滤。

3.5 效果查看

详情请参加本文 1.2 节。

4. 注意事项编辑

过滤组件有两种用法:上文介绍的参数绑定的用法和 普通过滤组件 的用法。

在「示例二」的默认情况下过滤组件的功能为参数,即绑定字段的过滤组件控制范围只能过滤带参数的表「门店」制作的数据表组件,如下图所示:

32.png

若想要过滤组件在满足示例二效果同时,还能过滤绑定字段所在的不带参数的「门店维度」表制作的组件。可去「管理系统>系统管理>常规」中的「BI参数」设置框,开启「SQL参数控件过滤生效」按钮,如下图所示:

33.png

34.png