页面树结构
转至元数据结尾
转至元数据起始

提示:本文档的示例代码仅适用于本文档中的示例报表/场景。若实际报表/场景与示例代码无法完全适配(如使用功能不一致,或多个宏代码冲突等),需根据实际需求开发代码。

示例说明

在即席查询中切换一个参数,不同的参数值打开不同的报表。如下图:

切换【报表】参数,值为1的时候显示报表1,值为2的时候显示报表2, 值为3的时候显示报表3:

设置方法

  1. 在公共设置中,创建【报表】参数。
     
     
  2. 创建一个“报表”过滤器,如下图:
      
  3. 在“分析展现”节点下分别创建即席查询报表1、报表2、报表3。
  4. 切换到 公共设置 > 宏资源包 节点下,新建一个宏资源包,类型选择即席查询,适用范围选择报表1、报表2和报表3。
     
  5. 双击此宏资源包进入报表宏界面。
  6. 在报表宏界面新建客户端模块,在弹出的新建模块对话框中选择对象为simpleReport;事件为onParamValueChanged;并把下面宏代码复制到代码区域。

宏类型

类型

对象

事件

ClientSide

simpleReport

onParamValueChanged

宏代码

function main(simpleReport, simpleReportContext, param) {
    var destQuery = null;
    if (param.name == "报表") {
        if (param.value == 1) destQuery = simpleReportContext.openQuery('I8a8af0a601727cdb7cdb407601727eb4382810c8');
        else if (param.value == 2) destQuery = simpleReportContext.openQuery('I8a8af0a601727cdb7cdb407601727eb67f131181');
        else destQuery = simpleReportContext.openQuery('I8a8af0a601727cdb7cdb407601727eb894e811ce');
        dispValue = realValue = param.value;
        //dispValue = realValue;
        if (realValue && dispValue) destQuery.fillParamValue('报表', realValue, dispValue);
        destQuery.refreshData();
        //--action end
    }
}

关键对象总结

  • 目标报表填充参数对象:destQuery.fillParamValue('报表', realValue, dispValue);
  • 打开即席查询:simpleReportContext.openQuery("I8a8af0a601727cdb7cdb407601727eb894e811ce");

资源下载

资源:migrate.xml