示例说明

在灵活分析(带参数)中,实现“初始打开报表时隐藏所有字段,当切换参数时显示特定的字段”。

           

         

         

设置方法

(1)    在展现定制中,创建一张灵活分析(带参数);

(2)    在宏管理中,对该报表编写两个宏代码:一个用于实现“初始打开报表时,隐藏所有字段”,一个用于实现“当切换参数时显示特定的字段”。 

宏实现说明

初始打开报表时,隐藏所有字段

 

 宏类型

类型

对象

事件

ClientSide

simpleReport

onRender

宏代码

function main(simpleReport,   simpleReportContext) {
      var grid = simpleReport.grid;
      hideAllFields(grid); // 先隐藏所有字段
}
// 隐藏所有字段
function hideAllFields(grid) {
      var headerRows = grid.getHeaderRows(); // 得到表头的行数
      var rowCount = grid.getRowCount(); // 得到行数
      var colCount = grid.getColCount(); // 得到表格列数
      for (var i = 0; i < colCount; i++) {
        grid.setColVisible(i, false);
      }
}

切换参数时显示特定的字段

宏类型

类型

对象

事件

ClientSide

simpleReport

onRenderTable

宏代码

function main(simpleReport, simpleReportContext) {
    //获取参数"销售区域"当前的值
    var param = simpleReport.getCurrentParamValue("销售区域");
    var grid = simpleReport.grid;
    hideAllFields(grid); // 先隐藏所有字段
    var showFields = [];
    if (param == "全部") {
        // "销售区域"值为"全部"时显示"销售区域"、"订单数"字段和"销售额"字段
        showFields.push("销售区域");
        showFields.push("订单数");
        showFields.push("销售额");
    } else if (param == "东北") {
        // "销售区域"值为"东北"时显示"销售区域"、"销售额"字段
        showFields.push("销售区域");
        showFields.push("销售额");
    } else if (param == "华北") {
        // "销售区域"值为"华北"时显示"销售区域"、"订单数"字段
        showFields.push("销售区域");
        showFields.push("订单数");
    }
    if (showFields.length > 0) {
        for (var i = 0; i < showFields.length; i++) {
            var alias = showFields[i];
            var index = grid.getFieldIndexByAlias(alias);
            grid.setColVisible(index, true);//显示相关字段,如果把第二个参数设置为false,则是隐藏字段。
        }
 
    }
}
// 隐藏所有字段
function hideAllFields(grid) {
    var headerRows = grid.getHeaderRows(); // 得到表头的行数
    var rowCount = grid.getRowCount(); // 得到行数
    var colCount = grid.getColCount(); // 得到表格列数
    for (var i = 0; i < colCount; i++) {
        grid.setColVisible(i, false);
    }
}

关键对象总结