页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

1. 概述

客户端宏是在浏览器端运行,所以语法是JavaScript的语法,需要有前端开发的经验才可能灵活编写,调试也是使用浏览器前端调试即可。

在进行客户端宏的学习前,建议了解:

  • 报表宏创建方式:在Smartbi中如何创建客户端宏,并创建一个简单的宏示例。
  • 跳转规则:根据跳转规则生成的宏脚本具有很大的参考意义,节省编写宏的时间。

注意:客户端宏主要影响浏览器端的展现效果,除了图形(直接加在图形对象上的部分宏功能可以对导出生效),其他报表的客户端宏都不会对导出有效果。

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. 视频教学

    视频教学点击下载:客户端宏原理客户端宏事件客户端宏对象客户端宏实战

...