Smartbi中报表宏的创建方式分为:报表资源宏编辑、宏资源包、宏代码库。
- 报表资源宏编辑:在单独的报表资源上右键进入,只对所选报表生效,适用于对某张特定报表实现特定功能
- 宏资源包:对同一类报表生效,可以指定多张生效的报表,适用于多张报表使用宏实现同一个功能(详见:宏资源包)
- 宏代码库:主要用来定义一些公共的宏方法,将一些使用频率较高的方法定义为公共的方法,便于代码重用(详见:宏代码库)
1.报表宏管理
报表宏的编辑入口
- 报表资源宏编辑
- 宏资源包
- 宏代码库
报表宏的编辑页面
“宏编辑”界面是报表宏的开发界面。
...
- 在 分析展现> 左侧资源树上找到报表资源,选中资源的右键菜单中选择“编辑宏”,进入“宏编辑”界面;
“宏编辑”界面主要分为以下几个区域:
- 模块区:该区用于通过新建模块,在模块上定制宏。包含服务端模块、客户端模块和跳转规则向导。
- 帮助区:该区用于为当前模块根据不同的对象和类型显示系统中定义的对象和方法。
- 属性区:该区用于显示当前模块的相关属性。
- 编辑区:该区用于为当前模块进行宏的编辑,宏代码遵循JavaScript语法规范。
- 操作区:该区用于显示对当前模块宏代码的功能按钮。其中“禁用”表示该宏代码是否禁用,默认不勾选。
...
在内置的“列表式报表”中,当单价大于等于20时,显示向上箭头;当单价小于20时,显示向下箭头。
第一步:进入报表宏编辑界面
在资源树上,找到对应的报表,然后右键菜单中进行宏编辑,如图所示:
第二步:选择报表宏触发事件
...
2、选择 spreadsheetReport 对象(当前报表对象),事件选择 onRender (表格刷新事件)。目的是报表的表格刷新完后触发下面编写的宏代码脚本,如图所示:
第三步:报表宏脚本编写
编写报表宏代码。新建宏模块后,在宏代码区中系统会自动生成一个main方法,报表宏就是在该方法中编写,如图所示:
实现上下箭头的JS代码参考如下:
代码块 | ||||||
---|---|---|---|---|---|---|
| ||||||
function main(spreadSheetReport) { var var row = spreadSheetReport.getRowCount() - 1; var var startrow = 4; for for (var i = startrow; i < row; i++) { var var td = spreadSheetReport.getCell(i, 7); var var value = parseFloat(td.innerText.replace(",", "")); if if (value >= 40) { var var img = document.createElement("IMG"); img img.src = "/smartbi/vision/img/alertdialog/up.gif"; td td.insertBefore(img, td.firstChild); } else { var var img = document.createElement("IMG"); img img.src = "/smartbi/vision/img/alertdialog/down.gif"; td td.insertBefore(img, td.firstChild); } } } |
3.使用跳转规则生成宏
很多时候跳转规则生成的宏可以作为要实现需求的参考,譬如我的宏中需要能获取或设置报表的参数值,点击某个单元格希望弹出第三方的url,页面A与页面B自动轮流切换,实际这些需求都可以参考跳转规则生成的宏,详细请见跳转规则向导。
4. 视频教学
视频教学点击下载:报表宏创建方式
视频配套资源下载:报表宏创建方式示例