示例说明
在仪表盘中,实现页面A跨页跳转到页面B,在在页面B的公共参数后面增加一个返回按钮,实现页面A跨页跳转到页面B可以返回。
如下图,页面A可以跨页跳转到页面B(通过跳转规则实现):

如下图,页面B公共参数后面有返回按钮,点击返回到页面A:

设置方法
- 在资源定制中,创建页面A和页面B, 要求使用跳转规则向导实现页面A跨页跳转到页面B,并把页面B的参数设置为公共参数。
- 选中页面B,右键选择 编辑宏 进入报表宏界面。
- 在报表宏界面新建客户端模块。在弹出的新建模块对话框中选择对象为page;事件为onRenderPage;并把下面宏代码复制到代码区域;

宏类型
类型 | 对象 | 事件 |
ClientSide | page | onRenderPage |
宏代码 (请点击Expand source 查看具体宏代码)
function main(page, pageContext) {
var paramTableRows = page.paramPanel.layoutTable.rows;
var row1 = paramTableRows[paramTableRows.length - 1];
var cell = row1.insertCell( - 1);
var btn = document.createElement("input");
btn.value = "返回";
btn.type = "button";
btn.className = "button-buttonbar button-buttonbar-noimage";
cell.appendChild(btn);
page.elemParamPanel.style.display = "";
page.addListener(btn, "click", doBack, [page, pageContext]);
}
function doBack() {
var page = this[0];
var pageContext = this[1];
var targetResId = "I000000003ea113db013f60575c603a75";
//跨页跳转需要先获取参数值。
var paramsInfo = new Array();
//设置或收集参数值。
//debugger;
//var pObj = simpleReportContext.get("company"); //通过参数名称获取参数对像
//var pObj = page.getParamValueByName("company"); //通过参数名称获取参数对像
//if (pObj) {
// var paramInfo = createParamInfo("company", pObj.value, pObj.displayValue); //填冲参数
//paramsInfo.push(paramInfo);
//}
pageContext.openPageById(targetResId, paramsInfo);
}
//创建参数信息
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;
}
关键对象总结
- 新建button:document.createElement("input")