示例说明
如何在页面的公共参数后面增加一个“刷新”按钮,实现切换公共参数后不直接刷新,只有点击“刷新”按钮才进行刷新呢。实现方法,参考如下。
设置方法
1. 在资源定制节点下,创建一个页面,并把含有参数的报表放到页面中,把参数设置为公共参数;
2. 选中页面,右键选择 编辑宏 进入报表宏界面。
3. 在报表宏界面新建客户端模块。在弹出的新建模块对话框中选择对象为page;事件为onRenderPage;并把下面宏代码复制到代码区域;
宏类型
类型 | 对象 | 事件 |
---|---|---|
ClientSide | page | onRenderPage |
宏代码
function main(page, pageContext) { //在公共参数列表的最后一个单元格后面新增加单元格:lastCell var paramTable = page.paramPanel.layoutTable; var i, cell, lastCell; //直接在参数最后一行插入列,并添加按钮 for (i = 0; i < paramTable.rows.length; i++) { cell = paramTable.rows[i].insertCell(-1); if (i == paramTable.rows.length - 1) lastCell = cell; } // 在参数后面添加新一行并添加按钮,可以使用如下代码 /* * var row = paramTable.insertRow(); * row.style.height = "20px"; * lastCell = row.insertCell( - 1); * lastCell.colSpan = paramTable.rows[0].cells.length; * lastCell.align = "center"; */ //新建button,并把这个button加到最后一个参数后面 var btnElem = document.createElement("input"); btnElem.type = "button"; btnElem.title = "自定义按钮打开其它报表"; btnElem.className = "queryview-toolbar-button"; btnElem.setAttribute("style", "background:#FFFFFF url(img/querygrid/setting.gif) no-repeat left center;"); //btnElem.style.background = "#FFFFFF url(img/querygrid/setting.gif) no-repeat left center;"; btnElem.onclick = doClick; if (lastCell) { lastCell.appendChild(btnElem); } //定义button的Click事件 function doClick() { page.pageUtil.refreshData(); } }
关键对象总结
- 在公共参数列表的最后一个单元格后面新增加单元格:lastCell
- 新建button对象,并添加到页面上:document.createElement("input")
注意事项
在上述步骤之外,还有最重要的不可忽略的一步工作要做。对页面上的每一张报表,都需要设置“切换参数后不自动刷新”。设置方法如下:
1、在“资源定制”节点下打开报表,在“参数设置”对话框上,将“切换参数后自动刷新报表”的复选框勾选去掉。
2、如果是“电子表格”报表,需要在 Excel 中打开该报表,在页面设置对话框上设置“切换参数刷新设置”选项为手动刷新。