页面树结构

版本比较

标识

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


示例说明
 在某特定情况下,需要实现在报表跳转传参时,根据传递的值内容,把值传递到不同的参数中。如从“传参源标报表”报表通过“指标名称”字段带参跳转到“传参目标报表”报表,当“传参源标报表”报表中的“指标名称”的值为“1996”、“1997”、“1988”时,把值传到“传参目标报表”报表的“销售时间”参数中;否则就传到把值传到“传参目标报表”报表的“产品类别”参数中。

当在“传参源标报表”报表点“1996”行数据时跳转到传参目标报表”报表时,付值给“销售时间”参数中,如下图:

Image Removed

当在“传参源标报表”报表点“饮料”行数据时跳转到传参目标报表”报表时,付值给“产品类别”参数中,如下图:

...

注意
title温馨提示

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

示例说明

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

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

Image Added

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

Image Added



 设置方法

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

宏类型

类型

对象

事件

ClientSide

simpleReport

onRenderTableonLinkClick

宏代码

代码块
language
languagejs
themeEclipse
jsfirstline1
linenumberstrue
function main(simpleReport, simpleReportContextparamToString(v) {
    simpleReport.addColumnLinkByName("指标名称", me); //字段别名:指标名称 }return varv menuItem== =null {?    null alias: "传参",
    callback: function(simpleReport, simpleReportContextv.toString();
}
function main(spreadsheetReport, ruleName, params, page, pageContext) {
           if simpleReport.writeParamsToContext();
       (ruleName != "跳转") return;
    var targetResId = "I4028813957a114bf014b58970b73015aI40288190015b8ab58ab5d18b015b8f1ba4072292";
           var newReport = false;
           //找到对应的dashlet对象,并刷新它。
       ${Locatethecorresponding}dashlet${Object}${Comma}${Andrefreshit}${Period}
    var dashlet = page.findDashletByReportId(targetResId);
           //dashlet不存在
       dashlet${Doesnotexist}
    if (!dashlet)
        return;
           var portlet = dashlet.currentPortlet;
           if (!portlet) {
            return;}
        }         //设置或收集参数值。        if var(typeof realValueparamsInfo != simpleReport.getCurrentFieldRealValue("指标名称undefined");        && var dispValue = simpleReport.getCurrentFieldValue("指标名称");
        var pObj = {
            "value": realValue,
            "displayValue": dispValue
        };
        //创建静态参数
        var jObj = {
            "value": "",
            "displayValue": ""
        };
        //判断参数值,并根据不同情况给对应该的目标报表接收参数付值
        if (realValue == "1996" || realValue == "1997" || realValue == "1998") {
            if (pObj) {
                portlet.fillParamValue("产品类别", jObj.value, jObj.displayValue);
                portlet.fillParamValue("销售时间", pObj.value, pObj.displayValue);
            }
        } else {
            if (pObj) {
                portlet.fillParamValue("销售时间", jObj.value, jObj.displayValue);
                portlet.fillParamValue("产品类别", pObj.value, pObj.displayValue);
            }
        }
        /*//去掉【跳转规则】生成代码中的参数无付值代码
        if (pObj) {
            portlet.fillParamValueFromObj("产品类别", pObj);
        }
        var realValue = simpleReport.getCurrentFieldRealValue("指标名称");
        var dispValue = simpleReport.getCurrentFieldValue("指标名称");
        var pObj = {
            "value": realValue,
            "displayValue": dispValue
        };
        if (pObj) {
            portlet.fillParamValueFromObj("销售时间", pObj);
        }
	*/
        //设置参数值到报表对象
       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();
    }
}
var me = menuItem;
//创建参数信息${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;
}