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

温馨提示

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

示例说明

注:此方法适用于  v7 版本
 在某特定情况下,需要实现在报表跳转传参时,根据传递的值内容,把值传递到不同的参数中。如从“传参源标报表”报表通过“指标名称”字段带参跳转到“传参目标报表”报表,当“传参源标报表”报表中的“指标名称”的值为“2013-01-01 00:00:00”、“2013-01-03 00:00:00”、时,把值传到“传参目标报表”报表的“销售时间”参数中;否则就传到把值传到“传参目标报表”报表的“地图区域-无初始值”参数中。

当在“传参源标报表”报表点“华北”行数据时跳转到传参目标报表”报表时,付值给“地图区域-无初始值”参数中,如下图:

当在“传参源标报表”报表点“2013-01-01 00:00:00”行数据时跳转到传参目标报表”报表时,付值给“订单时间”参数中,如下图:



 设置方法

  1. 在【资源定制】创建案例类似的页面。 
  2. 选中页面,右键选择 编辑宏 进入报表宏界面,右击【编辑宏】->创建【跳转规则向导】。
  3. 在双点打开已创建的跳转规则的action,在该界面中进行修改【跳转规则向导】生成宏代码,如下图:
     

宏类型

类型

对象

事件

ClientSide

simpleReport

onLinkClick

宏代码

function paramToString(v) {
    return v == null ? null : v.toString();
}
function main(spreadsheetReport, ruleName, params, page, pageContext) {
    if (ruleName != "跳转") return;
    var targetResId = "I40288190015b8ab58ab5d18b015b8f1ba4072292";
    var newReport = false;
    //${Locatethecorresponding}dashlet${Object}${Comma}${Andrefreshit}${Period}
    var dashlet = page.findDashletByReportId(targetResId);
    //dashlet${Doesnotexist}
    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(pObj.value != "2013-01-01 00:00:00" && pObj.value != "2013-01-03 00:00:00"){
         if (typeof portlet != "undefined" && portlet) portlet.fillParamValueFromObj("地图区域-无初始值",pObj);
    }
    if (typeof paramsInfo != "undefined" && paramsInfo) paramsInfo.push({name:"订单时间", value:paramToString(params[1]), displayValue:paramToString(params[1])});
    var pObj = {value:paramToString(params[1]),displayValue:paramToString(params[1])};
    //判断是否点击了时间之外的数据
    if(pObj.value == "2013-01-01 00:00:00" || pObj.value == "2013-01-03 00:00:00"){
         if (typeof portlet != "undefined" && portlet) portlet.fillParamValueFromObj("订单时间",pObj);
    }
    //${Setsthevalueoftheparametertoareportobject}
    portlet.commitParamValue();
    portlet.refreshData();
}
//${Createaparameterinformation}
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;
}