本文档的示例代码仅适用于本文档中的示例报表/场景。若实际报表/场景与示例代码无法完全适配(如使用功能不一致,或多个宏代码冲突等),需根据实际需求开发代码。 |
通过电子表格设计的报表,我们有时候会根据需要进行分页设置,然后将报表在仪表盘中显示。分页栏的位置我们有时希望将其放到页面底部,该需求可以通过宏代码实现。
1、首先在电子表格设计器(Microsoft Office Excel)中,创建电子表格报表。
2、在浏览器的资源定制节点下,选中电子表格,右键选择 编辑宏 进入报表宏界面。
3、在报表宏界面新建客户端模块。在弹出的新建模块对话框中,选择对象为spreadsheetReport、事件为onRender、并把下面宏代码复制到代码编辑区域。
类型 | 对象 | 事件 |
---|---|---|
ClientSide | spreadsheetReport | onRender |
宏代码
function main(spreadsheetReport) { //debugger; if (!spreadsheetReport._movePageCtrlFlag) { // 找到"分页"控件,并从DOM中移除 var pageCtrl = spreadsheetReport.elemPageCtrl; if (pageCtrl && pageCtrl.childNodes.length > 0) { // 该电子表格报表是被单独打开的; var tr_parent_pageCtrl = pageCtrl.parentNode; tr_parent_pageCtrl.removeChild(pageCtrl); var content = spreadsheetReport.elem_content; var tb_content = content.parentNode.parentNode; var newTr = tb_content.insertRow(-1); newTr.appendChild(pageCtrl); } else { // 该电子表格报表被放到了"页面"上 var elem_trPagePanel = spreadsheetReport.elem_trPagePanel; var tbody = elem_trPagePanel.parentNode; tbody.removeChild(elem_trPagePanel); tbody.appendChild(elem_trPagePanel); if (domutils.isMobile()) { spreadsheetReport.elem_pagePanelTd.style.height = "30px"; spreadsheetReport.elem_pagePanelTd.firstChild.style.height = "30px"; } // if if (domutils.isFirefox()) { var sheetFrame = spreadsheetReport.elemSheetFrame; sheetFrame.style.height = (sheetFrame.offsetHeight - 30) + "px"; } } // 分页控件已经被移到尾部了 spreadsheetReport._movePageCtrlFlag = true; } } |