1. 概述
1.1 预期效果
过滤组件联动是指后面过滤组件的可选值随着前面组件的选择变化而变化,例如第一个过滤组件选择「浙江省」,第二组件的选择范围变成浙江省内的城市,如下图所示:
1.2 实现思路
可以使用默认联动或参数联动实现:
默认联动:
FineBI 支持默认的过滤组件联动效果,即只需要将数据跟过滤组件进行绑定,FineBI 就会自动读取被绑定数据之间的关联关系,实现组件联动。
数据之间的关联关系必须是以下两种关系中的一种:
联动组件中的数据来源于一张表。
两张表建立关联关系,联动组件前面的组件可以是主键表的任意字段,后面的组件内数据则可以是外键表中的任意字段。
参数联动:
参数联动适用于带参数的 SQL 数据集。
参数联动仅支持 直连数据 使用。
2. 默认联动
示例数据:内置 Demo 下的「地区数据分析」。
当两个字段之间存在关系时, FineBI 可以实现自动联动。
2.1 新建分组表
将「省份」和「城市」拖入维度,「合同金额」拖入指标栏,如下图所示:
2.2 添加省份过滤组件
1)添加仪表板,将制作好的组件拖入仪表板中,再拖入一个文本下拉过滤组件,如下图所示:
2)设置过滤组件的数据来源,拖入「省份」字段,并修改过滤组件标题为「省份」,如下图所示:
2.3 添加城市过滤组件
同「省份」过滤组件的设置方法一致,添加文本下拉过滤组件,将「城市」拖入过滤组件字段栏中,并将该过滤组件命名为「城市」。如下图所示:
2.4 查看效果
选择省份为「浙江」,可以看到城市的选择范围缩小到浙江城市,如下图所示:
2.5 取消默认联动
如果不希望两个过滤组件之间默认联动,可以使用 自定义控制范围,取消组件间的默认联动。
选中「省份」过滤组件,点击「编辑」进入过滤组件编辑界面,设置只控制表格组件,如下图所示:
效果查看:
2.6 说明
FineBI 支持默认的过滤组件联动效果,即只需要将数据跟过滤组件进行绑定,FineBI 就会自动读取被绑定数据之间的关联关系,实现组件联动,数据之间的关联关系必须是以下两种关系中的一种:
联动组件中的数据来源于一张表。
两张表建立关联关系,联动组件前面的组件可以是主键表的任意字段,后面的组件内数据则可以是外键表中的任意字段。
3. 参数联动
参数联动仅支持 直连数据 使用。
示例数据来自 BI Demo 的 Demo_CUSTOMER。
3.1 添加表
1)新建一个带「省份」参数的 SQL 数据集,命名为「客户带参数」。
新建 SQL 数据集,输入SQL 语句 select * from CUSTOMER where 1=1 <parameter> and 省份 in ('${省份}' ) </parameter>,设置默认值为「江苏省」,并点击「确定」保存,如下图所示:
2)新建一个不带参数的 SQL 数据集,并命名为「客户」。
输入 SQL 语句 select * from CUSTOMER,如下图所示:
3.2 创建分组表
使用 SQL 数据集「客户带参数」新建分组表,将「省份」和「城市」拖入维度栏,「指标」拖入指标栏,如下图所示:
3.3 添加省份过滤组件
1)添加仪表板,将制作的分组表拖入仪表板中,并添加文本过滤组件,如下图所示:
2)设置过滤组件数据来源,将「客户」表中的「省份」拖入字段栏,并绑定「省份」参数(该参数为之前在「客户带参数」表中设置的参数),如下图所示:
注:为该文本过滤组件添加不带参数的省份字段,是为了在过滤组件选择字段时能选到所有的省份值。
3)命名该过滤组件的名字为省份,如下图所示:
3.4 添加城市过滤组件
同「省份」过滤组件的设置方法一致,选择「客户带参数」表,设置过滤字段为「城市」,不需要绑定参数,并将该过滤组件命名为城市。如下图所示:
3.5 效果查看
选择省份为「浙江省」,可以看到城市的选择范围缩小到浙江城市,如下图所示: