注意 |
---|
提示:本文档的示例代码仅适用于本文档中的示例报表/场景。若实际报表/场景与示例代码无法完全适配(如使用功能不一致,或多个宏代码冲突等),需根据实际需求开发代码。 |
示例说明
灵活分析报表中,在参数面板的后面添加“查询”、“导出”按钮,其功能与点击工具栏上的查询、导出按钮是一样的。如下图所示:
设置方法
- 在资源定制中,创建一张灵活分析报表。
- 选中灵活分析,右键选择 编辑宏 进入报表宏界面。
- 在报表宏界面新建客户端模块,在弹出的新建模块对话框中选择对象为 simpleReport;事件为 onRender;并把下面宏代码复制到代码区域。
宏类型
类型 | 对象 | 事件 |
---|---|---|
ClientSide | simpleReport | onRender |
宏代码
代码块 | ||||
---|---|---|---|---|
| ||||
function main(simpleReport, simpleReportContext) { if (!simpleReport.paramPanelObj) return; try { //获取参数面板表格 var paramTable = simpleReport.paramPanelObj.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 queryBtn = document.createElement("button"); queryBtn.value = " 查询 "; //如需要修必按钮风格,请自行实现 queryBtn.innerHTML = "查询"; queryBtn.className = "query-button"; lastCell.appendChild(queryBtn); simpleReport.addListener(queryBtn, "click", function() { //刷新页面 simpleReport.doRefresh(); }, this); // 添加空格 var span = document.createElement("span"); lastCell.appendChild(span); span.innerHTML = " "; //创建导出按钮 var exportBtn = document.createElement("button"); exportBtn.value = " 导出 "; //如需要修必按钮风格,请自行实现 exportBtn.innerHTML = "导出"; exportBtn.className = "query-button"; lastCell.appendChild(exportBtn); simpleReport.addListener(exportBtn, "click", function() { //导出Excel方法 simpleReport.doExportMenuCloseUp("EXCEL"); }, this); } catch(e) { alert('更新查询、导出按钮位置失败:' + e.message); } } |
组合分析添加查询和导出按钮示例:
代码块 | ||||
---|---|---|---|---|
| ||||
function main(simpleReport, simpleReportContext) { if (simpleReport.hadAddBtn) { return; } if (!simpleReport.paramPanelObj) return; try { //获取参数面板表格 var paramTable = simpleReport.paramPanelObj.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 queryBtn = document.createElement("button"); queryBtn.value = " 查询 "; //如需要修必按钮风格,请自行实现 queryBtn.innerHTML = "查询"; queryBtn.className = "query-button"; lastCell.appendChild(queryBtn); simpleReport.addListener(queryBtn, "click", function() { //刷新页面 simpleReport.doRefresh(); }, this); // 添加空格 var span = document.createElement("span"); lastCell.appendChild(span); span.innerHTML = " "; //创建导出按钮 var exportBtn = document.createElement("button"); exportBtn.value = " 导出 "; //如需要修必按钮风格,请自行实现 exportBtn.innerHTML = "导出":; exportBtn.className = "query-button"; lastCell.appendChild(exportBtn); simpleReport.hadAddBtn = true; simpleReport.addListener(exportBtn, "click", function() { //导出Excel方法 simpleReport.doExportMenuCloseUp("EXCEL"); }, this); } catch(e) { alert('更新查询、导出按钮位置失败:' + e.message); } } |
组合分析示例:
代码块 | ||||||
---|---|---|---|---|---|---|
| ||||||
// 类型:ClientSide 对象:simpleReport 事件: onRender function main(simpleReport, simpleReportContext) { if (!simpleReport.paramPanelObj) { return; } // 获取参数面板表格 var paramTable = simpleReport.paramPanelObj.layoutTable; var rowCount = paramTable.rows.length; if (rowCount < 1) { return; } var lastRow = paramTable.rows[rowCount - 1]; var colCount = lastRow.childNodes.length; if (colCount < 1) { return; } var lastEmptyCell = lastRow.childNodes[colCount - 1]; if (lastEmptyCell.innerText) { // 最后一个单元格不为空时,参数面板表格追加一列 for (var i = 0; i < rowCount; i++) { var cell = paramTable.rows[i].insertCell(-1); if (i == rowCount - 1) { lastEmptyCell = cell; break; } } } else { var prevCell = lastEmptyCell.previousSibling; while (prevCell) { if (!prevCell.innerText) { lastEmptyCell = prevCell; } prevCell = prevCell.previousSibling; } } if (!lastEmptyCell._attachChooseFieldsBtn) { // 创建按钮 var btnElem = document.createElement('INPUT'); btnElem.type = 'button'; btnElem.className = 'button-buttonbar btn-bgicon-choose-fields'; btnElem.value = '选择输出字段'; btnElem.onclick = function() { var tbarCFBtnElem = simpleReport['cqBtnChooseFields']; // 工具栏"选择输出字段"按钮 if (tbarCFBtnElem) { tbarCFBtnElem.click(); // 模拟点击工具栏对应按钮 } }; lastEmptyCell.appendChild(btnElem); // lastEmptyCell._attachChooseFieldsBtn = true; } } |
...
关键对象总结
- 导出Excel方法:simpleReport.doExportMenuCloseUp("EXCEL");
- 进行刷新方法:simpleReport.doRefresh();
资源文件:migrate.xml