【背景】
数据展示的同时,用户往往有即时的动态的查询需求。即时查询功能的实现,更能发挥互动BI系统相比静态报表的整合能力和效率化。本篇就来一起研究SmartBI中即时查询功能的实现和相关的参数联动等内容。
【基本参数设置】
要实现即时动态查询,就需要有参数作为查询条件。当存在多个参数,且参数间存在联系时,通过这样的联系实现参数的联动能够进一步提高查询功能的可用性。(比如选择一个身份,城市参数就自动将可选项切换到相应省份内的城市。)设定参数,请参考如下步骤:
-
参数往往是针对独立报表设计的,所以使用报表数据集,而非系统数据集。
-
点击SmartBI菜单栏的参数管理:
-
点击面板上方一键映射按钮可以自动检测可能需要的参数:
-
设置具体的参数内容,由于可以直接使用SQL来表达下拉框的备选值,所以可以很灵活地根据表地实际内容动态反映下拉框的可选值。其中默认值通过限制limit1来确定,备选值则可以放开限制给出一个范围结果。如果选项是固定的,那就可以用静态列表。另外如果希望有显示文字与代表的真实值的区别,也可以分别设置真实值和显示值来实现。比如如果希望看到的省份海南省实际对应的值是1,就可以分别给出真实值和显示值的设置。如果不区分,则两者选同一个数据源即可。
【实现参数联动】
要实现参数联动,仍然是通过SQL的灵活性。不过还需要加上一个对其它参数的引用。
引用别的参数的形式是${参数名称}:
注意这里的写法,where条件的根部还加了一个{[]},表示没有此选项时默认全选。
【将参数置入报表中】
目前的参数是作为独立功能显示在左上方的,并没有融合进报表的相应位置。要将参数选择的内容置入报表,需要用到SmartBI插件菜单栏的参数排版功能。
把参数面板中上方单独显示的参数拖动到下方,该参数就会被隐藏到报表中。同时绑定单元格,报表中的相应单元格就会出现该参数。
【美化参数控件式样】
通过“插入空间”功能,可以给参数单元格应用更为美化的控件样式。把控件拖拽到想要应用的相应参数单元格,弹出的设置对话框中设置好参数信息即可。
最终样式效果举例如下:
【实现动态表头】
所谓动态表头,其实也是参数联动的一种,就是让表头根据当前参数值发生变化。需要用到插件菜单栏的引用参数功能。
在引用参数面板选择需要使用的参数,以及用到显示值还是真实值。
查看实际插入的内容,可以知道直接用这个SSR函数也可以:
接下来就可以将参数值与Excel的字符串拼接等函数结合,形成想要的标题。
【联动报表跳转】
两张报表间的联动跳转,本质上就是将报表A的互动单元格的值传给报表B的参数实现的。
- 在作为触发跳转的报表A上点击宏管理。
- 新建一个跳转规则向导:
- 设置跳转规则。注意最终触发跳转的单元格指定方式分为模板单元格和结果单元格。模板单元格是指展示前的状态,如果D4是一个带扩展的单元格,那么这个跳转触发会应用到整个扩展范围。结果单元格是指展示结果的静态单元格,指定D4就是指D4这一个单元格才能触发跳转。
- 下一步指定跳转目标,从数据资源列表中选择目标报表:
- 系统自动感应目标报表现有的参数,可以在设置界面进行传值设置。其中参数来源有三种类型。
单元格数据就是传递指定单元格的数据。如果这个单元格是个扩展单元格,那么参数值就代表触发传参时当前行或列中相应单元格的值。展开单元格数据,指的是以单元格扩展后静态的状态来选取某一个单元格的值作为参数值。这个参数值是死的,不会有扩展。
当前值最简单,就是点哪个单元格跳转就传哪个单元格的值。
可以指定跳转后的结果在新的标签页打开:
回到原来的报表,刷新后就能看到链接了。
【创建返回按钮】
原理一样,新建一个规则,通过静态单元格跳转回源表。
由于不需要传参,所以参数设置留空即可。
【表内联动】
一张报表内可能有多个表格或图标,当参数变动时,希望相应的表格和图标都可以同时发生变动。
-
先将之前带参数的表格示例另发布一份。
2. 新建一个模型查询,开始造地图数据。
-
由于目标是和省份联动,所以维度选择地理维的省份。度量选择销售额。
-
保存新创建数据集后利用此数据集的数据新建图形。
-
Tab选择ECharts作图,类型选择地图,指定为中国地图。右下角点击选择数据集。
-
点击右下角选择数据集按钮,选择新建的地图分析数据集作为图标数据源。
-
地图数据关联类型,我们不是通过坐标识别地域的,所以这里选“区域标识”。
-
省份是区域标识,销售额是指标,这是构建地图需要的内容。
-
接下来实现表格与地图的联动。在地图上右击,选择设置
-
打开“数据传值设置”面板,设置参数传值。
-
目前发现传值OK,但是每次都是页面刷新,影响体验。打开插件菜单的页面设置,将切换参数刷新设置设为局部刷新。