示例说明
电子表格有回写及分页数据,并且不显示工具栏,使用openresource.jsp打开报表时(http://localhost:18080/smartbi/vision/openresource.jsp?resid=I8a8a962a0172bab3bab303b90172baf66d5f0517&showtoolbar=false),分页按钮和保存按钮显示在2行
注意 |
---|
此宏代码效果需要隐藏工具栏才可以生效。 |
有时为了节约空间,可以把分页按钮和保存按钮放在同一行。通过下面宏示例可以达到效果。
版本及客户端说明
1.smartbi版本:最新版本
2.客户端:PC
3.浏览器:IE11、谷歌浏览器(Chrome)、火狐浏览器(Firefox)
设置方法
1、首先在电子表格设计器(Microsoft Office Excel)中,创建电子表格报表。
2、在浏览器的“分析展现”节点下,选中电子表格,右键选择 编辑宏 进入报表宏界面。
3、在报表宏界面新建客户端模块。在弹出的新建模块对话框中,选择对象为spreadSheetReport、事件为onRender、并把下面宏代码复制到代码编辑区域。
宏类型
类型 | 对象 | 事件 |
---|---|---|
ClientSide | spreadsheetReport | onRender |
宏代码
代码块 | ||||||
---|---|---|---|---|---|---|
| ||||||
function main(spreadsheetReport, isAjaxRefreshCallback) { var defaultSaveBtn = document.getElementsByClassName("s-icon-save"); if(defaultSaveBtn.length>0){ defaultSaveBtn[0].style.display="none"; } if (!spreadsheetReport._newBtn) { // 不要重复添加按钮 //按钮样式 var input = document.createElement("INPUT"); input.type = "button"; input.className = "button-buttonbar button-bgicon-save"; input.value = "保存(S)"; input.title = "保存"; input.accessKey = "S"; input.style.width = "80"; input.style.height = "22"; //按钮位置定位 var div = document.createElement("div"); div.style.marginLeft = "20px"; div.style.float = "left"; var pElement = spreadsheetReport.elem_trPagePanel; //获取工具栏tr if (!pElement.firstChild.firstChild) { return; } pElement.style.display=''; pElement.firstChild.firstChild.style.float = "left"; if (pElement.clientWidth < 430) { div.style.marginLeft = "5"; div.style.marginTop = "35"; } div.appendChild(input); //隐藏旧的保存按钮,并添加新按钮到报表页面 var nextEl = pElement.nextSibling; if (nextEl.nodeName != "TR") { nextEl = nextEl.nextSibling; } nextEl.style.display = "none"; var newBtn = pElement.firstChild.appendChild(div); //按钮事件 spreadsheetReport.addListener(newBtn, "click", function() { spreadsheetReport.spreadsheetReportWriteBack.doSaveClick(); }, spreadsheetReport); spreadsheetReport._newBtn = newBtn; }else{ var pElement = spreadsheetReport.elem_trPagePanel; //获取工具栏tr pElement.style.display=''; } } |
关键对象总结
- 电子表格分页按钮行对象:spreadsheetReport.elem_trPagePanel
- 保存按钮事件:spreadsheetReport.spreadsheetReportWriteBack.doSaveClick()
资源下载
报表资源:电子表格保存按钮位置修改.xml
相关SQL:writeback.sql
...