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

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

示例说明

在报表展示时,灵活分析中可能包含多个列。现需要根据参数“展示内容”来控制不同列展示。

当参数“展示内容”选择“产品”时,显示“产品类别”、“产品名称”、“销售量”和“销售额”几列:

        

当参数“展示内容”选择“区域”时,显示“发货区域”、“发货城市”、“销售量”和“销售额”几列:

       


版本及客户端要求

1.版本:Smartbi V7.0及以上

2.客户端:PC

3.浏览器:IE11、谷歌浏览器、火狐浏览器


设置方法

1.创建灵活分析报表
在资源定制中创建好灵活分析报表,报表中包含“展示内容”参数


2.设置初始隐藏字段
该灵活分析报表中“展示内容”参数默认值为“产品”。则报表打开时,默认只显示“产品类别”、“产品名称”、“销售量”和“销售额”字段。
点击工具栏中的“字段”按钮,在下拉菜单中将“发货区域”、“发货城市”字段隐藏


3.选中该灵活分析报表,右键选择 编辑宏,进入报表宏界面

4.在报表宏界面选择新建客户端模块。在弹出的新建模块对话框中选择对象为 simpleReport;事件为 onParamValueChanged;并把下面宏代码复制到代码区域。根据实际情况进行修改

宏类型

类型

对象

事件

ClientSide

simpleReport

onParamValueChanged


宏代码

function main(simpleReport, simpleReportContext, param) {
    if (param.name == "展示内容") { //判断是否是"展示内容参数"
        //获取 产品类别 字段
        var categoryname = 'BizViewOutField.I4028818a015c808d808db7fe015c817340eb0502.I4028818a015c808d808db7fe015c81732db504fa'; //获取报表中输出的字段
    
        //获取产品名称 字段
        var productname = 'BizViewOutField.I4028818a015c808d808db7fe015c817340eb0502.I4028818a015c808d808db7fe015c81732db504fb';
        
        //获取发货区域字段
        var shipregion = 'BizViewOutField.I4028818a015c808d808db7fe015c817340eb0502.I4028818a015c808d808db7fe015c81732db604fc';
        
        //获取发货城市字段
        var shipcity = 'BizViewOutField.I4028818a015c808d808db7fe015c817340eb0502.I4028818a015c808d808db7fe015c81732db604fd';
    
        if (param.displayValue == "产品") { //判断为"产品产品"显示哪些字段,true为显示,false为不显示
            simpleReport.clientConfig.gridProp.fieldProps[categoryname].visible = true;
            simpleReport.clientConfig.gridProp.fieldProps[productname].visible = true;
            simpleReport.clientConfig.gridProp.fieldProps[shipregion].visible = false;
            simpleReport.clientConfig.gridProp.fieldProps[shipcity].visible = false;
        } else {
            simpleReport.clientConfig.gridProp.fieldProps[categoryname].visible = false;
            simpleReport.clientConfig.gridProp.fieldProps[productname].visible = false;
            simpleReport.clientConfig.gridProp.fieldProps[shipregion].visible = true;
            simpleReport.clientConfig.gridProp.fieldProps[shipcity].visible = true;
        }
        simpleReport.updateClientConfig(); //更表报表配置
    }
    simpleReport.refreshData(); //刷新报表数据
}


注:

在上述代码中,字段的输出ID,如"BizViewOutField.I4028818a015c808d808db7fe015c817340eb0502.I4028818a015c808d808db7fe015c81732db504fa",是在数据集中获取的

  • 无标签