页面树结构

版本比较

标识

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

...

应用场景

 
       在项目中跳转传参,一般都是传编码、ID等值,但是显示给客户的所见的又要是有意义的、最终用户能懂得的名称,所以在创建参数的时候一般会有真实值、与显示值。真实值就是传参中的编码、ID等值;显示值就是最终用户能懂得的名称。


示例说明

...

代码块
linenumberstrue
function main(spreadsheetReport) {
    if (!spreadsheetReport) return spreadsheetReport;
    var sheet = spreadsheetReport.getSheetByName("Sheet1");
    var positions = "C4,D4".split(",");
    for (var i = 0; i < positions.length; i++) {
        var position = positions[i].trim();
        var expandedPositions = sheet.getExpandedPositions(position);
        for (var j = 0; j < expandedPositions.length; j++) {
            var cell = sheet.getCell(expandedPositions[j]);
            if (true) {
                addLink(spreadsheetReport, sheet, cell);
            }
        }
    }
}
function addLink(spreadsheetReport, sheet, cell) {
    sheet.addRuleLink(cell.cellPosition, "传参", [
    getCellValue(cell.getRelativeCells('A4')), getCellValue(cell.getRelativeCells('B4'))]); //修改的代码部份,只需再添加获取参数显示值的语句getCellValue(cell.getRelativeCells('B4'))
}
function getCellValue(cell) {
    if (!cell) return null;
    if (typeof cell.length == 'number') {
        var ret = [];
        for (var i = 0; i < cell.length; i++) {
            ret.push(cell[i].value);
        }
        return ret;
    } else {
        return cell.value;
    }
}
function checkValue(v1, v2, op) {
    if (v1 && typeof v1.length == 'number') {
        for (var i = 0; i < v1.length; i++) {
            if (checkValue(v1[i], v2, op)) return true;
        }
        return false;
    }
    switch (op) {
    case 'EQUAL':
        return (v1 == v2) || (v2.match(/^\d+(\.\d+)?$/) && v1 == parseFloat(v2));
    case 'GREATER':
        return v1 > parseFloat(v2);
    case 'LESS':
        return v1 < parseFloat(v2);
    case 'INCLUDE':
        return v1.indexOf(v2) >= 0;
    case 'PREFIX':
        return v1.indexOf(v2) == 0;
    case 'SUFFIX':
        return v1.indexOf(v2) == (v1.length - v2.length);
    }
}

action宏代码

 

...

linenumberstrue

...

如下报表为跳转源报表

Image Added

下面为跳转目标报表,当中的“产品类别1”参数是有真实值和显示值之分的。真实值是“产品类别编码”、显示值是“产品类别名称”

Image Added

 

通过建立跳转规则,在“跳转源报表”上点击柱子跳转到“跳转目标”报表,发现传递过来的参数真实值和显示值都对应“产品类别名称”,无法刷新出数据。如下,点击柱子跳转后的结果

Image Added

 

我们可以通过修改跳转规则的自动生成的客户端宏代码,使得点击柱子时将真实值和显示值同时传递到参数中。

 


设置步骤

1.创建跳转源报表

注意:跳转源报表中必须同时查询出“产品类别编码”和“产品类别名称”两个字段,如下:

Image Added

 

并且在制作柱图时,需要同时把“产品类别名称”、“产品类别编号”和“指标”字段均选中。如下:

Image Added

 

将“类别名称”勾选为“分类(X)轴,”“销售量”勾选为“指标(Y)轴”。跳转源报表显示如下:

Image Added

 

2.制作跳转目标报表,如下:

Image Added

 

3.在“跳转源报表”上新建跳转规则,选择在echarts图形上设置跳转

Image Added

目标报表选择“跳转目标报表”

Image Added

 

参数传递选择将“产品名称”的真实值传递给参数“产品类别1”

Image Added

 

保存跳转规则,如下:

Image Added

4.双击打开该跳转规则自动生成的客户端宏模块"跳转_action"

Image Added

 

5.在如下红框位置,添加如下代码:

 var pObj_zsz=point.getCurrentPointValueObj("类别编号");  通过这个代码,把“类别编号”的数据也取出来

Image Added

 

6.将下面红框中的代码修改为 pObj_zsz.value

Image Added

 

修改后的代码如下:

Image Added

 

7.点击保存即可。