温馨提示
本文档的示例代码仅适用于本文档中的示例报表/场景。若实际报表/场景与示例代码无法完全适配(如使用功能不一致,或多个宏代码冲突等),需根据实际需求开发代码。
示例说明
在浏览中,多个页面使用相同的公共参数,客户希望在一个页面切换公共参数后,切换到另外的页面可以使用之前页面的公共参数值。
设置方法
- 在资源定制中,创建带参数的页面,并把页面参数设置为公共参数。
- 在 公共设置 > 宏资源包 下,创建宏资源包,选择页面,把要同步参数的页面都选中。
- 在报表宏界面新建客户端模块。在弹出的新建模块对话框中选择对象为page;事件为onParamValueChanged;并把下面宏代码复制到代码区域;
宏类型
类型 | 对象 | 事件 |
ClientSide | page | onParamValueChanged |
宏代码 (请点击Expand source 查看具体宏代码)
//设置参数值 function main(page, pageContext, param) { if (param.name == "xssj") { //根据参数名称判断是否是需要处理的参数 if (window.parent && window.parent.window) { window.parent.window.pageParamValue = param.value; page.notsetValue = true; } } }
4、在报表宏界面新建客户端模块。在弹出的新建模块对话框中选择对象为page;事件为onRenderPage;并把下面宏代码复制到代码区域;
宏类型
类型 | 对象 | 事件 |
ClientSide | page | onRenderPage |
宏代码 (请点击Expand source 查看具体宏代码)
//同步参数值 function main(page, pageContext) { if (!page.notsetValue && window.parent && window.parent.window && window.parent.window.pageParamValue) { var value = window.parent.window.pageParamValue; //page.fillParamValue("参数名称", "参数真实值", "参数显示值"); page.fillParamValue("销售时间", value, value); //给参数填值 page.commitParamValue(); //提交参数 } else if (!page.notsetValue && window.parent && window.parent.window) { //处理内嵌页面 var parent = window.parent.window; if (parent.parent && parent.parent.window && parent.parent.window.pageParamValue) { var value = parent.parent.window.pageParamValue; //page.fillParamValue("参数名称", "参数真实值", "参数显示值"); page.fillParamValue("销售时间", value, value); //给参数填值 page.commitParamValue(); //提交参数 } } }