页面树结构

版本比较

标识

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

(本文档仅供参考)

问题说明:

有时候是年度、季度不同sheet,多加了数据标识参数,希望点击切换sheet时,参数也能自动随着sheet切换,该如何实现?

如下截图,希望点击sheet1时,参数变成西北的值:

Image Modified

解决方案:


代码块
linenumberstrue
//电子表格客户端宏   对象  spreadsheetReport   事件:  onRender

...


function main(spreadsheetReport, isAjaxRefreshCallback) {

...


//debugger
    var paramValueMap = {"Sheet1":"西北","Sheet2":"华北"};//sheet页名称对应的参数值

...


    var sheetName = spreadsheetReport.sheetNames[spreadsheetReport.currentSheetIndex];

...


    var paramAlias = "区域";//参数别名

...


    var params = spreadsheetReport.params;

...


    for(var i=0;i<params.length;i++){

...


         var param = params[i];

...


    if(param.alias == paramAlias){

...


         spreadsheetReport.setParamValue(param.id,paramValueMap[sheetName],paramValueMap[sheetName]);

...


     }
   }
}



注意:

(1)刷新两次的正常的,因为切换sheet的时候本身要刷新,刷新的时候才设置的参数,设置了参数又会刷新一次;
(2)如果涉及真实值、显示值,参考下方的示例,显示值和真实值分开处理:

代码块
linenumberstrue
//电子表格客户端宏   对象  spreadsheetReport   事件:  onRender

...


function main(spreadsheetReport, isAjaxRefreshCallback) {

...


//debugger

...


var paramValueMap = {"Sheet1":

...



{value:"西北",displayValue:"西北"}

...



,"Sheet2":{value:"华北",displayValue:"华北"}};//sheet页名称对应的参数值

...


var sheetName = spreadsheetReport.sheetNames[spreadsheetReport.currentSheetIndex];

...


var paramAlias = "区域";//参数别名

...


var params = spreadsheetReport.params;

...


for(var i=0;i<params.length;i++){

...


var param = params[i];

...


if(param.alias == paramAlias)

...



{ spreadsheetReport.setParamValue(param.id,paramValueMap[sheetName].value,paramValueMap[sheetName].displayValue); }

...



}


Image Modified