注意 |
---|
提示:本文档的示例代码仅适用于本文档中的示例报表/场景。若实际报表/场景与示例代码无法完全适配(如使用功能不一致,或多个宏代码冲突等),需根据实际需求开发代码。 |
示例说明
如下图,电子表格中存在层级关系,并且用户只需填写最底层数据,其上级数据无需填写即可自动汇总下级数据。
...
1.在电子表格设计器(Microsoft Office Excel)中创建一张电子表格,将上一步数据集中"层级标识"字段拖到单元格A4,"指标ID"字段拖到单元格 B4, "指标名称"字段拖到单元格 C4, "刚性支出"字段拖到单元格D4, "弹性支出"字段拖到单元格 E4。并设置D4和E4单元格扩展方式为"不扩展-汇总-求和"。
2.发布预览
...
4.在报表宏界面 新建服务端模块。在弹出的 新建模块 对话框中,选择对象为 spreadsheetReport、事件为onBeforeOutput、并把下面的宏代码复制到代码编辑区域。根据实际情况修改相应的代码
宏类型
类型 | 对象 | 事件 |
ServerSide | spreadsheetReport | onBeforeOutput |
...
5.在报表宏界面 新建客户端模块。在弹出的 新建模块 对话框中,选择对象为 spreadsheetReport、事件为onRender、并把下面的宏代码复制到代码编辑区域。该宏代码实现汇总项不允许填报功能。
宏类型
类型 | 对象 | 事件 |
ClientSide | spreadsheetReport | onRender |
...
代码块 | ||
---|---|---|
| ||
function main(spreadsheetReport) { var formulaCells = spreadsheetReport.customProperties["formulaCells"]; var writableMap = spreadsheetReport.elemSheetFrame.contentWindow.writableMap; for (var i = 0; i < formulaCells.length; i++) { var c = writableMap[formulaCells[i]]; if (c) c.modifiable = false; } } |
6.在电子表格设计器中打开该电子表格,设置A列列宽为0,隐藏层级标识所在列
7.发布,在浏览器中打开该电子表格,填报数据,效果如下:
...