页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

说明
在实际的业务中,发布到仪表盘中的地图分析和灵活分析会有如下的互动效果要求:

1. 地图分析和灵活分析拥有公共参数,通过切换公共参数的取值将影响到地图分析和灵活分析所展现的数据。    

如图:切换"销售年份"值从"1996"到"1997",地图分析和灵活分析分别展示"中国"范围内相应年份的销售总额
  Image Removed

 Image Removed
2.在不切换"销售年份"取值的前提下,单击地图分析中的各个区域块,如"吉林省""四川省"等,会将点击的区域的值传递给灵活分析,在灵活分析中属于该区域的值显示出来,如下图所示:

...

 Image Removed
3.当查询完地图中所有区域的数据后,我们将"销售年份"切换到"1998", 灵活分析则显示的是整个中国区域的1998年的销售情况(如下图所示),我们还可以在地图分析中单击任意数据区域浏览分析各区域1998年的销售情况。

 Image Removed
解决方案

  • 上述的展现效果,关键在于切换"销售年份"参数时,灵活分析中的"区域"参数需取固定值:中国。
  • 在为区域参数(如本示例中的"选择区域"参数)设置默认值时,增加"where"条件为:区域参数=中国 and "年份"参数="年份"参数。   这样使"区域"参数与"销售年份"参数关联起来,当"销售年份"改变时则触发"区域"参数改变取值。 具体步骤:

下面以产品自带的示例数据库(Northwind,MySQL类型)为数据源基础,说明具体步骤实现以上效果:
(1) 新建计算字段"年",其表达式为: Image Removed

(2) 新建参数"销售年份",其备选值和默认值的设置如下:
Image Removed

说明:"销售年份"参数表达式中的"年"字段为步骤(1)中创建的计算字段。(3) 新建参数"选择区域",其备选值和默认值的设置如下:
Image Removed

 注:这里默认值设置表示当"销售年份"参数改变时,"选择区域"参数的默认取值为"中国"。

(4) 新建可视化查询"全国销售查询",如下图所示:

 Image Removed
(5) 新建可视化查询"各省销售查询",如下图所示:

 Image Removed
(6) 根据可视化查询"全国销售查询"创建地图分析"全国销售查询_地图分析"。

(7) 根据可视化查询"各省销售查询"创建灵活分析"各省销售查询_灵活分析"。

(8) 设置互动规则,实现从地图分析"全国销售查询_地图分析"跳转到灵活分析"各省销售查询_灵活分析",且将地图分析中的"上级区域编号"的值传到灵活分析的"选择区域"参数中。

...

示例说明

在一个电子表格报表内,有多个Sheet页,有时候用户希望点击某个Sheet中的对应单元格,可以跳转到另一个Sheet 页。对于这样的需求通过电子表格的跳转规则向导生成宏代码,然后再手动调整即可。效果如下图。

Image Added

 

设置方法

  1. 在电子表格报表上新建“跳转规则向导”。
  2. 在向导的“第二步:目标资源参数设置”界面上,选择“目标资源”为原报表,同时将“在新窗口打开”选择去掉。
  3. 然后修改生成的“客户端模块”宏代码,将最后的几行代码替换掉。

 

Image Added

Image Added

 

宏代码

将向导自动生成的宏代码:

代码块
languagejs
linenumberstrue
    var command = spreadsheetReport.command;
    command.close();
    //@smartbi.openOtherPage:"I402881e4015a73137313d61e015a733a27a807b1"
    command.execute('OPENWITHNOREFRESH', 'I402881e4015a73137313d61e015a733a27a807b1');
    var report = command.spreadsheetReport;
    if (paramsInfo.length > 0) report.setParamsInfo(paramsInfo);
    report.doRefresh();

 

替换为如下代码:

代码块
languagejs
linenumberstrue
    var report = spreadsheetReport;
    if (paramsInfo.length > 0) report.setParamsInfo(paramsInfo);
    report.doAjaxRefresh();
    setTimeout(function() {
        report.changeSheet(1);
    }, 200);

 

关键对象总结