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

该宏示例在 V10.5上 验证通过

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

示例说明

此宏不适用于将参数绑定到单元格的情况。

当“区域”参数值为  “华北”时,隐藏“目录”参数,否则显示 “目录参数”


设置方法

1、首先在电子表格设计器(Microsoft Office Excel)中,创建电子表格报表。

2、在浏览器的“分析展现”节点下,选中电子表格,右键选择 编辑宏 进入报表宏界面

3、在报表宏界面新建客户端模块。在弹出的新建模块对话框中,选择对象为spreadSheetReport、事件为onRender、并把下面宏代码复制到代码编辑区域,需要根据实际情况修改代码。该宏代码实现切换参数时动态隐藏另一个参数

宏类型

类型

对象

事件

ClientSide

spreadsheetReport

onRender

宏代码

function main(spreadsheetReport, isAjaxRefreshCallback) {
    var value = spreadsheetReport.getParameterValue("区域"); //获取"区域"参数的值
    if (value == '华北') { //若值等于"华北",则设置"产品类型"参数隐藏
        spreadsheetReport.paramPanelObj.getParamTagByParamName("产品类别2").style.display = 'none';
    } else spreadsheetReport.paramPanelObj.getParamTagByParamName("产品类别2").style.display = '';
}


4、在报表宏界面新建客户端模块。在弹出的新建模块对话框中,选择对象为spreadSheetReport、事件为onRenderReport、并把下面宏代码复制到代码编辑区域,需要根据实际情况修改代码。该宏代码实现报表初始化时动态隐藏参数

宏类型

类型

对象

事件

ClientSide

spreadsheetReport

onRenderReport

宏代码

function main(spreadsheetReport) {
    var value = spreadsheetReport.getParameterValue("区域"); //获取"区域"参数的值
    if (value == '华北') { //若值等于"华北",则设置"产品类型"参数隐藏
        spreadsheetReport.paramPanelObj.getParamTagByParamName("产品类别2").style.display = 'none';
    } else spreadsheetReport.paramPanelObj.getParamTagByParamName("产品类别2").style.display = '';
}


5、另:如果参数是使用的参数控件,可以通过spreadsheetReport.shapesMap["combobox1"].parentNode.style.display = "none"方法隐藏参数控件
(用了参数控件的话,事件就只能是onRender,即用第3步里的宏)       

其中"combobox1"从excel里面获取

关键对象总结

  • 通过spreadsheetReport.paramPanelObj.getParamTagByParamName("目录").style.display = 'none';设置参数隐藏或显示


示例资源:根据参数值动态隐藏另一参数.xml