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

示例说明

          在通过电子表格报表跳转分析时,需求要对所点击的分析项进行高亮显示,以便更加清楚的知道当分所分析的内容。如例:从“汇总报表”点击“产品类别”下钻到“明细报表”进行分析。当点击“产品类别”中的某一个值时某一个值就高亮。效果图下:

         

设置方法

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

2、在浏览器的资源定制节点下,选中电子表格,右键选择 编辑宏 进入报表宏界面,创建一个跳转规则。

3、在报表宏界面中修改已创建跳转规则的action,在action中添加下图红框中的代码其它都是创建跳转规则时自动生成的代码不需要修改,如下图:

      

 

宏类型

类型

对象

事件

ClientSide

spreadsheetReport

onLinkClick

 

宏代码

function paramToString(v) {
    return v == null ? null: v.toString();
}
function main(spreadsheetReport, ruleName, params, page, pageContext) {
    if (ruleName != "跳转") return;
    /***添加的代码,开始***/
    //恢复原来的颜色
    if (spreadsheetReport.highlightCurrentCellLinkPosition) {
        var td = spreadsheetReport.getCell(spreadsheetReport.highlightCurrentCellLinkPosition.row, spreadsheetReport.highlightCurrentCellLinkPosition.column);
        var list = td.getElementsByTagName("SPAN");
        for (var i = 0; i < list.length; i++) {
            list[i].style.color = list[i]._color;
        }
    }
    //设置颜色
    var td = spreadsheetReport.getCell(spreadsheetReport.currentCellLinkPosition.row, spreadsheetReport.currentCellLinkPosition.column);
    var list = td.getElementsByTagName("SPAN");
    for (var i = 0; i < list.length; i++) {
        list[i]._color = list[i].style.color;
        list[i].style.color = "red"; //指定颜色,可以使用#AABBCC 这样的字符串声明RGB
    }
    //保留当前位置
    spreadsheetReport.highlightCurrentCellLinkPosition = spreadsheetReport.currentCellLinkPosition;
    /***添加的代码,结束***/
    var targetResId = "I4028818a29b1f667014eaf0d629e18ce";
    var newReport = false;
    //找到对应的dashlet对象,并刷新它。
    var dashlet = page.findDashletByReportId(targetResId);
    //dashlet不存在
    if (!dashlet) return;
    var portlet = dashlet.currentPortlet;
    if (!portlet) {
        return;
    }
    if (typeof paramsInfo != "undefined" && paramsInfo) paramsInfo.push({
        name: "产品类别",
        value: paramToString(params[0]),
        displayValue: paramToString(params[0])
    });
    var pObj = {
        value: paramToString(params[0]),
        displayValue: paramToString(params[0])
    };
    if (typeof portlet != "undefined" && portlet) portlet.fillParamValueFromObj("产品类别", pObj);
    //设置参数值到报表对象
    portlet.commitParamValue();
    portlet.refreshData();
}
//创建参数信息
function createParamInfo(name, value, disValue, mergeType) {
    var paramInfo = new Object();
    paramInfo.name = name;
    paramInfo.value = value;
    paramInfo.displayValue = disValue;
    if (mergeType) paramInfo.groupType = mergeType;
    return paramInfo;
}


关键对象总结

  • 通过spreadsheetReport.elem_btnRefresh.parentNode.style.display = "none" 方法,将工具栏上指定按钮隐藏。


  • 无标签