1、描述编辑
在URL参数的传递使用中我们介绍了在实时数据直连数据库时,Spider引擎可以创建传递并使用参数过滤。那么如何在仪表板中实现如下图效果,即门店性质下拉框中不选择参数值时能够查询出数据表中的全部值呢?
2、操作步骤编辑
登录FineBI数据决策系统,在数据准备>业务包下添加SQL数据集,如下图:
输入带参数的SQL语句:select * from new_dian where 1=1 <parameter> and 店性质 in ('${店性质}' ) </parameter>,命名该业务包为门店表(参数)。
注:此处也可使用SQL:select * from new_dian where 1=1 ${if(len(店性质) == 0,"","and 店性质 in ('" + 店性质 + "')")}
注:其中where 1=1 表示条件永真,防止没有之后的参数条件时,where多出而导致出错;
点击确定保存该SQL数据集,再创建一个不添加参数的SQL数据集select * from new_dian,命名为门店表。如下图:
为上面添加的两张表均开启实时数据按钮,如下图:
新建一张仪表板,添加组件并拖拽刚刚创建的带参数的SQL数据集字段,即门店表(参数)字段到明细表中,如下图:
添加文本下拉过滤组件,因为我们想要在过滤组件中能够选择店性质的分类,因此将不带参数的门店表下的“店性质”字段拖入该过滤组件中,并为其绑定之前添加的参数,如下图:
点击确定保存,进入仪表板界面。
我们可以看到,文本过滤组件中不选择任何值,即参数为空时,该店性质字段显示为所有值,包括自有店、管理店及其他店的数据。
在点击门店性质过滤组件选择管理店时,下面的明细表通过参数带入sql执行实现了管理店的过滤效果。