注意 |
---|
提示:本文档的示例代码仅适用于本文档中的示例报表/场景。若实际报表/场景与示例代码无法完全适配(如使用功能不一致,或多个宏代码冲突等),需根据实际需求开发代码。 |
示例说明
...
设置方法
- 在资源定制中,创建一张灵活分析(带合计行)。
- 选中灵活分析,右键选择 编辑宏 进入报表宏界面。
- 在报表宏界面新建客户端模块,在弹出的新建模块对话框中选择对象为simpleReport;事件为onRenderTable;并把下面宏代码复制到代码区域。
宏类型
类型 | 对象 | 事件 |
ClientSide | simpleReport | onRenderTable |
宏代码
...
在灵活分析报表中,可以设置指定的值添加跳转链接,或者不添加跳转链接。
如下,灵活分析报表中设置了合计,同时灵活分析又允许跳转,此时需要设置“合计”行不允许跳转。如下:
版本及客户端要求
1.版本要求:Smartbi V7 及以上
2.客户端:PC
3.浏览器:IE8-IE11、Chrome浏览器、firefox浏览器
设置方法
1.创建灵活分析报表,并设置合计,如下:
2.在灵活分析报表上,设置跳转规则,如下:
显示如下:
3.在报表上右键-》编辑宏,找到创建跳转规则时,自动生成的客户端宏。对其进行修改。具体代码如下:
宏代码
代码块 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
function main(simpleReport, simpleReportContext) { //simpleReport.addColumnLinkByName("产品类别",me);//注释掉原来的代码,使用下面代码代替 var col = simpleReport.getFieldIndexByName("Region产品类别"); //取列序号获取合计所在的列序号 for (var i = simpleReport.grid.getHeaderRows(); i < simpleReport.grid.getRowCount(); i++) { var cell = simpleReport.grid.getCell(i, col); if (cell) { debugger; if (cell.getAttribute("realValue").indexOf("小计") >= 0 || cell.getAttribute("realValue").indexOf("合计") >= 0) {} else { innerText == "合计") {} //判断为合计,则不加跳转 else { simpleReport.addCellLink(i, col, me); } } } } //这一部分没有做改变 var menuItem = { alias: "跳转", callback: function(simpleReport, simpleReportContext) { var destQuery = simpleReportContext.openReport("I4028818a015c808d808db7fe015c819f0143070b"); if (!destQuery) return; simpleReport.writeParamsToContext(); destQuery.refreshData(); } } var me = menuItem; |
4.由于修改过客户端代码之后,如果重新保存跳转规则,则会导致代码失效。因此,删除跳转规则向导:
注意删除时将“删除相关模块”给勾除。
更多
同时,也可以只设置指定数据添加跳转,如只需要点击“点心”进行跳转。
步骤同上,在修改客户端宏代码时,修改如下:
宏代码
代码块 | ||||
---|---|---|---|---|
| ||||
function main(simpleReport, simpleReportContext) { //simpleReport.addColumnLinkByName("产品类别",me);//注释掉原来的代码,使用下面代码代替 var col = simpleReport.getFieldIndexByName("产品类别"); //获取产品类别字段的列 序号 for (var i = simpleReport.grid.getHeaderRows(); i < simpleReport.grid.getRowCount(); i++) { var cell = simpleReport.grid.getCell(i, col); if (cell) { if (cell.innerText == "点心") { //内容为点心,则添加跳转 simpleReport.addCellLink(i, col, me); } else { } } } } //这一部分没有做改变 var menuItem = { alias: "区域跳转跳转", callback: function(simpleReport, simpleReportContext) { var destQuery = simpleReportContext.openReport("I402881903744c86c015437caeb580bb8I4028818a015c808d808db7fe015c81b639440848"); if (!destQuery) return; simpleReport.writeParamsToContext(); destQuery.refreshData(); } } var me = menuItem; |
关键对象总结
- 通过参数名获取参数对象:simpleReport.addCellLink(i, col, me)
- 打开灵活分析:simpleReportContext.openReport("I2c949eaf1a942102011a9561f7e7015d");
...