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

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

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

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


 设置方法

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

宏类型

类型

对象

事件

ClientSide

simpleReport

onRenderTable

宏代码

function main(simpleReport, simpleReportContext) {
    simpleReport.addColumnLinkByName("指标名称", me); //字段别名:指标名称
}
var menuItem = {
    alias: "传参",
    callback: function(simpleReport, simpleReportContext, page, pageContext) {
        simpleReport.writeParamsToContext();
        var targetResId = "I4028813957a114bf014b58970b73015a";
        var newReport = false;
        //找到对应的dashlet对象,并刷新它。
        var dashlet = page.findDashletByReportId(targetResId);
        //dashlet不存在
        if (!dashlet) return;
        var portlet = dashlet.currentPortlet;
        if (!portlet) {
            return;
        }
        //设置或收集参数值。
        var realValue = simpleReport.getCurrentFieldRealValue("指标名称");
        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);
        }
	*/
        //设置参数值到报表对象
        portlet.commitParamValue();
        portlet.refreshData();
    }
}
var me = menuItem;
//创建参数信息
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;
}