页面树结构

版本比较

标识

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


注意
title温馨提示

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

示例说明
 在某特定情况下,需要实现在报表跳转时,需要在指定大小的弹出窗口中打开目标页面。效果图:

...

类型

对象

事件

ClientSide

simpleReport

onRenderTable

宏代码

代码块
languagejs
themeEclipse
languagejs
firstline1
linenumberstrue
//@smartbi.utility_macro:system.utils.JMClientUtils 
var jmUtils = use("system.utils.JMClientUtils");
var domutils = jsloader.resolve("freequery.lang.domutils");
function main(chartView, point, mouseEvent) {
    if (!chartView || !point) return;
    var aotuCmd = false;
    chartView.addMenuItem("新弹出窗口", callback, aotuCmd);
}
//点击跳转规则菜单触发的回调函数
function callback(chartView, point) {
    var simpleReport = chartView.getContext();
    var simpleReportContext = simpleReport.getContext();
    var pageContext = page.getContext();
    simpleReport.writeParamsToContext();
    var targetResId = "I2c91918a1cc607a1014d1d8f10ce0304";
    var newReport = false;
    //定义参数对象列表。
    var paramsInfo = new Array();
    //设置或收集参数值。
    var pObj = simpleReportContext.get("产品目录参数");
    if (pObj) {
        var paramInfo = createParamInfo("产品目标编号", pObj.value, pObj.displayValue);
        paramsInfo.push(paramInfo);
    }
    var pObj = point.getCurrentPointValueObj("产品名称");
    if (pObj) {
        var paramInfo = createParamInfo("产品名称参数", pObj.value, pObj.displayValue);
        paramsInfo.push(paramInfo);
    }
    /*  去掉原来的打开目录衣面的方式
 //新窗口打开资源
    //@smartbi.openOtherPage:"I2c91918a1cc607a1014d1d8f10ce0304" 
    if (domutils.isIOS() || domutils.isAndroid()) showInternalFrame(targetResId, paramsInfo);
    else page.openResourceInNewWindow(targetResId, paramsInfo);
*/
    //修改为弹出窗口打开目标页面
    var openUrls = "openresource.jsp?resid=I2c91918a1cc607a1014d1d8f10ce0304" + "&p" + "aramsInfo=" + lang.toJSONString(paramsInfo);
	 if (!domutils.isIE()){
        //for chrome
        window.open(openUrls, "newwindow", "height=400, width=600, toolbar =no, menubar=no, scrollbars=no, resizable=no, location=no, status=no");
    }else{
        window.showModalDialog(openUrls, null, "dialogWidth=600px;dialogHeight=400px;resizable=yes");
    }
    //window.showModalDialog(openUrls, null, "dialogWidth=600px;dialogHeight=400px;resizable=yes");
}
//创建参数信息
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;
}

注意事项:相关报表中的参数名称必须是英文,参数值也必须是英文或数字。