1. 概述
客户端宏是在浏览器端运行,所以语法是JavaScript的语法,需要有前端开发的经验才可能灵活编写,调试也是使用浏览器前端调试即可。
在进行客户端宏的学习前,建议了解:
注意:客户端宏主要影响浏览器端的展现效果,除了图形(直接加在图形对象上的部分宏功能可以对导出生效),其他报表的客户端宏都不会对导出有效果。
2. 客户端宏原理
Smartbi的报表从打开到完整展现的过程,会经历一系列的步骤(事件),比如打开报表,刷新报表,参数改变等。在进行这些步骤的前后,通过加入扩展的入口,使得程序在执行这些步骤前后可以加载对应事件的自定义宏代码,以达到在对应事件中方便、准确地修改报表的目的。
如下图所示,报表打开后会触发宏代码,刷新数据后会触发宏代码,参数变更后同样会触发宏代码。
...
3. 客户端宏事件
ClientSide客户端模块
spreadsheetReport (电子表格对象)
...
对应事件 | 对应事件说明 |
onClick | · 事件原型:function main(cell) {} · 事件说明:在单击多维分析表格中的内容时触发 · 参数说明 o cell:当前点击的单元格对象 |
onInitPopupMenu | · 事件原型:function main(popupMenu, cell) {} · 事件说明:在单击多维分析表格进行该事件处理,显示命令菜单,只有单击菜单中相关命令才会执行宏 · 参数说明 o popupMenu:子菜单对象 o cell:当前点击的单元格对象 |
...
4. 客户端宏API和源码
宏的开发实际离不开API(报表宏接口文档),根据API可以用报表宏快速实现多种功能。而要更加灵活开发则需要了解每个宏对象对应的源码,宏对象对应JS源文件如下(文件位于Smartbi war包中):
报表类型 | 宏对象 | 源文件 |
电子表格 | spreadsheetReport | SpreadsheetReport.js |
即席查询 | simpleReport | CombinedQV.js(继承QueryView.js) |
simpleReportContext | CombinedQVNavigator.js(继承QueryNavigator.js) | |
灵活分析 | simpleReport | QueryView.js |
simpleReportContext | QueryNavigator.js | |
透视分析 | INSIGHT | Insight.js |
仪表分析 | meterReport | Dashboard.js |
多维分析 | olapQuery | OlapQueryViewDisplay.js 或 OlapQueryView.js |
图形 | chartView | EChartsView.js 以及父类 AbstractChartView.js |
...
5. 客户端宏示例
客户端宏示例详见:报表宏示例。
...
6. 视频教学
视频教学点击下载:客户端宏原理、客户端宏事件、客户端宏对象、客户端宏实战
...