文档目录:

报表宏事件分服务端模块和客户端模块:

  • 服务端模块
    • 表示宏的事件在服务端(应用服务器)进行处理。在Smartbi中,只为【多维分析】【电子表格】【透视分析】提供了服务端处理的事件
    • 服务端宏底层原理和自定义计划任务脚本一样的,都是使用了 Rhino 工具包,语法遵循Javascript 语法规范,能够引用 Java 类并创建 Java 对象来使用,详细的语法说明见自定义计划任务
    • 服务端宏因为在服务器上运行,对浏览器端展现和导出报表都是生效的。
  • 客户端模块
    • 表示宏的事件在客户端进行处理。在Smartbi中,为所有不同类型的报表【灵活分析、多维分析、页面、仪表分析、电子表格、透视分析、组合分析等】提供了客户端处理的事件
    • 客户端宏的语法就是JavaScript,需要有前端开发的经验才可能灵活编写,调试也是使用浏览器前端调试即可
    • 注意:客户端宏主要影响浏览器端的展现效果,除了图形(直接加在图形对象上的部分宏功能可以对导出生效),其他报表的客户端宏都不会对导出有效果。

所有模块的宏示例请见报表宏开发示例库,更多关于宏的说明请见报表宏功能简介报表宏快速入门

1     ServerSide服务端模块

1.1    olapTable(多维分析表格对象)

olapTable:多维分析报表表格对象。

对应事件

对应事件说明

onRenderTable

  • 事件原型:function main(olapTable) {}
  • 事件说明:在打开多维分析报表初始化完成后或多维分析报表数据刷新后触发,可以使用多维分析的跳转规则生成一个看示例效果
  • 参数说明:
    • olapTable:多维分析表格对象


1.2    olapQuery(多维分析报表对象)

olapQuery多维分析报表对象。

对应事件

对应事件说明

onWarning

  • 事件原型:function main(reportResult) {}
  • 事件说明:在多维分析报表加载告警信息时触发。可以设置一个多维分析告警,然后查看对应的宏示例(多维告警会生成这个事件的宏)
  • 参数说明:
    • reportResult:多维分析表格对象





1.3    spreadsheetReport(电子表格报表对象)

spreadsheetReport电子表格报表对象。

对应事件

对应事件说明

onBeforeOutput

  • 事件原型:function main(spreadsheetReport) {}
  • 事件说明:在电子表格生成输出的html之前触发,实现此事件可以改写电子表格输出结果。
  • 参数说明:
    • spreadsheetReport:电子表格对象
  • 参考示例:电子表格服务端宏示例


1.4   INSIGHT(透视分析报表对象)

INSIGHT透视分析报表对象。

对应事件

对应事件说明

beforeBuildHTML

  • 事件原型:function main(insightCellList) {}
  • 事件说明:在透视分析生成输出的html之前触发,实现此事件可以改写透视分析的数据输出结果
  • 参数说明:
    • insightCellList:透视分析表格对象
  • 参考示例:透视分析删除特定行—服务端宏

2     ClientSide客户端模块



2.1    olapQuery(多维分析报表对象)

olapQuery多维分析报表对象。示例

对应事件

对应事件说明

afterRefreshTable

  • 事件原型:function main(olapQuery) {}
  • 事件说明:在多维分析报表数据刷新后触发
  • 参数说明
    • olapQuery:多维分析报表对象


2.2   olapTable(多维分析表格对象)

olapTable多维分析报表表格对象。

对应事件

对应事件说明

onClick

  • 事件原型:function main(cell) {}
  • 事件说明:在单击多维分析表格中的内容时触发
  • 参数说明
    • cell:当前点击的单元格对象

onInitPopupMenu

  • 事件原型:function main(popupMenu, cell) {}
  • 事件说明:在单击多维分析表格进行该事件处理,显示命令菜单,只有单击菜单中相关命令才会执行宏
  • 参数说明
    • popupMenu:子菜单对象
    • cell:当前点击的单元格对象

2.2    spreadsheetReport (电子表格对象)

spreadsheetReport:电子表格对象。示例

对应事件

对应事件说明

onRenderReport

  • 事件原型:function main(spreadsheetReport) {}
  • 事件说明:在打开电子表格报表初始化完成后触发
  • 参数说明
    • spreadsheetReport电子表格报表对象

onRender

  • 事件原型:function main(spreadsheetReport) {}
  • 事件说明:在电子表格报表数据刷新后触发
  • 参数说明
    • spreadsheetReport:电子表格报表对象

onParamValueChanged

  • 事件原型:function main(spreadsheetReport, param) {}
  • 事件说明:在电子表格报表参数改变后触发
  • 参数说明
    • spreadsheetReport:电子表格报表对象
    • param当前改变的参数对象
  • 参考示例:电子表格根据参数值不同显示不同的报表

onLinkClick

  • 事件原型:function main(spreadsheetReport, ruleName, params) {}
  • 事件说明:在电子表格超链接上点击后触发,这个事件需要配合服务端宏才能生效,一般不会手动新建,而是通过跳转规则自动生成(可以基于生成的再修改)。
  • 参数说明
    • spreadsheetReport:电子表格报表对象
    • ruleName:跳转规则名称
    • params: 报表参数
onChartClick
  • 事件原型:function main(spreadsheetReport, spreadsheetReportChart) {}
  • 事件说明:在电子表格图形上点击后触发,这个事件需要配合服务端宏才能生效,一般不会手动新建,而是通过跳转规则自动生成(可以基于生成的再修改).
  • 参数说明
    • spreadsheetReport:电子表格报表对象
    • spreadsheetReportChart:被点击图形名称(excel设计器上指定的),对象结构,spreadsheetReportChart.name代表图形名称

onWriteBackInsertedRow

  • 事件原型:function main(spreadsheetReport, editingCellPosition) {}
  • 事件说明:在可回写的电子表格的工具类上点击“插入行”后触发
  • 参数说明
    • spreadsheetReport:电子表格报表对象
    • editingCellPosition:当前编辑单元格,对象结构{row:, column:}
  • 参考示例:电子表格添加新行时自动为单元格赋值

onWriteBackCellValueChanged

  • 事件原型:function main(spreadsheetReport, editingCellPosition, oldValue, newValue, newDisplayValue){}
  • 事件说明:在可回写的电子表格中,修改某个单元格值的时候触发
  • 参数说明
    • spreadsheetReport:电子表格报表对象
    • editingCellPosition:当前编辑单元格,对象结构{row:, column:}
    • oldValue:修改前的值
    • newValue:修改后的值
    • newDisplayValue:修改后的显示值
  • 参考示例:电子表格回写单元格一对多联动

onWriteBackSavedData

  • 事件原型:function main(spreadsheetReport, succeeded) {}
  • 事件说明:在可回写的电子表格的工具类上点击“保存”,服务器返回后触发
  • 参数说明
    • spreadsheetReport:电子表格报表对象
    • succeeded:bool,回写是否成功
  • 参考示例:电子表格回写保存时记录日志

 

2.3    INSIGHT(透视分析对象)

INSIGHT:透视分析对象示例

对应事件

对应事件说明

onRender

  • 事件原型:function main(insight){}

  • 事件说明:在打开透视分析初始化完成后触发

  • 参数说明

    • insight:透视分析对象

onRenderTable
  • 事件原型:function main(insight){}

  • 事件说明:透视分析刷新数据后触发,每次刷新数据都触发一次

  • 参数说明

    • insight:透视分析对象

  • 参考示例:透视分析打开默认收缩

onParamValueChanged

  • 事件原型:function main(insight, param) {}

  • 事件说明:透视分析参数改变后触发

  • 参数说明

    • insight:透视分析对象

    • param:发生变化的参数对象

chart:图形对象,可以参考meterReport中的chart